2 solutions
-
-14
题意
有n只牛,第i只高度为h(最高);
给出a和b,其中a,b之间的所有奶牛的高度都比a小
问n只牛的最大高度
思路
先假设每只牛的高度都是最高,再将(a,b](从a+1到b)内的牛身高全部-1 (可以用差分优化)
然后没了
代码
#include<bits/stdc++.h> using namespace std; #define ll long long int n,I,h,r,a,b; int f[10005]; //奶牛身高的差分数组 bool used[10005][10005]; int main(){ cin>>n>>I>>h>>r; f[1]=h; while(r--){ cin>>a>>b; if(!used[a][b]){ f[min(a,b)+1]--; //f[a+1] 到 f[b] 全部减一 f[max(a,b)]++; } used[a][b]=1; //去重 } int ans=0; for(int i=1;i<=n;i++){ ans+=f[i]; cout<<ans<<'\n'; } return 0; } }
需注意K组数据可能有重复,要特判一下
- 1
Information
- ID
- 1070
- Time
- 1000ms
- Memory
- 125MiB
- Difficulty
- 8
- Tags
- # Submissions
- 17
- Accepted
- 7
- Uploaded By