101. 最高的牛
ACwing的题
思路
要每头牛身高最高,所以两头牛可以看见是,把中间的牛都减一。要把中间的都减一,明显是前缀和加差分。而最高的牛明显不会被减,所以可以作为基准。
即
printf("%d\n",h+c[i]);
注意
- 此题中给出的关系对可能存在重复
-
于是用map判重
代码
#include<bits/stdc++.h>
using namespace std;
inline long long read(){
long long num=0;int z=1;char c=getchar();
if(c=='-') z=-1;
while((c<'0'||c>'9')&&c!='-') c=getchar();
if(c=='-') z=-1,c=getchar();
while(c>='0'&&c<='9') num=(num<<1)+(num<<3)+(c^48),c=getchar();
return z*num;
}
int n,p,h,m;
bool q[10000+5][10000+5];
int c[10000+5];
int d[10000+5];
int main ()
{
n=read();p=read();h=read();m=read();
// memset(c,0,sizeof(c));
// memset(c,0,sizeof(d));
int a,b;
for(int i=1;i<=m;i++)
{
a=read();
b=read();
if(a>b)swap(a,b);
if(q[a][b])continue;
d[a+1]--;d[b]++;
q[a][b]=true;
}
for(int i=1;i<=n;i++)
{
c[i]=c[i-1]+d[i];
printf("%d\n",h+c[i]);
}
}
细雨斜风作晓寒,
淡烟疏柳媚晴滩。
入淮清洛渐漫漫。
雪沫乳花浮午盏,
蓼茸蒿笋试春盘。
人间有味是清欢。

浙公网安备 33010602011771号