最高的牛
作者:互联网
题解:我们一开始把所有牛的高度都设为\(h\),当给出\(a\),\(b\)时,就将其内部的牛的身高都减一,用差分就好了
AC_Code;
1 #include<cstdio> 2 #include<cstring> 3 #include<cmath> 4 #include<set> 5 #include<algorithm> 6 #include<iostream> 7 using namespace std; 8 typedef long long ll; 9 #define endl '\n' 10 const int maxn = 1e4+10; 11 const int inf = 0x3f3f3f3f; 12 13 int n,p,h,m; 14 int he[maxn]; 15 int main() 16 { 17 scanf("%d%d%d%d",&n,&p,&h,&m); 18 set<pair<int,int> > existed;//有重复,用来去重 19 he[1]=h; 20 for(int i=1;i<=m;i++){ 21 int a,b; 22 scanf("%d%d",&a,&b); 23 if( a>b ) swap(a,b); 24 if( !existed.count({a,b})){ 25 existed.insert({a,b}); 26 he[a+1]--; 27 he[b]++; 28 } 29 } 30 for(int i=1;i<=n;i++){ 31 he[i]+=he[i-1]; 32 printf("%d\n",he[i]); 33 } 34 return 0; 35 }
标签:existed,const,int,d%,最高,include,he 来源: https://www.cnblogs.com/wsy107316/p/13381340.html