poj 1426 Find The Multiple( bfs )
题目:http://poj.org/problem?id=1426
题意:输入一个数,输出这个数的整数 倍,且只有0和1组成
程序里写错了一个数,结果一直MLE.……
1 #include <iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cstdlib> 5 #include<stack> 6 #include<queue> 7 #include<iomanip> 8 #include<cmath> 9 #include<map> 10 #include<vector> 11 #include<algorithm> 12 using namespace std; 13 14 long long a; 15 void bfs() 16 { 17 queue<long long>q; 18 int i,j; 19 long long x=1,pos; 20 q.push(x); 21 while(!q.empty()) 22 { 23 pos=q.front(); 24 q.pop(); 25 for(i=0; i<2; i++) 26 { 27 x=pos*10+i; 28 if(x%a==0) 29 { 30 cout<<x<<endl; 31 return; 32 } 33 q.push(x); 34 } 35 } 36 } 37 int main() 38 { 39 int i,j; 40 while(cin>>a&&a) 41 { 42 if(a==1) 43 { 44 cout<<"1"<<endl; 45 continue; 46 } 47 bfs(); 48 } 49 return 0; 50 }
还 有用同余模定理做的
(a*b)%n = (a%n *b%n)%n
(a+b)%n = (a%n +b%n)%n
地址:http://blog.csdn.net/lyy289065406/article/details/6647917