题目大意:已知n个点的蘑菇数量,采到的蘑菇只能是偶数,你可以将某个点的蘑菇数量加1,请问最多采多少蘑菇?
显然,偶数的全部都可以采;对于奇数的,至多使用1次魔法增加1后进行采摘,贪心选择最大的奇数。如果没有奇数,魔法就不用了,用了会导致偶数少采一个。
#include <bits/stdc++.h> using namespace std; int n, m, i, j, k, s; int main(){ scanf("%d", &n); for(i=1; i<=n; i++){ scanf("%d", &k); if(k&1) m = max(m, k); else s += k; } if(m) s += m+1; printf("%d\n", s); return 0; }