惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
C
Cybersecurity and Infrastructure Security Agency CISA
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Know Your Adversary
Know Your Adversary
S
Securelist
I
Intezer
AWS News Blog
AWS News Blog
L
LINUX DO - 热门话题
P
Privacy International News Feed
Recent Announcements
Recent Announcements
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
博客园 - 聂微东
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Attack and Defense Labs
Attack and Defense Labs
N
News and Events Feed by Topic
The GitHub Blog
The GitHub Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Schneier on Security
Schneier on Security
N
Netflix TechBlog - Medium
爱范儿
爱范儿
B
Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
CERT Recently Published Vulnerability Notes
Hacker News: Ask HN
Hacker News: Ask HN
Google DeepMind News
Google DeepMind News
Engineering at Meta
Engineering at Meta
Blog — PlanetScale
Blog — PlanetScale
WordPress大学
WordPress大学
S
Secure Thoughts
K
Kaspersky official blog
N
News | PayPal Newsroom
O
OpenAI News
Last Week in AI
Last Week in AI
C
Check Point Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Cyberwarzone
Cyberwarzone
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Tor Project blog
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
D
Docker
Hugging Face - Blog
Hugging Face - Blog
T
Threat Research - Cisco Blogs
Cisco Talos Blog
Cisco Talos Blog
The Register - Security
The Register - Security
博客园 - 司徒正美
Martin Fowler
Martin Fowler
人人都是产品经理
人人都是产品经理
P
Palo Alto Networks Blog

iCode

春节到了,送一波 Moon FM 兑换码 - V2EX 马上 2020 了,送一波 zClock 兑换码. - V2EX 为了收集和整理编程的常用单词,我写了个背单词应用 - V2EX 推荐一个使用的工具集合 MDTools - V2EX MAC 应用延时录屏 timelapseZ 送 20 个注册码 - V2EX Code Review 代码审阅初窥门径 - V2EX 2017 Apple 设计大奖得主 Lake 涂色兑换码 - V2EX 「艾宾浩斯计划表」¥6 免费放送 50 枚促销代码 - V2EX 视觉图表 for iOS ¥68 分享 50 个促销代码 - V2EX 送 Instastack, OneRadio ,HaloRadio for Windows 等兑换码。 - V2EX 花钱请 ios 码农将几个开源功能组合实现。 - V2EX 封装了一个 Markdown 库 - EFMarkdown,求资瓷...QWQ - V2EX 刚把邮件发送换成 mailgun 了,想测一下激活码邮件的发送情况,发一大波 HaloRadio , PhotoStack(Instastack) ,ONERadio 免费兑换码啦 - V2EX 二维码扫描器 For Mac - V2EX 在这里再发 50 个兑换码吧 - V2EX 发码了 PhotoStack (Instastack) for Instagram 和 HaloRadio 各 10 个 - V2EX 发一些 MWeb for iOS ( Markdown 编辑器)内购兑换码,共 20 枚,分三次发(主要是分享到 ProductHunt 后没什么人投票,来求一下票票) - V2EX 发 10 个 Instastack for Instagram 兑换码。 - V2EX Halo for Radio 上 Windows Store 啦。发 Promotional code. - V2EX 赠送些 VeXplore 兑换码以及开源计划 - V2EX 上次没抢到的同学,新的一波 Instastack 兑换码来了 - V2EX QPai :一个扫描、展示并记录二维码、条形码及其所表示内容的小工具,附 20 枚兑换码 - V2EX 奉上 Instastack for Instagram Mac App Store 兑换码 若干个 - V2EX 第一个 Mac App,关于货币汇率,请大家多提意见,谢谢(附送几个兑换码,先到先得) - V2EX iOS 创意应用“分形的奥秘:朱利亚集合” Beta 公开测试邀请 - V2EX 发一批 ONERadio 兑换码 - V2EX 做了个囚徒健身的 APP,来发下促销码, - V2EX 放十个码, iOS 通知中心直接翻译剪切版文本 - V2EX iOS 付费软件 分发兑换码求各位拍砖! - V2EX 有谁知道 iTunes Window 插件是什么鬼吗,刚好有这个需求。 - V2EX 使用机器学习算法如何预测某女孩成为女朋友的概率? - V2EX MWeb 新版发布,发 10 个兑换码。MWeb 是 OS X 下的 Markdown 编辑器和全静态网站、博客生成工具 - V2EX MWeb 新版通过审核了,所以我又来发 Promo Code 了 -- MWeb 是一个 Markdown 编辑器和生成全静态博客的 Mac APP - V2EX 自己移植的 iPerf iOS 版本已在 AppStore 上架,发放 10 枚兑换码 - V2EX 花几个月做了一个 Markdown 编辑器和生成全静态博客的 Mac APP,发些 Promo Code - V2EX Go 轻松学 兑换码 倾情分享 请标注使用了的。 - V2EX 记录事件次数的 App countability 兑换码 - V2EX 新游戏上线,赠送兑换码 - V2EX 分享「国际音标」的 Promo Code - V2EX 赠送 10 枚 Notie 邀请码 - V2EX 储蓄计划追踪App DropCoin发码 - V2EX 赠送一些 Paster for Mac 邀请码 - V2EX 原创APP分享 送上15个邀请码 - V2EX 分享LunarCal的Promo Code - V2EX 预产期日历 - V2EX Google Objective-C Style Guide - V2EX MarkNote 1.0.0 - V2EX
问一道 code 题 - V2EX
stebest · 2017-11-11 · via iCode

