UVA101
来源:互联网 发布:知乎三里屯不知道诊所 编辑:程序博客网 时间:2024/05/19 01:07
#pragma warning(disable:4996)#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<vector>#include<algorithm>#include<iostream>#include<time.h>#include<map> #include<set>#include<sstream>#include<cassert>using namespace std;const int INF = 0x3f3f3f3f;const int maxn = 30;int n;vector<int> pile[maxn];void find_block(int a, int &p, int &h){ for (p = 0; p < n; p++) for (h = 0; h < pile[p].size(); h++) if (pile[p][h] == a) return;}void clear_above(int p, int h){ for (int i = h + 1; i < pile[p].size(); i++) { int b = pile[p][i]; pile[b].push_back(b); } pile[p].resize(h + 1);}void pile_onto(int p, int h, int p2){ for (int i = h; i < pile[p].size(); i++) pile[p2].push_back(pile[p][i]); pile[p].resize(h);}void print(){ for (int i = 0; i < n; i++) { printf("%d:", i); for (int j = 0; j < pile[i].size(); j++) printf(" %d", pile[i][j]); printf("\n"); }}int vs_main(){ int a, b; cin >> n; string s1, s2; for (int i = 0; i < n; i++) pile[i].push_back(i); cin.sync_with_stdio(false); while (cin >> s1 >> a >> s2 >> b) { int pa, pb, ha, hb; find_block(a, pa, ha); find_block(b, pb, hb); if (pa == pb) continue; if (s2 == "onto")clear_above(pb, hb); if (s1 == "move")clear_above(pa, ha); pile_onto(pa, ha, pb); } print(); return 0;}int main(){ int start = clock(); freopen("in.txt", "r", stdin); //freopen("E:/out.txt","w",stdout); printf("#===================#\n"); vs_main(); printf("#===================#\n"); printf("Time:%.3lf\n", double(clock() - start) / CLOCKS_PER_SEC); //system("pause"); return 0;}
#pragma warning(disable:4996)#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<vector>#include<algorithm>#include<iostream>#include<time.h>#include<map> #include<set>#include<sstream>#include<cassert>using namespace std;const int INF = 0x3f3f3f3f;const int maxn = 30;vector<int>pile[maxn];int n;void find(int a, int &p, int &h){ for (int i = 0; i < n; i++) { for (int j = 0; j < pile[i].size(); j++) { if (pile[i][j] == a) { p = i; h = j; return; } } } return;}void clear_above(int p, int &h){ for (int i = h + 1; i <pile[p].size(); i++) pile[pile[p][i]].push_back(pile[p][i]); pile[p].resize(h + 1);}void pile_to(int pa, int ha, int pb){ for (int i = ha; i < pile[pa].size(); i++) pile[pb].push_back(pile[pa][i]); pile[pa].resize(ha); }void print(){ for (int i = 0; i <n; i++) { printf("%d: ", i); for (int j = 0; j < pile[i].size(); j++) cout << pile[i][j] << " "; cout << endl; }}int vs_main(){ string s1, s2; int a, b; cin >> n; cin.sync_with_stdio(false); for (int i = 0; i < n; i++) { pile[i].push_back(i); } while (cin >> s1 >> a >> s2 >> b) { int pa, pb, ha, hb; find(a, pa, ha); find(b, pb, hb); if (pa == pb) continue; if (s1 == "move")clear_above(pa, ha); if (s2 == "onto")clear_above(pb, hb); pile_to(pa,ha,pb); } print(); return 0;}int main(){ int start = clock(); freopen("in.txt", "r", stdin); //freopen("E:/out.txt","w",stdout); printf("#===================#\n"); vs_main(); printf("#===================#\n"); printf("Time:%.3lf\n", double(clock() - start) / CLOCKS_PER_SEC); //system("pause"); return 0;}
0 0
- uva101
- uva101
- uva101
- UVA101
- 数据结构uva101
- uva101心得
- uva101 The Blocks Problem
- UVa101 - The Blocks Problem
- UVA101- The Blocks Problem
- uva101 The Blocks Problem
- uva101 - The Blocks Problem
- UVA101 The Blocks Problem
- uva101 the blocks pronlem
- UVA101-The Blocks Problem
- UVA101-The Blocks Problem
- poj1208_The Blocks Problem || uva101
- uva101 The Blocks Problem
- Uva101 木块问题
- 前端优化-渐进式图片的制作
- 欢迎使用CSDN-markdown编辑器
- Fragment一些方法介绍
- 在Visual C++ 中使用内联汇编
- 为什么需要锁(并发控制)?
- UVA101
- xpath 解析一
- MySQL应用架构优化-实时数据处理
- json字符串与json对象转换
- 页面跳页面传值问题
- HashMap源码透一透
- MySql 外键约束 之CASCADE、SET NULL、RESTRICT、空等类型分析和作用解读
- 蒙哥马利算法详解
- 焦点科技(上市公司)HR面总结