UVa101(模拟+基础数据结构vector)
来源:互联网 发布:嵌入式软件开发技术 编辑:程序博客网 时间:2024/06/11 16:25
//思路:找到4中命令的基础操作,模拟
AC源码:
#include <cstdio>#include <string>#include <vector>#include <iostream>using namespace std;#define LOCconst 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 main(){#ifdef LOCALfreopen("data.in","r",stdin);freopen("data.out","w",stdout);#endifint a,b;cin>>n;string s1,s2;for(int i=0;i<n;++i)pile[i].push_back(i);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;}
阅读全文
0 0
- UVa101(模拟+基础数据结构vector)
- UVA101 The Blocks Problem (数据结构模拟)
- 数据结构uva101
- UVA101积木模拟问题,vector整体擦除和整体插入的使用
- UVA101 对于vector的学习
- UVA101 The Blocks Problem(模拟)
- uva101
- uva101
- uva101
- UVA101
- uva101(The Blocks Problem)-线性表+模拟
- UVa101-The Blocks Problem/STL-Vector的使用
- 例题5-2 UVa101 The Blocks Problem(STL:vector)
- 数据结构-vector
- 【STL】 poj1208&&UVa101 The Blocks Problem (不定长数组vector的应用)
- Vector基础
- vector 基础
- uva101心得
- Linux SD/MMC/SDIO驱动分析
- [Freemarker] 初识FreeMarker
- Linux设备模型(总线、设备、驱动程序和类)
- HDU5701(技巧暴力)
- Mybatis的动态sql----where,trim,set,foreach
- UVa101(模拟+基础数据结构vector)
- eclipse Alt+/提示老弹错误框
- java中完成九九乘法表
- Eclipse使用技巧
- MySQL 5.7主从复制从零开始设置及全面详解——实现多线程并行同步,解决主从复制延迟问题!
- 【bzoj3224】普通平衡树(splay板子)
- Linux下USB驱动框架分析 转
- 数据库事务隔离级别
- 不让bat文件运行命令结束后cmd窗口自动关闭