HDU 1016 Prime Ring Problem
2013-09-03 19:32
288 查看
转载请注明出处:http://blog.csdn.net/a1dark
分析:直接DFS暴力搜索就行了、由于运行时间比较小就没去剪枝了、简单题不懂看代码
#include<stdio.h>
#include<string.h>
int map[25];
int vis[25];
int n,flag,cas;
int judge(int x){
if(x%2==0)return 0;
for(int i=2;i<=x/2;i++){
if(x%i==0)
return 0;
}
return 1;
}
void dfs(int cur){
vis[1]=1;
if(cur>n&&judge(map
+1)){
if(flag==0){
printf("Case %d:\n",cas);cas++;
flag++;
}
for(int i=1;i<n;i++)
printf("%d ",map[i]);
printf("%d\n",map
);
}
else{
for(int i=2;i<=n;i++){
map[cur]=i;
if(!vis[i]&&judge(map[cur]+map[cur-1])){
vis[i]=1;
dfs(cur+1);
vis[i]=0;
}
}
}
}
int main(){
cas=1;
while(scanf("%d",&n)!=EOF){
if(n==1){
printf("Case %d:\n",cas);cas++;
printf("1\n");continue;
}
flag=0;
memset(vis,0,sizeof(vis));
memset(map,0,sizeof(map));
map[1]=1;
dfs(2);
printf("\n");
}
return 0;
}
分析:直接DFS暴力搜索就行了、由于运行时间比较小就没去剪枝了、简单题不懂看代码
#include<stdio.h>
#include<string.h>
int map[25];
int vis[25];
int n,flag,cas;
int judge(int x){
if(x%2==0)return 0;
for(int i=2;i<=x/2;i++){
if(x%i==0)
return 0;
}
return 1;
}
void dfs(int cur){
vis[1]=1;
if(cur>n&&judge(map
+1)){
if(flag==0){
printf("Case %d:\n",cas);cas++;
flag++;
}
for(int i=1;i<n;i++)
printf("%d ",map[i]);
printf("%d\n",map
);
}
else{
for(int i=2;i<=n;i++){
map[cur]=i;
if(!vis[i]&&judge(map[cur]+map[cur-1])){
vis[i]=1;
dfs(cur+1);
vis[i]=0;
}
}
}
}
int main(){
cas=1;
while(scanf("%d",&n)!=EOF){
if(n==1){
printf("Case %d:\n",cas);cas++;
printf("1\n");continue;
}
flag=0;
memset(vis,0,sizeof(vis));
memset(map,0,sizeof(map));
map[1]=1;
dfs(2);
printf("\n");
}
return 0;
}
相关文章推荐
- HDU 1016 Prime Ring Problem DFS
- HDU 1016 Prime Ring Problem
- HDU 1016 Prime Ring Problem (DFS回溯)
- HDU 1016 Prime Ring Problem DFS + 记忆化搜索
- hdu 1016 Prime Ring Problem
- HDU 1016 Prime Ring Problem
- HDU 1016 Prime Ring Problem 题解
- 【HDU 1016】Prime Ring Problem —— DFS
- hdu 1016 Prime Ring Problem
- hdu 1016 Prime Ring Problem
- hdu 1016 Prime Ring Problem (dfs)
- hdu 1016 Prime Ring Problem(DFS)
- HDU 1016 Prime Ring Problem
- [ACM] hdu 1016 Prime Ring Problem (DFS)
- 【HDU 1016】Prime Ring Problem(DFS)
- Prime Ring Problem HDU - 1016 (深搜)
- hdu 1016 Prime Ring Problem(素数环)
- HDU 1016 Prime Ring Problem
- [HDU] 1016 Prime Ring Problem(DFS)
- HDU 1016 Prime Ring Problem(DFS 素数环问题)