【ZZULIOJ】1205: 你愛我麼?
阿新 • • 發佈:2018-12-05
1205: 你愛我麼?
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 774 Solved: 326
Submit Status Web Board
Description
LCY買個n束花準備送給她暗戀的女生,但是他不知道這個女生是否喜歡他。這時候一個算命先生告訴他讓他查花瓣數,第一個花瓣表示"愛",第二個花瓣表示"不愛",第三個花瓣表示"愛"......
為了使最後結果是"愛",LCY需要從n束花中選出一些,你能幫他算出最後他送給這個女生的花中最多包含多少個花瓣嗎?
Input
首先輸入一個整數T,表示測試例項的個數。
接下來T組測試例項,每組例項首先輸入一行,包括一個整數n(1 <= n <= 100)。
然後輸入一行,n個數a1,a2...an(1 <= ai <= 100),表示每束花包含的花瓣的個數。
Output
每組例項輸出一個整數,表示LCY最多能送多少個花瓣給這個女生。
Sample Input
3 1 1 1 2 3 5 6 7Sample Output
1 0 1 3HINT
每一束花不允許去掉一些花瓣再送。這樣算命就不準了-_-#
Source
思路:
<1>看似很簡單的題目,實際上原理也很簡單。理解題意:找到陣列中最大的為奇數的和。
<2>偶數減去奇數一定得到奇數,減去最小奇數必然得到最大和奇數。
<3>參考了Web Board的一些答案。
<4>以下為C++的參考程式碼
#include <iostream> using namespace std; int main(){ int t,n,i,a[100],s,m; cin>>t; while(t--){ //測試次數 s=0,m=101; cin>>n; int a; while(n--){ cin>>a; s+=a; if(a%2!=0){ m=m<a?m:a; //取最小奇數 } } if(s%2!=0)cout<<s<<endl; else if(m==101)cout<<0<<endl; else cout<<s-m<<endl; } return 0; }