poj 3605
来源:互联网 发布:淘宝和卷皮哪个更好 编辑:程序博客网 时间:2024/04/30 19:51
题目很简单,就是给你一个门电路,问开关变化多少次能到达目的状态。
这个题目看起来好像无从下手,但是如果找到一个规律你就能很快解决了。
规律就是只要计算出第一次从输出0-1需要变换开关的次数,其余从0-1,1-0状态只要改变1次开关就能到达。
#include <iostream>using namespace std;int t,n,men[10005],m;char st[10050];int kg(int i){if(i*2+1>=n){if(men[i]==0)return 1;elsereturn 2;}else{if(men[i]==1)return kg(i*2+1)+kg(i*2+2);elsereturn min(kg(i*2+1),kg(i*2+2));}}int main(){int i,j,res,m;scanf("%d",&t);while(t--){scanf("%d",&n);scanf("%s",st);for(i=0;i<n-1;i++)scanf("%d",&men[i]);res=0;m=kg(0);for(i=0;st[i];i++)if(st[i] != '0')break;if(st[i])res += m;i++;for(;st[i];i++)if(st[i-1] != st[i])res ++;printf("%d\n",res);}return 0;}
- poj 3605
- POJ
- poj
- POJ
- POJ
- poj
- poj
- POJ
- POJ
- poj
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- My PeopleSoft Disaster Recovery Adventure
- hibernate多对一映射
- ubuntu 11.10 恢复菜单的命令提示操作
- as3 常用代码集锦
- Android学习第二天
- poj 3605
- 二维数组动态分配
- 虚拟机下Redhat9.0环境+Linux下挂载U盘
- 【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
- java学习笔记《面向对象编程》——异常处理
- 刷新页面时原来位置固定不动,在页面刷新的时候。MaintainScrollPositionOnPostback="true"
- 作业专用的图片
- 04_自由录入显示系统(小钱版)[汇编语言][2011-11-15]
- PHP安全性考虑