【字串暴力】hdu 2847
阿新 • • 發佈:2019-01-22
暴力不解釋。
#include <vector> #include <list> #include <map> #include <set> #include <queue> #include <string> #include <deque> #include <stack> #include <algorithm> #include <iostream> #include <iomanip> #include <cstdio> #include <cmath> #include <cstdlib> #include <limits.h> #include <time.h> #include <string.h> using namespace std; int lowbit(int t){return t&(-t);} int countbit(int t){return (t==0)?0:(1+countbit(t&(t-1)));} int gcd(int a,int b){return (b==0)?a:gcd(b,a%b);} #define LL long long #define PI acos(-1.0) #define N 1010 #define MAX INT_MAX #define MIN INT_MIN #define eps 1e-8 #define FRE freopen("a.txt","r",stdin) int main(){ char s[30]; char ss[30]; int n; while(scanf("%s%d",s,&n)!=EOF){ int i,j,k; int cnt; int len=strlen(s); int sum=0; for(i=0;i<len;i++)sum=sum*2+s[i]-'0'; if( sum % n == 0){printf("%s\n",s);continue;} else k=( sum / n + 1 )*n; while(1){ int cur=k;// cnt=0; while(cur){ ss[cnt++]=cur%2+'0'; cur>>=1; } //ss[cnt]='\0'; int l=0,r=cnt-1; while(l<len && r>=0){ if(s[l]==ss[r]){ l++; r--; } else r--; } if(l>=len)break; k+=n; } for(i=cnt-1;i>=0;i--) printf("%c",ss[i]); puts(""); } return 0; }