2010 ACM/ICPC Online-Contest-SCU[四川赛区网络预选赛]
2010-09-25 13:30
357 查看
Problem A.A Simple Problem
比赛时唯一做出来的一道题。
描述:
Time limit: 1 second
Memory limit: 256 megabytes
There's one row of buttons lying on onmylove's laptop keyboard, which are used to input the numbers,
just as shown in the picture:
代码
比赛时唯一做出来的一道题。
描述:
Time limit: 1 second
Memory limit: 256 megabytes
There's one row of buttons lying on onmylove's laptop keyboard, which are used to input the numbers,
just as shown in the picture:
代码
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> #include <math.h> #include <set> #include <map> #include <queue> #include <vector> #include <algorithm> using namespace std; #define NL1 201 #define NL2 21 #define EP 1e-10 #define MAX(x,y) ((x)>(y)?(x):(y)) #define MIN(x,y) ((x)<(y)?(x):(y)) #define LL long long int d[NL2][NL2], d1[NL2][NL2]; int dir[9][2] = {{0, -1}, {0, 1}, {-1, 0}, {-1, 1}, {-1, -1}, {1, 0}, {1, -1}, {1, 1}, {0, 0}}; char ch[NL1]; int main() { int i, j, k; // freopen("in.txt", "r", stdin); while (scanf("%s", ch+1) != EOF) { int L = strlen(ch+1); memset(d, -1, sizeof(d)); d[5][6] = 0; int t=0; bool suc = false; while (1) { t++; memset(d1, -1, sizeof(d1)); for (i=1; i<=9; i++) { for (j=i+1; j<=10; j++) { if (d[i][j]>=0) { for (k=0; k<9; k++) { int i0 = i+dir[k][0]; int j0 = j+dir[k][1]; if (i0<j0 && i0>=1 && i0<=9 && j0>=2 && j0<=10) { if (i == i0 && ch[d[i][j]+1] == i+'0') { if (d1[i0][j0] == -1) { d1[i0][j0] = d[i][j]+1; }else { d1[i0][j0] = MAX(d1[i0][j0], d[i][j]+1); } } if (j==j0 && ch[d[i][j]+1] == ((j==10)?0:j)+'0') { if (d1[i0][j0] == -1) { d1[i0][j0] = d[i][j]+1; }else { d1[i0][j0] = MAX(d1[i0][j0], d[i][j]+1); } } if (i!=i0 && j!=j0) { if (d1[i0][j0] == -1) { d1[i0][j0] = d[i][j]; }else { d1[i0][j0] = MAX(d1[i0][j0], d[i][j]); } } if (d1[i0][j0] == L) { suc = true; break; } } } if (suc) break; } if (suc) break; } if (suc) break; } for (i=0; i<=9; i++) { for (j=i+1; j<=10; j++) { d[i][j] = d1[i][j]; } } if (suc) break; } printf("%d\n", t); } return 0; }
相关文章推荐
- The ACM/ICPC Asia Harbin Online First Round Contest 2010 Warmup-1
- The ACM/ICPC Asia Harbin Online First Round Contest 2010
- The ACM/ICPC Asia Harbin Online First Round Contest 2010 Warmup-2
- Hdu 4035 Maze (dp求期望) - 2011 ACM/ICPC 成都赛区网络预选赛 1005
- 1006 ACM again- Ancient China Mathematics again //The ACM/ICPC Asia Harbin Online First Round Contest 2010 Warmup-2
- 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B. Coin
- 【分块】计蒜客17120 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 G. Xor
- The 37th ACM/ICPC Asia Regional JinHua Site Online Contest - D(爆搜)
- 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 C. Sum
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 - J Our Journey of Dalian Ends(最小费用最大流)
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 A banana
- hdu 5045 Contest dp+状态压缩 2014 ACM/ICPC Asia Regional Shanghai Online
- 计蒜客 16950 Banana(2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 A)
- 2017 ACM-ICPC 亚洲区(北京赛区)网络赛 - A I
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 F. Overlapping Rectangles(扫描线)
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 F. Overlapping Rectangles
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 A Weather Patterns(阅读理解)
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 Overlapping Rectangles
- A Cache Simulator 组成原理 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 (B,F,L,M)