poj 1832 连环锁
来源:互联网 发布:windows xp pe 最小 编辑:程序博客网 时间:2024/04/28 23:01
还是格雷码+高精度。1A。。
#include<iostream>#include<string>using namespace std;int f[128][50];int start[128];int finish[128];int ko1[100];int ko2[100];int ans[100];int main(){int test,i,j,length,sum;memset(f,0,sizeof(f));f[0][0]=1;for(i=1;i<128;i++){for(j=0;j<50;j++)f[i][j]=f[i-1][j]*2;for(j=0;j<50;j++){f[i][j+1]=f[i][j+1]+f[i][j]/10;f[i][j]=f[i][j]%10;}}cin>>test;while(test--){cin>>length;sum=0;for(i=length-1;i>=0;i--){cin>>start[i];sum=sum+start[i];}for(i=0;i<length;i++){sum=sum-start[i];if(sum%2==1)start[i]=1-start[i];}sum=0;for(i=length-1;i>=0;i--){cin>>finish[i];sum=sum+finish[i];}for(i=0;i<length;i++){sum=sum-finish[i];if(sum%2==1)finish[i]=1-finish[i];}memset(ko1,0,sizeof(ko1));memset(ko2,0,sizeof(ko2));for(i=0;i<length;i++){if(start[i]==0)continue;int carry=0;for(j=0;j<50;j++){ko1[j]=ko1[j]+f[i][j]+carry;carry=ko1[j]/10;ko1[j]=ko1[j]%10;}}for(i=0;i<length;i++){if(finish[i]==0)continue;int carry=0;for(j=0;j<50;j++){ko2[j]=ko2[j]+f[i][j]+carry;carry=ko2[j]/10;ko2[j]=ko2[j]%10;}}int flag=0;for(i=49;i>=0;i--){if(ko1[i]-ko2[i]>0)flag=1;if(ko1[i]-ko2[i]<0)flag=2;if(flag!=0)break;}if(flag==0)cout<<0<<endl;else if(flag==1){int length1;for(i=0;i<50;i++)ans[i]=ko1[i]-ko2[i];for(i=0;i<50;i++)if(ans[i]<0){ans[i]=ans[i]+10;ans[i+1]=ans[i+1]-1;}for(i=49;i>=0;i--)if(ans[i]>0){length1=i;break;}for(i=length1;i>=0;i--)cout<<ans[i];cout<<endl;}else {int length2;for(i=0;i<50;i++)ans[i]=ko2[i]-ko1[i];for(i=0;i<50;i++)if(ans[i]<0){ans[i]=ans[i]+10;ans[i+1]=ans[i+1]-1;}for(i=49;i>=0;i--)if(ans[i]>0){length2=i;break;} for(i=length2;i>=0;i--)cout<<ans[i];cout<<endl;}}return 0;}
- poj 1832 连环锁
- [POJ 1832] 连环锁 格雷码
- POJ 1832 连环锁 中文
- 连环锁 POJ - 1832(九连环的推广)
- POJ 1832(9连环)
- 连环记
- 连环套
- 九连环
- 九连环问题解决
- [案件追踪]连环陷阱
- 制作IMC连环画册
- 铉——连环
- 九连环的解法
- 七连环切割问题
- 关于九连环
- 九连环问题解决
- 五行连环拳
- 九连环玩法
- 家具店-游泳馆-粥店 今天是这么过的... ...
- vim+tags+cscope+taglist
- 把数组排成最小的数
- hdu4671 构造
- json配置"db":true以后报错的解决方法
- poj 1832 连环锁
- NYOJ 题目17 单调递增最长子序列 (DP)
- 开发者必备的6款源码搜索引擎
- Android开发中高效的代码编写
- 对 Linux 新手非常有用的 20 个命令
- 20 Useful Commands for Linux Newbies
- Java多线程——4 阻塞队列
- 安装Win7和Ubuntu12.04双系统后,意外删除Ubuntu12.04引导文件,出现error:unknown filesystem;grub rescue>错误的解决方案
- 2013.8.13 学习笔记《windows核心编程》(十一) 键盘消息与翻译消息