NC53677. 「金」初心如金
描述
帕秋莉掌握了一种金属性魔法
就在她掌握这种魔法的一瞬间,魔导书中飞出了一个虚影
“如果你想继续接受我的传承,请完成我给你的试炼……”
帕秋莉毫不犹豫地接受了试炼,却发现她并不会试炼的内容,于是请你来帮助她
试炼的内容如下:
每次给出一个奇数,判断其是否是质数,如果是的话,答案为1,否则答案为0
但试炼显然不会这么简单,除第一次以外,后来给出的所有数字均不是真正的数据,而是数据与lastans(上一次询问的答案,初始值为0)的异或值
如第一次给出奇数11,是质数,答案为1,下一次的奇数本该是13,但由于需要异或上一次的答案(1),因此给出的数据为12
由于帕秋莉还是想锻炼一下自己,所以最后一次的询问她要自己计算,就不用你帮忙输出啦!
输入描述
两行,第一行一个整数n (n>1),表示共有n 次询问
接下来的n行,每行一个数x,表示询问的数字
除第一个外,后面给出的数字均异或了上一次询问的答案
输出描述
n-1行,每行一个数字0或1,代表需要你输出的答案
示例1
输入:
4 11 12 14 21
输出:
1 1 0
C++14(g++5.4) 解法, 执行用时: 367ms, 内存消耗: 13956K, 提交时间: 2019-12-04 09:11:16
#include<bits/stdc++.h> using namespace std; int main() { long long n,x; scanf("%lld%lld",&n,&x); for(int i=2;i<=n;i++) scanf("%lld",&x),printf("%lld\n",!(x&1)); return 0; }
C(clang 3.9) 解法, 执行用时: 390ms, 内存消耗: 2412K, 提交时间: 2020-01-07 20:35:14
#include<stdio.h> int main() { int n,x; int i,s,c; scanf("%d",&i); scanf("%d",&n); i=i-1; while(i--) { scanf("%d",&x); c=(x&1); printf(c?"0\n":"1\n"); } return 0; }
C++11(clang++ 3.9) 解法, 执行用时: 430ms, 内存消耗: 13952K, 提交时间: 2020-02-25 20:10:53
#include<cstdio> int main() { long long n,x; scanf("%lld%lld",&n,&x); for(int i=2;i<=n;i++) scanf("%lld",&x),printf("%lld\n",!(x&1)); }