解题思路: 分别统计奇数和偶数
               ans!=0时
               ans=2^(odd-1+even)
注意事项: 
参考代码:
import java.util.Scanner;
public class 数组分割 {
    /*
     2
     2
     6 6
     2
     1 6
     * */
        static long mod=1000000007;
        static int cifang;
        public static void main(String[] args) {
            Scanner scanner=new Scanner(System.in);
            int T=scanner.nextInt();
            while(T>0) {
                T--;
                int n=scanner.nextInt();
                int even=0;
                int odd=0;
                cifang=0;
                for(int i=1;i<=n;i++) {
                    int num=scanner.nextInt();
                    if(num%2==0)
                        even++;
                    else {
                        odd++;
                    }
                }
//  System.out.println(even+" even");
//  System.out.println(odd+" odd");
                if(odd==0&&even>0){
                    cifang = even;
                }
//   System.out.println(Math.pow(2, even)%mod);
                else if(odd%2==0)
                    cifang =odd-1+even;
                else {
                    cifang=-1;
                }
//  System.out.println(cifang+" p");
                long ans=1;
                if(cifang==-1)
                    System.out.println(0);
                else {
                    while(cifang>0)
                    {
                        ans=(ans*2)%mod;
                        cifang--;
                    }
                    System.out.println(ans);
//                    System.out.println(" "+odd+" "+even);
                }
            }
    }
}
0.0分
6 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
 
发表评论 取消回复