OJ刷题——你爱我么?

题目描述

  LCY买个n束花准备送给她暗恋的女生,但是他不知道这个女生是否喜欢他。这时候一个算命先生告诉他让他查花瓣数,第一个花瓣表示"爱",第二个花瓣表示"不爱",第三个花瓣表示"爱".....
为了使最后结果是"爱",LCY需要从n束花中选出一些,你能帮他算出最后他送给这个女生的花中最多包含多少个花瓣吗?

输入

  首先输入一个整数T,表示测试实例的个数。
  接下来T组测试实例,每组实例首先输入一行,包括一个整数n(1 <= n <= 100)。
  然后输入一行,n个数a1,a2...an(1 <= ai <= 100),表示每束花包含的花瓣的个数。

输出

  每组实例输出一个整数,表示LCY最多能送多少个花瓣给这个女生。

样例输入
3
1
1
1
2
3
5 6 7
样例输出 
1
0
13

思路分析:读入时将数据按照奇偶性分开存储,根据“奇数个奇数的和是奇数,偶数个奇数的和是偶数”可知当输入无奇数时肯定不能得到和是奇数的输出,当奇数个数为奇数时全部可取,当奇数个数为偶数时,不取最小的一个。
附上代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Main{

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner(System.in);
        int total = scan.nextInt();
        for(int i = 0;i<total;i++) {
            int n = scan.nextInt();
            ArrayList<Integer> alOdd = new ArrayList<Integer>();
            ArrayList<Integer> alEven = new ArrayList<Integer>();
            int sum = 0;
            for(int j = 0;j<n;j++) {
                int temp = scan.nextInt();
                if(temp%2==0) {
                    alEven.add(temp);
                }else {
                    alOdd.add(temp);
                }
            }
            if(alOdd.size()==0) {//没有奇数,最后和肯定是偶数
                System.out.println(0);
                continue;
            }else {//有奇数,能够组合出奇数
                for(int m = 0;m<alEven.size();m++) {//偶数的全都要
                    sum+=alEven.get(m);
                }
                //奇数的要奇数个
                int lenOdd = alOdd.size();
                if(lenOdd%2==0) {//奇数有偶数个,最小的一个不要
                    Collections.sort(alOdd);//升序排序
                    for(int m = 1;m<lenOdd;m++) {
                        sum+=alOdd.get(m);
                    }
                }else {//奇数有奇数个,全都要
                    for(int m = 0;m<lenOdd;m++) {
                        sum+=alOdd.get(m);
                    }
                }
                
            }
            System.out.println(sum);
        }
    }

}

 


posted @ 2020-04-11 15:16  LZhXue  阅读(192)  评论(0编辑  收藏  举报