zoukankan      html  css  js  c++  java
  • [bzoj1635]最高的牛

    初始如果没有限制,很显然每一头牛高度都是h
    当只有一个限制,让h[a]到h[b]的高度都减1即可
    容易发现两个限制不会相交(否则必然矛盾),只会包含或相离,因此没有影响,直接差分/线段树即可
    (注意:1.不保证a<b;2.可能会有重复)

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 struct ji{
     4     int x,y;
     5 }a[10005];
     6 int n,m,h,b[10005];
     7 bool cmp(ji x,ji y){
     8     return (x.x<y.x)||(x.x==y.x)&&(x.y<y.y);
     9 }
    10 int main(){
    11     scanf("%d%*d%d%d",&n,&h,&m);
    12     for(int i=1;i<=m;i++){
    13         scanf("%d%d",&a[i].x,&a[i].y);
    14         if (a[i].x>a[i].y)swap(a[i].x,a[i].y);
    15     }
    16     sort(a+1,a+m+1,cmp);
    17     for(int i=1;i<=m;i++)
    18         if ((a[i].x!=a[i-1].x)||(a[i].y!=a[i-1].y)){
    19             b[a[i].x+1]--;
    20             b[a[i].y]++;
    21         }
    22     for(int i=1;i<=n;i++)printf("%d
    ",h+=b[i]);
    23 }
    View Code
  • 相关阅读:
    C++ 虚成员函数和动态联编
    C++ 多态公有继承
    C++ 继承特性
    C++ 公有派生
    C++ 基类与派生类
    C++ 类继承
    C++ 伪私有方法
    C++ new失败
    mysql用户授权
    linux时间设置
  • 原文地址:https://www.cnblogs.com/PYWBKTDA/p/11849511.html
Copyright © 2011-2022 走看看