UVA 101
来源:互联网 发布:notepad linux 编辑:程序博客网 时间:2024/05/17 08:29
刘汝佳上的题目。
#include <cstdio>#include <vector>#include <iostream>using namespace std;vector<int> pile[25];void find(const int n,int aim, int& b, int& g) {for(b=0;b<n;b++)for(g=0;g<pile[b].size();g++) if(pile[b][g] == aim) return;}void moveonto(int ab,int ag,int bb,int bg){//归位a for(int i=ag+1;i<pile[ab].size();i++){int num=pile[ab][i];pile[num].push_back(num);}pile[ab].resize(ag+1);//归位b for(int i=bg+1;i<pile[bb].size();i++){int num=pile[bb][i];pile[num].push_back(num);}pile[bb].resize(bg+1);//放置apile[bb].push_back( pile[ab][ag] );//删去apile[ab].resize(ag);}void moveover(int ab,int ag,int bb,int bg){//归位a for(int i=ag+1;i<pile[ab].size();i++){int num=pile[ab][i];pile[num].push_back(num);}pile[ab].resize(ag+1);//放置a pile[bb].push_back( pile[ab][ag] );//删去apile[ab].resize(ag);}void pileonto(int ab,int ag,int bb,int bg){//归位b for(int i=bg+1;i<pile[bb].size();i++){int num=pile[bb][i];pile[num].push_back(num);}pile[bb].resize(bg+1);//放置afor(int i=ag;i<pile[ab].size();i++){pile[bb].push_back( pile[ab][i] );}pile[ab].resize(ag);}void pileover(int ab,int ag,int bb,int bg){//放置afor(int i=ag;i<pile[ab].size();i++){pile[bb].push_back( pile[ab][i] );}pile[ab].resize(ag);}int main(){int a,b,n;scanf("%d",&n);string s1, s2;for(int i = 0; i < n; i++) pile[i].push_back(i);while(cin>>s1 && s1!="quit") {cin>>a>>s2>>b;int ab, ag, bb, bg;find(n,a,ab,ag);find(n,b,bb,bg);if(ab==bb) continue;if(s1=="move" && s2=="onto") moveonto(ab,ag,bb,bg);if(s1=="move" && s2=="over") moveover(ab,ag,bb,bg);if(s1=="pile" && s2=="onto") pileonto(ab,ag,bb,bg);if(s1=="pile" && s2=="over") pileover(ab,ag,bb,bg);}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");}}
刘汝佳书上的做法明显更加精简……不过刚学STL……老老实实的把四种行为做出来比较靠谱……
0 0
- uva 101
- UVA 101
- UVA 101
- uva 101
- uva 101
- uva 101
- uva 101
- uva-101
- uva 101
- UVa 101
- UVa 101
- uva 101
- uva 101
- uva 101
- UVA 101
- uva 101
- uva 101
- UVA - 101
- 思科数据中心资料 汇总 下载
- Zurmo(十三)之信息组合(Portlet)
- 蛙人高频交易拆单策略—带手续费拆单策略及原理说明
- vue学习(三) vue组件
- 没拿到一毛钱股份的老公和CEO身份曝光,发文妻子的选妃照也被挖出来了……
- UVA 101
- 两个python中安装matplotlib
- Android中Shape的属性说明及其使用
- vertical-align的使用方法
- c++中的头文件(.h)和实现文件(.cpp)区别
- javascript中的继承详解
- 如何进行软件设计——不断迭代
- CentOS6.5安装nginx
- 搞了个音乐播放器