NYOJ488 素数环 【回溯】+【预处理】
来源:互联网 发布:但我知你的心 编辑:程序博客网 时间:2024/05/29 14:31
原题链接
这题要先对n进行奇偶数判断,如果是奇数且不为1则NO answer,否则有解,回溯加剪枝解决。
#include <stdio.h>int n, store[21], Prime[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43 };bool hasSelect[21], ok;bool checkPrime(int k){for(int i = 0; i < 14; ++i)if(k == Prime[i]) return 1;return 0;}void backTrack(int k){if(k == n + 1){if(checkPrime(store[1] + store[n])){printf("%d", store[1]);for(int i = 2; i <= n; ++i) printf(" %d", store[i]);printf("\n");ok = 1;}return;}for(int i = 2; i <= n; ++i){if(!hasSelect[i] && checkPrime(i + store[k - 1])){hasSelect[i] = 1;store[k] = i;backTrack(k + 1);hasSelect[i] = 0;}}}int main(){int i = 1;while(scanf("%d", &n), n){printf("Case %d:\n", i++);if(n & 1){if(n == 1) printf("1\n");else printf("No Answer\n");continue;}ok = 0;store[1] = 1;backTrack(2);if(!ok) printf("No Answer\n");}return 0;}
815818长木素数环Accepted28232C/C++04-15 10:46:05
0 0
- NYOJ488 素数环 【回溯】+【预处理】
- 素数环(nyoj488)
- nyoj488(素数环)
- NYOJ488-素数环
- NYOJ488-素数环
- nyoj488素数环
- NYOJ488素数环
- nyoj488--素数环
- nyoj488 素数环
- nyoj488素数环
- nyoj488 素数环
- nyoj488素数环
- nyoj488素数环
- nyoj488 素数环
- nyoj488 素数环
- NYOJ488~素数环
- nyoj488 素数环(dfs)
- nyoj488&&hdu1016 素数环(DFS)
- java解析xml的4种经典方法
- 安卓相关教程
- Web页面渲染及合成加速(一)
- Dom学习笔记
- 10个凭证类型的速记
- NYOJ488 素数环 【回溯】+【预处理】
- 关于定时器位置的设置
- Android菜鸟的成长笔记(5)——Android系统源代码你下载了吗?
- android[xml]Android strings.xml中空格符的标识方法附xml特殊字符表示法
- uboot启动参数,机器码,环境变量
- WebKit的布局size与真实的屏幕size(webkit中的常见坐标系)
- android数据库sqlite 不支持select top 10的写法
- android 点阵字库
- Android菜鸟的成长笔记(6)——剖析源码学自定义主题Theme