多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > HDU 4474&&POJ 1465 BFS&&余數判重

HDU 4474&&POJ 1465 BFS&&余數判重

來源:程序員人生   發布時間:2014-11-10 08:42:19 閱讀次數:2010次

兩道題只是輸入輸出格式略有不同

給出n,m,m個數

要求生成1個數x,是n的倍數,并且只由這M個數構成(或不能含有這M個數中的任意1個),求最小的x,沒有則輸出⑴(0);


BFS找每個滿足n的倍數的數,用余數判重優化

對給定兩個數A,B,如果A和B模N都相同,設為C,即:

A=x*N+C

B=y*N+C

那末如果在A后面加上1個數字能夠被N整除,則在B后面加上這個數字也肯定可以被N整除

即:(A*10+X)%N==(B*10+X)%N

因此可以利用模N的結果進行判重,只保存相同余數的最小數,因而采取BFS搜索


HDU4474:

#include "stdio.h" #include "string.h" #include "queue" using namespace std; int hash[11],num[10010],pre[10010]; int n; void pri(int k) { if (pre[k]!=⑴) pri(pre[k]); printf("%d",num[k]); } void bfs() { queue<int>q; int i,cur,next; for (i=1;i<=9;i++) if(hash[i]==0) { cur=i%n; if (cur==0) { printf("%d ",i); return ;} num[cur]=i; q.push(cur); } while (!q.empty()) { cur=q.front(); q.pop(); for (i=0;i<=9;i++) if(hash[i]==0) { next=(cur*10+i)%n; if (num[next]==⑴) { q.push(next); num[next]=i; pre[next]=cur; } if (next==0) {pri(next); printf(" "); return ;} } } printf("⑴ "); return ; } int main() { int m,x,Case=1; while (scanf("%d",&n)!=EOF) { memset(hash,0,sizeof(hash)); memset(num,⑴,sizeof(num)); memset(pre,⑴,sizeof(pre)); scanf("%d",&m); while (m--) { scanf("%d",&x); hash[x]=1; } printf("Case %d: ",Case++); if(n==0) { printf("⑴ "); continue;} bfs(); } return 0; }

POJ1465:

#include "stdio.h" #include "string.h" #include "queue" using namespace std; int hash[11],num[10010],pre[10010]; int n; void pri(int k) { if (pre[k]!=⑴) pri(pre[k]); printf("%d",num[k]); } void bfs() { queue<int>q; int i,cur,next; for (i=1;i<=9;i++) if(hash[i]==1) { cur=i%n; if (cur==0) { printf("%d ",i); return ;} num[cur]=i; q.push(cur); } while (!q.empty()) { cur=q.front(); q.pop(); for (i=0;i<=9;i++) if(hash[i]==1) { next=(cur*10+i)%n; if (num[next]==⑴) { q.push(next); num[next]=i; pre[next]=cur; } if (next==0) {pri(next); printf(" "); return ;} } } printf("0 "); return ; } int main() { int m,x,Case=1; while (scanf("%d",&n)!=EOF) { memset(hash,0,sizeof(hash)); memset(num,⑴,sizeof(num)); memset(pre,⑴,sizeof(pre)); scanf("%d",&m); while (m--) { scanf("%d",&x); hash[x]=1; } // printf("Case %d: ",Case++); if(n==0) { printf("0 "); continue;} bfs(); } return 0; }



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲狠狠 | 色综合亚洲精品激情狠狠 | 大胆国模一区二区三区伊人 | 夜夜狠狠狠狠 | 另类图片成人偷拍 | 正在播放国产一区 | h视频网站在线观看 | 久久精品一品道久久精品9 久久精品一区二区 | 中文字幕精品一区 | 无人日本免费视频 | 日本一级α一片免费视频 | 在线免费观看成年人视频 | 国产视频一区在线 | 91刘亦菲精品福利在线 | 日本免费第一区二区三区 | 欧美成熟丰满老妇xxxx | 久久久久久综合 | 亚洲va乱码一区二区三区 | 国产亚洲精品国产 | 日本日本 | 欧美 亚洲 一区 | 久久精品国产6699国产精 | 久久久久国产一级毛片高清版 | 免费国产一区二区在免费观看 | 午夜精品久久久久久久2023 | 欧美日韩亚洲国产一区二区综合 | 国产11一12周岁女毛片 | h视频免费看| 欧美a级v片不卡在线观看 | 国内精品免费一区二区三区 | 国产高清在线播放免费观看 | 国产在线a不卡免费视频 | 在线观看免费视频片 | 亚洲精品国自产拍影院 | 欧美另类性视频在线看 | 亚洲成人自拍网 | 中文字幕日韩精品中文区 | 亚洲婷婷综合中文字幕第一页 | 亚洲免费在线观看视频 | 亚洲精品国产第一区二区三区 | a4yy私人毛片 |