码迷,mamicode.com
首页 > 其他好文 > 详细

Poj 1023

时间:2017-05-31 21:25:18      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:stream   其他   csdn   blank   ==   org   href   cstring   names   

传送门

大神的分析

十进制转换为二进制,从低位向高位转换,注意数值较大用long long型

每次将1和p相与,分析最低位,当最低位为1且该位为n,p+2,然后右移一位继续计算下一位(因为接右移一位,所以p+2和p++等效)

(这个地方我觉得还可以考虑将该位设为0,有其他可能还要再考虑)

 1 #include<iostream>
 2 #include<cstring>
 3 using namespace std;
 4 int main(){
 5     int t;
 6     int k;
 7     char n[70];
 8     char res[70];
 9     long long p;
10     cin>>t;
11     while(t--){
12         cin>>k;
13         cin>>n;
14         cin>>p;
15         memset(res,0,sizeof(res));
16         while(k--){
17             if(p&1){
18                 if(n[k]==n){
19                     p++;
20                 }
21                 res[k]=1;
22             }
23             else{
24                 res[k]=0;
25             }
26             p>>=1;
27         }
28         if(p){
29             cout<<"Impossible"<<endl;
30         }
31         else{
32             cout<<res<<endl;
33         }
34     }
35 }

 

Poj 1023

标签:stream   其他   csdn   blank   ==   org   href   cstring   names   

原文地址:http://www.cnblogs.com/marlenemizuno/p/6925900.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!