cf1523C. Compression and Expansion
Posted Jozky86
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cf1523C. Compression and Expansion相关的知识,希望对你有一定的参考价值。
cf1523C. Compression and Expansion
题意:
让你模拟出一个书的目录,对于每一行给你一个数字,表示这个目录的最后一个数,
题解:
我们用vector存当前的目录情况,读到下一行,在尽量少删上一行的基础上,加入当前数字。而遇到1就以为这我们要单开一页(相当于目录层数增加)。然后直接模拟过程即可
代码:
#include <bits/stdc++.h>
#define rep(i, n) for (int i= 1; i <= (n); ++i)
using namespace std;
typedef long long ll;
int main()
{
int t;
cin >> t;
while (t--) {
vector<int> v;
int n;
scanf("%d", &n);
rep(i, n)
{
int x;
scanf("%d", &x);
if (x > 1) {
while (!v.empty() && v.back() + 1 != x)
v.pop_back();
v.pop_back();
}
v.push_back(x);
rep(i, v.size())
{
if (i > 1)
putchar('.');
printf("%d", v[i - 1]);
}
puts("");
}
}
return 0;
}
以上是关于cf1523C. Compression and Expansion的主要内容,如果未能解决你的问题,请参考以下文章
DeltixRound,Div. 1+2-C.Compression and Expansion-构造小模拟