UVa101-The Blocks Problem/STL-Vector的使用
来源:互联网 发布:淘宝 虾米 vip兑换码 编辑:程序博客网 时间:2024/06/08 13:13
取出指令共同点,减少重复代码
利用STL中不定长数组vector
vector<int> a;//<double>也可以,这里a是构建了一个不定长一维数组,a[maxn]也可以,构建一个二维数组
a.size() //a的长度
a.push_back(b);//向a的尾部添加元素b,应该是不能加一串只加单个元素
a.resize(h);//将a的第h-1后的元素删掉,in other words, 保留前h个元素(notice:数组从0开始,第h个元素其数组中下标是h-1)
a.pop_back();//删除最后一个元素
#include <iostream>#include <string>#include <vector>#include <cstdio>using namespace std;const int maxn=30;int n;vector<int> pile[maxn];void found(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 l=h+1;l<pile[p].size();l++) pile[pile[p][l]].push_back(pile[p][l]); pile[p].resize(h+1);}void move_above(int pa,int h,int pb){ for(int l=h;l<pile[pa].size();l++) pile[pb].push_back(pile[pa][l]); pile[pa].resize(h);}void printf(){ for(int k=0;k<n;k++){ printf("%d:",k); for(int l=0;l<pile[k].size();l++) printf(" %d",pile[k][l]);//printf("%s",pile[k])是不行的哦 cout<<endl; }}int main(){ cin>>n; int a,b; string s1,s2; for(int i=0;i<n;i++) pile[i].push_back(i); while(cin>>s1){ if(s1=="quit") break; cin>>a>>s2>>b; int pa,pb,ha,hb; found(a,pa,ha); found(b,pb,hb); if(pa==pb) continue; if(s1=="move") clear_above(pa,ha); if(s2=="onto") clear_above(pb,hb); move_above(pa,ha,pb); } printf(); return 0;}
0 0
- UVa101-The Blocks Problem/STL-Vector的使用
- 例题5-2 UVa101 The Blocks Problem(STL:vector)
- 【STL】 poj1208&&UVa101 The Blocks Problem (不定长数组vector的应用)
- 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 Problem
- UVA101-The Blocks Problem
- uva101 The Blocks Problem
- UVa101 - The Blocks Problem
- UVA101 The Blocks Problem(模拟)
- uva101(The Blocks Problem)-线性表+模拟
- uva101木块问题The Blocks Problem
- 紫薯e5-2 uva101 the blocks problem
- Uva101—— The Blocks Problem
- centos6.5版本改系统语言成中文简体
- Struts2常用标签总结
- WinDbg学习笔记
- 开启我的博客生涯
- 多线程下载和断点续传
- UVa101-The Blocks Problem/STL-Vector的使用
- MongoDB学习系列(二)mongo聚合查询实例
- UVA12100-打印队列
- 驱动模块的编译
- Struts2 标签库详解
- 南大软院大神养成计划--第二十天
- linux之cut命令详解
- 棋盘问题
- 图的m着色问题