2012ACM/ICPC成都赛区现场赛K题---Yet Another Multiple Problem(hdu4474)
2012-12-01 16:23
429 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4474
题意:一个简单的BFS,用没出现的数字进行BFS,最后递归输出结果。
题解:如果当前在队首的为n ,则接下来要进队的是m=(n*10+i)%n;若m=0,则递归输出结果,相同的m只需进队一次。
代码:
题意:一个简单的BFS,用没出现的数字进行BFS,最后递归输出结果。
题解:如果当前在队首的为n ,则接下来要进队的是m=(n*10+i)%n;若m=0,则递归输出结果,相同的m只需进队一次。
代码:
#include <cstdio> #include<cstring> #include<queue> using namespace std; queue<int> que; int used[10]; int flag[10010],pre[10010],vlaue[10010]; //flag[]标记m是否进过对列,pre[]保存前一个m,而vlaue[]则保存对应m的i值 int n,m; void print(int n)//递归输出结果 { if(n!=-1) { print(pre ); printf("%d",vlaue ); } } void bfs() { for(int i=1;i<=9;i++) { if(!used[i] && !flag[i%n]) { que.push(i%n); flag[i%n] = 1; pre[i%n] = -1;//首位的前一个值为-1,作为递归输出的结束条件 vlaue[i%n] = i; } } while(!que.empty()) { int temp = que.front(); if(temp == 0) { print(pre[temp]); printf("%d\n",vlaue[temp]); return; } else { for(int i=0;i<=9;i++) { if(!used[i] && !flag[(temp*10+i)%n]) {//数字i未出现,并且(temp*10+i)%n未进队列过,则进队 que.push((temp*10+i)%n); flag[(temp*10+i)%n] = 1; pre[(temp*10+i)%n] = temp; vlaue[(temp*10+i)%n] = i; } } } que.pop(); } printf("-1\n"); return; } int main() { int ncase=1,m1; while(scanf("%d%d",&n,&m)!=EOF) { memset(used,0,sizeof(used)); memset(flag,0,sizeof(flag)); while(!que.empty()) que.pop(); for(int i=0;i<m;i++) { scanf("%d",&m1); if(!used[m1]) used[m1] = 1; } printf("Case %d: ",ncase++); bfs(); } return 0; }
相关文章推荐
- 【HDU4474 2012成都现场赛K】【搜索-BFS】Yet Another Multiple Problem 最小的要求字符集的数字倍数 余数哈希BFS
- HDU 4474 HDOJ Yet Another Multiple Problem 2012ACM亚洲赛成都赛区K题
- 12年成都现场赛K_Yet Another Multiple Problem
- HDU 4474 HDOJ Yet Another Multiple Problem 2012ACM亚洲赛成都赛区K题
- HDU4474_Yet Another Multiple Problem
- HDU4474 Yet Another Multiple Problem
- hdu4474-Yet Another Multiple Problem
- hdu4474 Yet Another Multiple Problem
- HDU 4474 Yet Another Multiple Problem【2012成都regional K题】 【BFS+一个判断技巧】
- HDU 4474 Yet Another Multiple Problem(12年成都区域赛-K题-BFS)
- hdu 4474 Yet Another Multiple Problem 模型转换 BFS搜索 根据剩余类建图广搜
- HDU 4474 Yet Another Multiple Problem
- hdu 4474 Yet Another Multiple Problem
- hdu 4474 Yet Another Multiple Problem 模型转换 BFS搜索
- Hdu 4474 Yet Another Multiple Problem
- HDU 4474 Yet Another Multiple Problem bfs枚举所有余数
- HDOJ 4474 Yet Another Multiple Problem
- Yet Another Multiple Problem(bfs好题)
- HDU 4474:Yet Another Multiple Problem
- HDOJ 4474 Yet Another Multiple Problem(BFS + 剪枝)