poj2182-Lost Cow
题目链接 http://vjudge.net/problem/POJ-2182
解题思路
用最朴素的想法,从尾到头扫描,再开两个循环找空位,时间复杂度O(n3),容易超时。
正确的做法是建立线段树。维护每个区间的长度。长度足够排下就往左子树走,否则往右子树。
直到叶子节点,此时叶子节点的区间(点)为此奶牛的编号。
代码
#include<stdio.h> #define MAX_SIZE 10010 struct Node {int l, r;int len; }tree[4*MAX_SIZE]; int small[MAX_SIZE], q[MAX_SIZE]; void BuildTree(int root, int left, int right) {if(left == right) {tree[root].l = tree[root].r = right;tree[root].len = 1;return ;}tree[root].l = left; tree[root].r = right;tree[root].len = right - left + 1;int mid = (left + right) / 2;BuildTree(root*2, left, mid);BuildTree(root*2+1, mid+1, right); } int query(int root, int s) {tree[root].len--;if(tree[root].l == tree[root].r) return tree[root].l;if(tree[root*2].len >= s) return query(root*2, s);else return query(root*2+1, s - tree[root*2].len); } int main() {int n;scanf("%d", &n);for(int i=2; i<=n; i++) scanf("%d", &small[i]);small[1] = 0;BuildTree(1, 1, n);for(int i=n; i>=1; i--) q[i] = query(1, small[i]+1);for(int i=1; i<=n; i++) printf("%d\n", q[i]);return 0; }
转载于:https://www.cnblogs.com/ZengWangli/p/5890941.html
poj2182-Lost Cow相关推荐
- POJ2182 HDU2711 Lost Cows【树状数组+线段树】
Lost Cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 17113 Accepted: 10664 Descripti ...
- POJ 3268 D-Silver Cow Party
http://poj.org/problem?id=3268 Description One cow from each of N farms (1 ≤ N ≤ 1000) conveniently ...
- usaco Cow Tours 牛的旅行
Cow Tours 牛的旅行 农民 John 的农场里有很多牧区.有的路径连接一些特定的牧区.一片所有连通的牧区称为一个牧场. 但是就目前而言,你能看到至少有两个牧区不连通.这样,农民 John 就有 ...
- 贪心 POJ - 3617 Best Cow Line
Best Cow Line POJ - 3617 FJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual"Farmer of ...
- 【POJ】3268 Silver Cow Party (将有向图的边反转)
问题链接:http://poj.org/problem?id=3268 [问题描述] One cow from each of N farms (1 ≤ N ≤ 1000) conveniently ...
- 解题报告:CF1307D Cow and Fields(最短路、最优解不等式化简)
CF1307D Cow and Fields 整张无向图的边权为1. 首先求出 1,n1,n1,n 两个点的单源最短路径.这 kkk 个特殊点中,我们令第 aaa 个特殊点到 111 的距离为 xax ...
- SP11469 SUBSET - Balanced Cow Subsets(折半搜索+状态压缩)难度⭐⭐⭐⭐★
题目链接 SP11469 SUBSET - Balanced Cow Subsets 题目翻译 给出N(1≤N≤20)N(1≤N≤20)N(1≤N≤20)个数M(i)(1<=M(i)<=1 ...
- P2888 [USACO07NOV]牛栏Cow Hurdles(Floyd算法)
P2888 [USACO07NOV]牛栏Cow Hurdles 行 1-T: 行 i 为一个整数,表示任务i路径上最高的栏的高度的最小值.如果无法到达,输出 -1. 5 6 3 1 2 12 3 2 ...
- P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold(加强版)(贪心+hash哈希)
P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold(加强版)(贪心+hash哈希) 洛谷上这道水题丧心病狂地把数据范围加到了500000 普通的做法肯定A不了了, ...
- H - Cow Contest POJ - 3660(Floyd 传递闭包)
H - Cow Contest POJ - 3660 题意: 有 n 头牛比赛,边 1 -> 2 代表 1 能赢 2 ,给你 m 条边,问能确定出多少头牛的名次? 思路: 如果 1->2 ...
最新文章
- java总复习_java期末复习
- 【实用】C#测试web服务是否可用
- php置顶文章,php实现文章置顶功能的方法
- 延迟任务调度系统—技术选型与设计(上篇)
- 华为云AI斩获2019数博会“黑科技”等四大奖项
- setuptools Command Reference
- python log
- 数据库——关系数据理论学习笔记
- pytorch forward
- Java实用教程(第5版)参考答案
- 网络工程制图论文计算机,工程制图论文.doc
- CentOS 查看操作系统版本
- 蔡为东:行之有效的IT技术团队管理实践
- 获取代理IP的三种途径
- tp5 mysql悲观锁_thinkphp悲观锁机制处理高并发
- Latex 中的空格汇总
- 零极限:关于蓝色太阳水原理
- ModelWhale 云端运行 WRF 中尺度数值气象模式,随时随地即开即用的一体化工作流
- python中迭代_python中的迭代什么意思
- 计算机管理员权限打不开怎么办,administrator管理员权限怎么打开?