zoukankan      html  css  js  c++  java
  • [USACO07JAN] Tallest Cow S

    题目

    原题地址

    解说

    题目挺长,说白了就是差分模板题。
    因为两个奶牛互相望得见说明之间的奶牛比它们都矮,那么我们每有一个限制条件就说明之间的奶牛的最大高度(-1),最后每个奶牛的高度就是最大高度减去累计减少的高度。考虑时间效率我们可以用差分数组实现。

    代码

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<map>
    using namespace std;
    int n,p,h,r;
    const int maxn=10000+3;
    int b[maxn];
    map<pair<int,int>,bool> cun;//记得判断重复出现的
    int read(){
       int s=0,w=1;
       char ch=getchar();
       while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
       while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
       return s*w;
    } 
    int main(){
    	n=read(); p=read(); h=read(); r=read();
    	for(int i=1;i<=r;i++){
    		int l=read(),r=read();
    		if(l>r) swap(l,r);
    		if(cun[make_pair(l,r)]) continue;
    		cun[make_pair(l,r)]=1;
    		b[l+1]-=1; b[r]+=1;//注意“两个奶牛之间”不包括这两只奶牛
    	}
    	int add=0;
    	for(int i=1;i<=n;i++){
    		add+=b[i];
    		printf("%d
    ",h+add);
    	}
    	return 0;
    }
    

    幸甚至哉,歌以咏志。

  • 相关阅读:
    软件工程-个人最终总结
    结对编程—电梯调度
    第三周(第三作业)感想
    周三第二个作业
    VS2013安装和单元测试
    对京东的评价
    简单的四则运算
    迷茫的软件工程
    vlan 和 子网
    ECLIPSE的jar包和文件的导入导出
  • 原文地址:https://www.cnblogs.com/DarthVictor/p/12899426.html
Copyright © 2011-2022 走看看