poj 2182 :Lost Cows (线段树)
来源:互联网 发布:几米漫画推荐知乎 编辑:程序博客网 时间:2024/05/17 20:26
这道题说是线段树,其实题意理解之后,分析可知:比最后一头牛的编号小的数为x,则这头牛的编号为x+1,比倒数第二投牛的编号小的数为y,则去掉所知牛的编号后,剩下的编号按从小到大的顺序数到第y+1个即刻。即:每次可以先知道最后一头牛的编号。
未用到线段树的代码:
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int main() {int s[8010],i,ans,sort[8010],n,flag=1,rank[8010],index;scanf("%d",&n);index=n;for(i=1; i<=n-1; i++) scanf("%d",&s[i]);memset(sort,0,sizeof(sort));for(i=n-1; i>0; i--) {ans=0; for(int j=1; j<=n; j++) {if(ans==s[i]) {for(; j<=n; j++) {if(!sort[j]) {rank[index--] = j;sort[j] = 1;break;}}break;}if(!sort[j]) {ans++;}}}for(i=1; i<=n; i++) {if(!sort[i]) {rank[index] =i;break;}}for(i=1; i<=n; i++) printf("%d\n",rank[i]);return 0;}用到线段树的代码:
#include<iostream>#include<cstdio>using namespace std;struct node{int lc,rc,len;}s[8000000];void build(int left,int right,int index) {int mid=(left+right)/2;s[index].lc=left;s[index].rc=right;s[index].len= right-left+1;if(left == right) return ;build(left,mid,index*2);build(mid+1,right,index*2+1);}int query(int num,int index) {s[index].len--;if(s[index].lc == s[index].rc) return s[index].lc;if(s[index*2].len>=num) query(num,index*2);else query(num-s[index*2].len,index*2+1);}int main() {int n,a[8010],i,b[8010];scanf("%d",&n);build(1,n,1);a[1]=0;for(i=2; i<=n; i++){scanf("%d",&a[i]);} int ans=n;for(i=n; i; i--) {b[ans--] = query(a[i]+1,1);}for(i=1; i<=n; i++ ) printf("%d\n",b[i]);return 0;}
0 0
- POJ 2182 Lost Cows(线段树)
- POJ 2182 Lost Cows 线段树
- poj 2182 Lost Cows 线段树!!!!
- poj-2182-Lost Cows(线段树)
- poj 2182 Lost Cows (线段树)
- POJ 2182 Lost Cows.(线段树)
- poj 2182 :Lost Cows (线段树)
- POJ 2182 Lost Cows 线段树
- 【POJ】 2182 - Lost Cows 【线段树入门】
- POJ - 2182 - Lost Cows (线段树)
- poj 2182 Lost Cows 线段树
- 【POJ 2182 Lost Cows】+ 线段树
- POJ - 2182 Lost Cows【线段树】
- Poj 2182 Lost Cows 线段树
- POJ 2182 Lost Cows 线段树 or 树状数组
- poj 2182 Lost Cows 线段树
- POJ 2182 Lost Cows (树状数组 or 线段树)
- 线段树单点更新 poj 2182 Lost Cows
- JAVA 与 Python 变量赋值的不同
- 编写python代码
- 佟刚老师《Spring4视频教程》学习笔记(8)
- C数组,指针
- css学习记录3
- poj 2182 :Lost Cows (线段树)
- 我自己总结的语言要素
- C#委托与事件
- UML - 1 用于敏捷开发的总结
- Java的无锁编程和锁优化
- poj1191 棋盘分割 dp
- Install Hadoop1.2.1 in Ubuntu12.04
- WCF配置文件详解
- 出现TypeError: 'undefined' is not a function (evaluating '$')错误