POJ 1426 字符串来处理大数求解该题
发布时间:2020-12-14 02:02:54 所属栏目:大数据 来源:网络整理
导读:#include iostream#include cstringtypedef long long ll;using namespace std;const int maxn = 200;string s[maxn];int m[maxn],p,q,n;bool vis[205];void bfs(){ p = q = 0; memset(vis,sizeof(vis)); s[q] = "1"; m[q++] = 1; vis[1] = true; while(p!=q
#include <iostream> #include <cstring> typedef long long ll; using namespace std; const int maxn = 200; string s[maxn]; int m[maxn],p,q,n; bool vis[205]; void bfs(){ p = q = 0; memset(vis,sizeof(vis)); s[q] = "1"; m[q++] = 1; vis[1] = true; while(p!=q){ s[q] = s[p] + "0"; m[q] = m[p]*10%n; if(m[q]==0){ cout<<s[q]<<endl; return ; } if( !vis[m[q]] ){ vis[m[q]] = true; q++; } s[q] = s[p] + "1"; m[q] = (m[p]*10+1)%n; if(m[q]==0){ cout<<s[q]<<endl; return ; } if( !vis[m[q]] ){ vis[m[q]] = true; q++; } p++; } } int main(){ while(cin>>n,n){ bfs(); } return 0; }该解法对于BFS当中的队列的应用 未采用STL,而是采用数组下标进行操作,值得学习。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |