最高的牛 (贪心)

这道题最大的教训是就是自己的思路如果觉得可以写出来一定要再试再想,这道题就是明明已经就差查重这一步就去看答案了,烦死了。还有既然每次输入a,b之后都要加没必要还不如前面都去减最后加一次最高的h来的好也好想,以后每次正面走不同就反过来想想就不要一直走如果正面要考虑的情况太多的话,就反过来,然后这道题标的是差分,我对差分的理解是数列求和的反过程但是这道题好像并不用,还是说这也算差分?就挺迷的。以后想通了加上来。

然后代码如下。

 

#include <iostream>
#include <algorithm>
#include <set>

using namespace std;

set<pair<int,int>>ded;
int N[5001];


int main(){
    int n,p,h,m;
    cin>>n>>p>>h>>m;
    
    while(m--){
        int a,b;
        cin>>a>>b;
        if(a>b){
            swap(a,b);
        }
        if(ded.count({a,b})==0){
            ded.insert({a,b});
            for(int i=a+1;i<b;i++){
                N[i]--;
            }
        }
    }
    for(int i=1;i<=n;i++){
        N[i]=N[i]+h;
        cout<<N[i]<<endl;
    }
    return 0;
}

问了下学长,说这是贪心,行吧,更迷了,ok去刷一下贪心吧,心情好一些了,贪心还没开始刷,ok继续加油

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值