<style> .reveal .slides { text-align: left; font-size:32px; } </style> ## 530競技程式培力基地(二) ---- - 題目解答 --- ## 題目解答 [Link](https://vjudge.net/contest/748501#overview) ---- ## A - Triangle Wave ---- 講議題我就直接放答案 [Link](https://hackmd.io/gpgSjlxCSVyHZZZfW1D05g?view) ---- ## B - Sum ---- 三個數判斷其中兩個數的和是否等於第三個數 第一行輸入為測資 $t$ 後面 $t$ 行是三個數 $a,b,c$ ---- 那我們有三種需要判斷的分別是 - a+b==c - a+c==b - b+c==a 這三種情況其中一種符合就可以輸出$YES$ ---- ```cpp= #include<bits/stdc++.h> using namespace std; int main(){ int t; cin>>t; while(t--){ int a,b,c; cin>>a>>b>>c; if(a+b==c||a+c==b||b+c==a) cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0; } ``` ---- ## C - YES or YES? ---- 判斷輸入的字串是否是 $YES$ 只要是YES不管其中的字母有沒有小寫 所以$yes,Yes,yEs,yeS,YEs,yES,YeS,YES$都是可以的 ---- ```cpp= #include<bits/stdc++.h> using namespace std; int main(){ int t; cin>>t; while(t--){ char a,b,c; cin>>a>>b>>c; if((a!='Y'&&a!='y')||(b!='E'&&b!='e')||(c!='S'&&c!='s')) cout<<"NO\n"; else cout<<"YES"<<endl; } return 0; } ``` ---- ## D - Odd One Out ---- 判斷哪個數字只出現過一次 所以我們可以利用if else 判斷哪兩個相同就好 ---- ```cpp= #include<bits/stdc++.h> using namespace std; int main(){ int t; cin>>t; while(t--){ int a,b,c; cin>>a>>b>>c; if(a==b&&b!=c) cout<<c<<endl; else if(a==c&&a!=b) cout<<b<<endl; else if(a!=b&&b==c) cout<<a<<endl; } return 0; } ``` ---- ## E - A+B Again? ---- 十位數字 + 個位數 我們要利用到 % 取餘數的運算子 ---- ```cpp= #include<bits/stdc++.h> using namespace std; int main(){ int t; cin>>t; while(t--){ int n; cin>>n; int n1=n%10; int n2=n/10; cout<<n1+n2<<endl; } return 0; } ``` ---- ## F - Word ---- 判斷字串中大小寫的數量 - 如果 大寫字母 $>$ 小寫 就全換成大寫 - 如果 小寫字母 $\ge$ 大寫 就全換成小寫 ---- ```cpp= #include<bits/stdc++.h> using namespace std; string tobig(string s){ int n=s.size(); for(int i=0;i<n;i++){ if(s[i]<='z'&&s[i]>='a'){ s[i]-=32; } } return s; } string tosmall(string s){ int n=s.size(); for(int i=0;i<n;i++){ if(s[i]<='Z'&&s[i]>='A'){ s[i]+=32; } } return s; } int main(){ string s; cin>>s; int bc=0,sc=0; for(auto i:s){ if(i>='A'&&i<='Z') bc++; else sc++; } if(sc>=bc) s=tosmall(s); else if(sc<bc) s=tobig(s); cout<<s; return 0; } ``` ---- ## G - The Bento Box Adventure ---- 判斷哪一個數字沒有 ---- ```cpp= #include<bits/stdc++.h> using namespace std; int main(){ int a; bool f1=false,f2=false,f3=false,f4=false,f5=false; for(int i=0;i<4;i++){ cin>>a; if(a==1) f1=true; else if(a==2) f2=true; else if(a==3) f3=true; else if(a==4) f4=true; else f5=true; } if(!f1) cout<<1; else if(!f2) cout<<2; else if(!f3) cout<<3; else if(!f4) cout<<4; else cout<<5; } ``` ---- ## H - Array Coloring ---- 在陣列中的元素染色 - 兩種顏色所對應元素的總和具有相同的奇偶性 - 每種顏色都至少有一個元素被染色 然後我們把相同顏色的數總和,判斷兩種顏色的奇偶性是否一樣 所以我們只要知道奇數的和是否為偶數就好 ---- ```cpp= #include<bits/stdc++.h> using namespace std; int main(){ int t; cin>>t; while(t--){ int n; cin>>n; int a; int odd=0; for(int i=0;i<n;i++){ cin>>a; if(a&1) odd++; } if(odd&1) cout<<"NO\n"; else cout<<"YES\n"; } } ``` --- [題目連結](https://vjudge.net/contest/748801)
{"title":"530競技程式培力基地(二)","contributors":"[{\"id\":\"2f04e9e4-ce0e-4fa7-9f7e-a3c9ae53239b\",\"add\":4683,\"del\":1013,\"latestUpdatedAt\":1758974503143}]","description":"題目解答"}
    230 views