您的位置:首页 > 其它

POJ-2182 Lost Cows 简单的想法

2017-03-14 20:19 337 查看
题目大意:有n头牛,给出从第二头牛开始每头牛前面有多少头牛编号比自己小。

求牛的编号。

分析:每次最后一头牛的编号为当前可用编号中排在第a[i]+1的数。

看了网上的题解是线段树,可是我不会线段树,就用简单的想法过了这个题目,学会线段树再更新。

代码:

#include<iostream>

using namespace std;

int a[8010],book[8010];

int main(){
int n,i,j,k;
cin >> n;
for(i = 2;i <= n;i++)
cin >> a[i];
for(i = n;i > 1;i--){
k = 0;
for(j = 1;k < a[i]+1;j++ )
if(book[j] == 0)
k++;
a[i] = j-1;
book[j-1] = 1;
}
for(i = 1;i <= n;i++){
if(book[i] == 0)
a[1] = i;
}
for(i = 1;i <= n;i++)
cout << a[i] << endl;
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  acm