zoukankan      html  css  js  c++  java
  • POJ 3263 Tallest Cow

    POJ 3263 Tallest Cow

    题意

    有n头牛,最高的牛是第i头并且它的高度为h,下面有r对牛(a,b),他们能够两两看见,能两两看见的前提是他们之间的牛都比它俩矮。求每头牛最高可能是多少?

    题解

    差分,先初始化数组ans为0,区间左右做标记,ans[a+1]--,ans[b]++,最后前缀和+h。(注意查重,a和b可能出现多次,但是只需要一次处理

    #include <cstdio>
    #include <map>
    using std::map;
    
    map<int,int>mp[10010];
    int ans[10010];
    int main() {
        int n, i, h, t, a, b;
        scanf("%d %d %d %d", &n, &i, &h, &t);
        while(t--) {
            scanf("%d %d", &a, &b);
            if(a > b) {
                int tmp = a;
                a = b;
                b = tmp;
            }
            if(mp[a][b] == 0) {
                mp[a][b] = 1;
                ans[a+1]--;
                ans[b]++;
            }
        }
        for(int i = 1; i <= n; i++) {
            ans[i] += ans[i-1];
            printf("%d
    ", ans[i] + h);
        }
        return 0;
    }
    
    
  • 相关阅读:
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    ajax 几种提交方式
  • 原文地址:https://www.cnblogs.com/fanshhh/p/11415354.html
Copyright © 2011-2022 走看看