1635: [Usaco2007 Jan]Tallest Cow 最高的牛

Time Limit: 5 Sec  Memory Limit: 64 MB
Submit: 383  Solved: 211
[Submit][Status]

Description

FJ's N (1 <= N <= 10,000) cows conveniently indexed 1..N are standing in a line. Each cow has a positive integer height (which is a bit of secret). You are told only the height H (1 <= H <= 1,000,000) of the tallest cow along with the index I of that cow. FJ has made a list of R (0 <= R <= 10,000) lines of the form "cow 17 sees cow 34". This means that cow 34 is at least as tall as cow 17, and that every cow between 17 and 34 has a height that is strictly smaller than that of cow 17. For each cow from 1..N, determine its maximum possible height, such that all of the information given is still correct. It is guaranteed that it is possible to satisfy all the constraints.

有n(1 <= n <= 10000)头牛从1到n线性排列,每头牛的高度为h[i](1 <= i <= n),现在告诉你这里面的牛的最大高度为maxH,而且有r组关系,每组关系输入两个数字,假设为a和b,表示第a头牛能看到第b头牛,能看到的条件是a, b之间的其它牛的高度都严格小于min(h[a], h[b]),而h[b] >= h[a]

Input

* Line 1: Four space-separated integers: N, I, H and R

* Lines 2..R+1: Two distinct space-separated integers A and B (1 <= A, B <= N), indicating that cow A can see cow B.

Output

* Lines 1..N: Line i contains the maximum possible height of cow i.

Sample Input

9 3 5 5
1 3
5 3
4 3
3 7
9 8

INPUT DETAILS:

There are 9 cows, and the 3rd is the tallest with height 5.

Sample Output

5
4
5
3
4
4
5
5
5

HINT

Source

Silver

题解:好吧我承认我真心捉鸡(phile:又逗比了? HansBug:才没哪,讨厌啦)——我以前一直在用一种数组,这个数组的前缀和实际上表示的才是需要的值,这个东西在写树状数组时频频用到,直到今天我才知道这个是差分序列(QAQ)。。。然后这个没啥啦。。。直接代码——

 1 var
 2    i,j,k,l,m,n,h,r:longint;
 3    a:array[0..20000,1..2] of longint;
 4    b:array[0..20000] of longint;
 5 procedure swap(var x,y:longint);
 6           var z:longint;
 7           begin
 8                z:=x;x:=y;y:=z;
 9           end;
10
11 procedure sort(l,r,z:longint);
12           var i,j,x,y:longint;
13           begin
14                i:=l;j:=r;x:=a[(l+r) div 2,z];
15                repeat
16                      while a[i,z]<x do inc(i);
17                      while a[j,z]>x do dec(j);
18                      if i<=j then
19                         begin
20                              swap(a[i,1],a[j,1]);
21                              swap(a[i,2],a[j,2]);
22                              inc(i);dec(j);
23                         end;
24                until i>j;
25                if l<j then sort(l,j,z);
26                if i<r then sort(i,r,z);
27           end;
28 begin
29      readln(n,i,h,r);
30      for i:=1 to r do
31          begin
32               readln(a[i,1],a[i,2]);
33               if a[i,1]>a[i,2] then swap(a[i,1],a[i,2]);
34          end;
35      sort(1,r,1);
36      j:=1;
37      for i:=1 to r+1 do
38          begin
39               if a[i,1]<>a[j,1] then
40                  begin
41                       sort(j,i-1,2);
42                       j:=i;
43                  end;
44          end;
45      for i:=1 to r do
46          begin
47               if (a[i,1]=a[i-1,1]) and (a[i,2]=a[i-1,2]) then continue;
48               inc(b[a[i,1]+1]);dec(b[a[i,2]]);
49          end;
50      l:=0;
51      for i:=1 to n do
52          begin
53               l:=l+b[i];
54               writeln(-l+h);
55          end;
56 end.         

转载于:https://www.cnblogs.com/HansBug/p/4170500.html

