#include<stdio.h>
#include<vector>
#include<string.h>
#define N 40
using namespace std;
vector<int>pile[N];
int n;
void find_block(int a, int &p, int &h)
{
for(p = 0; p <= n - 1; p ++)
{
for(h = 0; h < pile[p].size(); h ++)
{
if(pile[p][h] == a)
{
return;
}
}
}
return;
}
void clear_above(int p, int h)
{
int b, i;
for(i = h + 1; i < pile[p].size(); i ++)
{
b = pile[p][i];
pile[b].push_back(b);
}
pile[p].resize(h + 1);
return;
}
void pile_onto(int p, int h, int p2)
{
int i;
for(i = h; i < pile[p].size(); i ++)
{
pile[p2].push_back(pile[p][i]);
}
pile[p].resize(h);
return;
}
void print()
{
int i, j;
for(i = 0; i <= n - 1; i ++)
{
printf("%d: ", i);
for(j = 0; j < pile[i].size(); j ++)
{
printf("%d ", pile[i][j]);
}
printf("\n
例题5-2 木块问题 The Blocks Problem Uva 101
最新推荐文章于 2019-06-10 08:44:27 发布
该博客主要介绍了如何解决UVA 101编程挑战中的木块问题。通过使用C++编程,实现了移动和堆叠木块的功能,包括find_block、clear_above和pile_onto等关键函数,以及问题的完整解决方案。
摘要由CSDN通过智能技术生成