http://poj.org/problem?id=1208

晚点仔细看

https://blog.csdn.net/yxz8102/article/details/53098575

 #include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include<stdlib.h>
#include<algorithm>
#include<queue>
#include<vector>
#include<string>
#define mem(a) memset(a,0,sizeof(a))
using namespace std;
const long long N=1e9+;
#define LL long long
vector<int> pile[];
int n; //查找木块a所在的pile和height
void find_block(int a,int &p,int &h) //引用,相当于直接用实参
{
for(p=;p<n;p++)
{
for(h=;h<pile[p].size();h++)
{
if(pile[p][h]==a) return;
//vector就像一个二维数组,只是第一维大小固定(30),二维大小不固定。
}
}
}
//把p堆高度为h的木块上方所有的木块移回原位置
void clear_above(int p,int h)
{
for(int i=h+;i<pile[p].size();i++)
{
int t=pile[p][i];
pile[t].push_back(t); ////把标号为t的木块放回原位,即t堆
}
pile[p].resize(h+); //重新定义p堆的长度
}
//把p堆高度为h及其上方的木块整体移到p2的得尾部
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=;i<n;i++)
{
printf("%d:",i);
for(int j=;j<pile[i].size();j++)
{
printf(" %d",pile[i][j]);
}
printf("\n");
}
}
int main()
{
int a,b;
scanf("%d",&n);
string s1,s2;
for(int i=;i<n;i++)
{
pile[i].push_back(i);
}
while(cin>>s1)
{
if (s1=="quit") break;
cin>>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 ;
}

最新文章

  1. EntityFramework 7 Left Join Where is error(Test record)
  2. Tools
  3. C++ 数字转换为string类型
  4. win7 hosts文件更改后无效,不生效问题
  5. hive 使用where条件报错 java.lang.NoSuchMethodError: org.apache.hadoop.hive.ql.ppd.ExprWalkerInfo.getConvertedNode
  6. HashMap和HashSet的区别
  7. java 多线程同步
  8. js 截取某个字符前面或者后面的字符串
  9. [译] ASP.NET 生命周期 – ASP.NET 请求生命周期(三)
  10. iOS利用代理实现界面跳转
  11. Windows安装Subversion
  12. Varnish CentOS 6.4 x64
  13. ASP.NET中登录时记住用户名和密码(附源码下载)--ASP.NET
  14. 网页底部广告悬浮弹窗(css)
  15. REST(Representational state transfer)的四个级别以及HATEOAS介绍
  16. 聚类--K均值算法:自主实现与sklearn.cluster.KMeans调用
  17. OSPF单区域配置
  18. 【javascript】详解javaScript的深拷贝
  19. python:a += b 和 a = a + b
  20. 教你轻松计算AOE网关键路径

热门文章

  1. Linux NTP时间同步服务
  2. 洛谷P3205 [HNOI2011]合唱队 DP
  3. 【洛谷P3389 【模板】高斯消元法】
  4. laravel 图片验证码
  5. mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于)、查找条件
  6. JS学习笔记Day15
  7. Quartz.net 3.x使用总结(一)——入门介绍
  8. PLSQL Developer 远程连接Oracle数据库
  9. [Tex学习笔记]小于等于一个常数乘以...
  10. luogu 4345 Lucas的变形应用