之前刷题的时候遇到一个题目,感觉做法没错,但是总是不通过,可能是当局者迷,不知道有没有人能帮忙找出来。

小易有一个长度为 N 的正整数数列 A = {A[1], A[2], A[3]..., A[N]}。
牛博士给小易出了一个难题:
对数列 A 进行重新排列,使数列 A 满足所有的 A[i] * A[i + 1](1 ≤ i ≤ N - 1)都是 4 的倍数。
小易现在需要判断一个数列是否可以重排之后满足牛博士的要求。

主要方法是寻找能被 4 整除和只能被 2 整除的数, 代码如下:

#include <stdio.h>
int Isarray(int n, int a[100000])
{
    int n1=0,n2=0,n4=0,i;
    for(i=0;i<n;i++)
    {
        if(a[i]%4==0)
            ++n4;
        else if(a[i]%2==0)
             ++n2;
        else
             ++n1;
    }
    //printf("%d,%d,%d,%d\t",n1,n2,n4,n);
    if (n==1 && n4 )
        return 1;
    if((n4>=n1) ||((n4>= n1-1) &&(n4+n1 == n)))
        return 1;
    else
        return 0;
    }
int main(void)
{
    int i,j,t,n,a[100000],b[10];
    scanf("%d",&t);
    scanf("%d",&n);
    for(j=0;j<t;j++)
    {
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    b[j]=Isarray(n,a);
    }
    for(j=0;j<t;j++)
    if(b[j])
        printf("Yes");
    else
        printf("No");
    return 0;
}

但是我看类似的代码,比如:

#include <stdio.h>
 
int n;
int arr[100100];
 
int countMod4, countMod2;
 
void read() {
    countMod4 = 0;
    countMod2 = 0;
    scanf("%d", &n);
    for (int i = 0; i < n; ++i) {
        scanf("%d", arr + i);
        if (arr[i] % 4 == 0) {
            ++countMod4;
        } else if (arr[i] % 2 == 0) {
            ++countMod2;
        }
    }
}
 
void work() {
    int countOdd = n - countMod4 - countMod2;
    if ((n == 1 && countMod4) || countMod4 >= countOdd - !countMod2) {
        puts("Yes");
    } else {
        puts("No");
    }
}
 
int main() {
    int t;
    scanf("%d", &t);
    while (t--) {
        read();
        work();
    }
    return 0;
}

这样就是可以通过的。
弄不清楚错在哪了。