1635: [Usaco2007 Jan]Tallest Cow 最高的牛相关推荐

  1. bzoj 1635: [Usaco2007 Jan]Tallest Cow 最高的牛

    1635: [Usaco2007 Jan]Tallest Cow 最高的牛 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 647  Solved: 39 ...

  2. [BZOJ1635][Usaco2007 Jan]Tallest Cow 最高的牛

    1635: [Usaco2007 Jan]Tallest Cow 最高的牛 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 656  Solved: 40 ...

  3. 1633: [Usaco2007 Feb]The Cow Lexicon 牛的词典(DP)

    1633: [Usaco2007 Feb]The Cow Lexicon 牛的词典 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 633  Solved ...

  4. [BZOJ] 1634: [Usaco2007 Jan]Protecting the Flowers 护花

    1634: [Usaco2007 Jan]Protecting the Flowers 护花 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 827  S ...

  5. 【差分】Tallest Cow(poj 3263/luogu 2879)

    Tallest Cow poj 3263 luogu 2879 题目大意: 现在有n头牛,两头牛如果要相互看到,那他们之间的牛必须比他们两低,现在给出n,最高牛的位置和高度,和m对关系,要你求每头牛最 ...

  6. 洛谷P2879 [USACO07JAN]区间统计Tallest Cow

    洛谷P2879 [USACO07JAN]区间统计Tallest Cow 题目描述 给出牛的可能最高身高,然后输入m组数据 a b,代表a,b可以相望,最后求所有牛的可能最高身高输出 输入输出格式 输入 ...

  7. POJ3263 Tallest Cow【差分数组】

    Tallest Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 5486 Accepted: 2524 Descripti ...

  8. bzoj 1634: [Usaco2007 Jan]Protecting the Flowers 护花(贪心排序)

    1634: [Usaco2007 Jan]Protecting the Flowers 护花 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 824  S ...

  9. bzoj 1636 bzoj 1699: [Usaco2007 Jan]Balanced Lineup排队(RMQ)

    1699: [Usaco2007 Jan]Balanced Lineup排队 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1514  Solved:  ...

最新文章

  1. 2021年大数据Flink(十六):流批一体API Connectors ​​​​​​​​​​​​​​Redis
  2. 招募100名科研人,念出书中内容即可,300元/小时,无经验要求!
  3. centos6.8下安装部署LNMP(备注:nginx1.8.0+php5.6.10+mysql5.6.12)
  4. python源码学习_【Python学习】Python源码阅读(一)
  5. anaconda下tensorflow安装遇到的问题记录及解决办法
  6. 不同page页面选择不同页面模板的方法
  7. new Class() 与 Class.newInstance()
  8. python爬虫之js链接跳转抓取_Python爬虫获取页面所有URL链接过程详解
  9. apache+php
  10. Python错误重试逼疯多少人?解决办法来了
  11. Log4j2 高危漏洞分析
  12. 单片机c51交通灯c语言程序,c51单片机交通灯程序
  13. 软件观念革命:交互设计精髓_最全交互设计书单
  14. 金融风控系统设计 - 外汇管理风控系统
  15. 《 浅 谈 C T F 》
  16. mysql外码参照_mysql外键约束的参照我是来充字数的
  17. 计算机图形学入门(十七)-光线追踪(蒙特卡洛积分与路径追踪)
  18. 力扣刷题 DAY_84 贪心
  19. mutation和action 区别
  20. Windows关机或重启显示有程序正在阻止、程序失去响应

热门文章

  1. 8备份sqlserver_关于SQL server 巡检的要点你都知道吗?
  2. 四剑客查找字符_Shell四剑客Grep
  3. 两个for做数据插入_冒泡排序、选择排序、插入排序
  4. vim python 代码提示_linux下vim python代码自动补全
  5. python123io如何编辑_计算机二级python学习教程(1) 教大家如何学习python
  6. java计算加速减速_java – 使用JOCL / OPENCL计算强度的加速总和
  7. iir matlab 系数,手把手教你用matlab生成STM32官方IIR滤波器的系数
  8. 利用JTDS连接数据库并操作示例
  9. Java案例:输出指定范围内纯素数个数
  10. 大数据学习笔记11:搭建完全分布式Hadoop