51Nod-1831-小C的游戏
来源:互联网 发布:为什么淘宝免运费 编辑:程序博客网 时间:2024/05/19 21:00
ACM模版
描述
题解
先吐个槽,题面有毒,这题的出题人或者翻译人语文水平堪忧啊……这里说的分成几等分只取其中一份有问题,应该是只留下其中的一份,剩下的全部拿走。真是无语=_=
这个题,没有多想,直接打表,打表后发现胜败和是否为素数有一定的关系,于是又加了一个素数筛,然后打表(代码 One)的结果如下:
此时,打表的范围在
对了,
代码
One:
#include <cstdio>#include <cmath>#include <cstring>using namespace std;const int MAXN = 10000;bool flag[MAXN];/* * 素数筛选,判断小于MAXN的数是不是素数 * notprime是一张表,false表示是素数,true表示不是 */bool notprime[MAXN];void init(){ memset(notprime, false, sizeof(notprime)); notprime[0] = notprime[1] = true; for (int i = 2; i < MAXN; i++) { if (!notprime[i]) { if (i > MAXN / i) // 阻止后边i * i溢出(或者i,j用long long) { continue; } // 直接从i * i开始就可以,小于i倍的已经筛选过了 for (int j = i * i; j < MAXN; j += i) { notprime[j] = true; } } } memset(flag, 0, sizeof(flag)); for (int i = 2; i < MAXN; i++) { flag[i] |= (!flag[i - 1]); if (flag[i]) { continue; } int tmp = sqrt(i) + 1; for (int j = 2; j <= tmp; j++) { if (i % j == 0) { flag[i] |= (!flag[j]); flag[i] |= (!flag[i / j]); if (flag[i]) { break; } } } }}int main(){ init(); for (int i = 0; i < MAXN; i++) { if (notprime[i] && flag[i] == 0) { printf("%d-%d\n", i, flag[i]); } else if (!notprime[i] && flag[i] == 1) { printf("%d-%d\n", i, flag[i]); } } return 0;}
Two:
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>using namespace std;int n;bool is_prime(int x){ if (x < 2) { return false; } int tmp = sqrt(x) + 1; for (int i = 2; i < tmp; i++) { if (x % i == 0) { return false; } } return true;}int main(){ int T; scanf("%d", &T); while (T--) { scanf("%d", &n); bool flag = false; if (is_prime(n)) { if (n == 2 || n == 17) { flag = !flag; } } else { if (n > 2 && n != 16 && n != 34 && n != 289) { flag = !flag; } } puts(flag ? "TAK" : "NIE"); } return 0;}
阅读全文
0 0
- 51Nod 1831 小C的游戏
- 51Nod-1831-小C的游戏
- 51nod 1831 小C的游戏
- 51nod-1831 小C的游戏
- 【51Nod】1804 小C的多边形
- 51Nod-1804-小C的多边形
- 51nod 1804 小C的多边形
- 51nod 1804 小C的多边形
- 51nod 欢乐手速场C 开心的小Q
- [51Nod 1816] 小C的二分图 口胡
- 51nod 1804 小C的多边形(规律)
- 51nod 1804 小C的多边形(贪心)
- 51 nod 1804 小C的多边形(贪心)
- 51nod:天堂里的游戏
- 51nod 1441:士兵的数字游戏
- 51nod 1417 天堂里的游戏
- 51nod-1714 B君的游戏
- 51nod 1417 天堂里的游戏
- 关于启动php-fpm报错 ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already
- hdu-2151 Worm
- Linux(CentOS7.1)修改默认yum源为国内的阿里云yum源
- 做人狠一点
- Linux下线程的同步与互斥以及死锁问题整理
- 51Nod-1831-小C的游戏
- ROS官网初级教程学习总结(5-9)
- 第十七周 leetcode 322. Coin Change(Medium)
- 机器学习实战之决策树算法pandas实现
- 美国五大可视分析中心
- bzoj 3505: [Cqoi2014]数三角形
- Spring Boot 系列(二)单元测试&网络请求
- python练习5
- 做人要狠一点