nyoj543遥控器
来源:互联网 发布:mysql和nosql 编辑:程序博客网 时间:2024/04/27 17:01
NYOJ543
这题给跪了 。。。。。。。。。。
来几个测试数据:
1.测试你的 上下键问题
0 0 0 1
0 0 0 0
0 0 0
0 0
99 0
答案为 1
0 0 0 0
0 0 0 1
0 0 0
0 0
0 99
答案为 1
2 . 测试你跳键
1 1 1 0
1 1 1 0
1 1 1
1 1
8 99 和 99 8
答案为 3 和 1
3.来个混合
1 0 1 0
0 0 0 1
0 0 0
1 0
96 0 和 99 32
答案为2 和 4
枚举+打表
难在情况理清楚
注意一个细节,就是跳到 0-9 不需要leap 键!!!!!!
#include<stdio.h>#include<string.h>#define min(a,b) a<b?a:b#define INF 1000int num[10];int leap ,up, down;int x,y;int charge[100];void read( ){ scanf("%d %d %d %d",&num[1],&num[2],&num[3],&up);scanf("%d %d %d %d",&num[4],&num[5],&num[6],&down);scanf("%d %d %d",&num[7],&num[8],&num[9]);scanf("%d %d",&leap,&num[0]);scanf("%d %d",&x,&y);}int get_up( int l , int r ){if( l < r)return r - l;return 100 -l + r;}int get_down(int l,int r){if(l < r )return 100 - r + l;return l - r ;}int main(){int n;int i,j;int ans ;scanf("%d",&n); while(n--){read(); memset(charge,0,sizeof(charge));ans =INF;if(x==y){printf("0\n");continue;}if(y<10){if(num[y])ans = 1;}if(leap){for(i = 0;i<=9;i++)if(num[i]){for(j = 0;j<=9;j++)if(num[j])charge[i*10+j] = 1;} if(charge[y] ) ans = min( ans ,3);}if(up){ans=min( ans,get_up(x,y)); for( i =0;i<100;i++) if(charge[i] && i>=10 ){ans = min( ans ,get_up(i,y)+3);}else if(i<=9 && num[i] ){ ans = min( ans ,get_up(i,y)+1);}}if(down){ans = min(ans,get_down(x,y)); for( i =0;i<100;i++)if(charge[i] && i>=10) { ans = min( ans ,get_down(i,y)+3);}else if(i<=9 &&num[i]){ ans = min( ans ,get_down(i,y)+1);}}if(ans == INF )ans = -1;printf("%d\n",ans);}return 0;}
0 0
- nyoj543遥控器
- 又说遥控器
- IR 遥控器
- 修遥控器
- 手机遥控器
- 捕魚機遥控器
- 打魚機遥控器
- 麻将遥控器
- 麻将遥控器
- 遥控器APP
- 2416 遥控器
- NYOJ:遥控器
- 红外遥控器
- 简单遥控器
- 魔杖遥控器
- Pocket PC 电视遥控器
- 神奇的遥控器
- 神奇的遥控器
- Fragment的切换方法
- 125.Rotate Image
- junit3与junit4的区别
- PreferenceActivity和PreferenceFragment及数据存储
- SecureCRT配色方案
- nyoj543遥控器
- 机械设计
- 如何做一名优秀的博士生-施一公
- sping-mybatis事物
- jQ
- 第十一周项目5-摩托车继承自行车和机动车
- 三个水杯问题
- android4.0 WIFI实现网络连接
- bzoj 3931: [CQOI2015]网络吞吐量(最短路+网络流)