关注
这题不用做的这么麻烦吧。直接计数就行了。能被1,2,4整除的数分别是多少再判断就行了。不过我的做法90%,不知道哪个case没过... #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstdint>
#include <vector>
#include <stack>
#include <algorithm>
#include <unordered_map>
#include <cmath>
#include <cstring>
#include <queue>
#include <set>
using namespace std;
#define MAX 100005
#define MOD 1000000007
#define LL long long int
int t, n;
LL nums[MAX];
//vector<int> a1, a2, a4;
int a1,a2,a4;
bool check(LL a, LL b){
return ((a * b) & 3) == 0;
}
int main()
{
#ifdef DEBUG
freopen("input.txt","r",stdin);
#endif
scanf("%d",&t);
while(t --){
scanf("%d",&n);
//a1.clear();
//a2.clear();
//a4.clear();
a1 = a4 = a2 =0;
for (int i =0;i< n;i++){
scanf("%lld",&nums[i]);
if (nums[i] %4 == 0)
a4++;
else if ( nums[i]%2 == 0)
a2 ++;
else
a1 ++;
}
if (n == 1){
printf("No\n");
continue;
}
if (a1-1 > a4 || (a1 > 0 && a4 == 0)){
printf("No\n");
continue;
}
if (a1 == 0 || a2 == 0){
printf("Yes\n");
continue;
}
if (a1 > a4){
printf("No\n");
continue;
}
printf("Yes\n");
/*
if ((a4< a1-1) || (a1 >0 && a4 == 0)){
printf("No\n");
continue;
}
if ((a2 >0) && a4 < a1 ) {
printf("No\n");
continue;
}*/
}
return 0;
}
查看原帖
点赞 3
相关推荐
06-27 13:17
阿坝师范学院 单片机 
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届校招投递进展 #
27820次浏览 217人参与
# 小米提前批笔试难吗 #
33792次浏览 355人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
8779次浏览 104人参与
# 为了找工作你花了哪些钱? #
26948次浏览 257人参与
# 烟草笔面经互助 #
16780次浏览 180人参与
# 打工人的精神状态 #
49259次浏览 857人参与
# 大疆的机械笔试比去年难吗 #
72803次浏览 618人参与
# 你觉得专业和学校哪个对薪资影响最大 #
61226次浏览 490人参与
# 牛友们,签完三方你在忙什么? #
98113次浏览 852人参与
# 你秋招想去哪些公司 #
21628次浏览 798人参与
# 你今年的保底offer是哪家 #
118129次浏览 537人参与
# 你觉得比亚迪今年还有春招吗? #
191138次浏览 1050人参与
# 视觉/交互/设计百问百答 #
46352次浏览 435人参与
# 秋招结束之后的日子 #
75121次浏览 909人参与
# kpi面有什么特征 #
52151次浏览 402人参与
# 机械人春招想让哪家公司来捞你? #
344412次浏览 3078人参与
# 机械人你觉得今年行情怎么样? #
1285次浏览 27人参与
# 那些我实习了才知道的事 #
210891次浏览 1721人参与
# 如何缓解入职前的焦虑 #
192216次浏览 1339人参与
# 查收我的offer竞争力报告 #
189458次浏览 1265人参与
# 为什么国企只招应届生 #
178303次浏览 1157人参与