您的位置:首页 > 其它

bzoj 3310: [Usaco2013 Nov]Empty Stalls

2017-08-04 22:15 387 查看
题目链接

看那个著名的“USACO被虐记”说的是按照题意搞一搞就好了

但是无比之弱的我还是T了两发

按照题意暴力搞什么的都是骗人的qwq

不能每次都暴力处理每个牛

先把所有的牛都安放在他喜欢的位置上

然后从头到尾最多扫两边就好了

因为保证牛的数量至多为n-1

每次把多的牛往♂后♂搞

一个很弱的代码:

#include<iostream>
#include<cstdio>

using namespace std;

int n,k;
int f[3000030];

void cal(int x,int y,int a,int b){
int num=b;
for(int i=1; i<=y; i++){
num+=a;
num%=n;
f[num]+=x;
}
}

int main(){
scanf("%d%d",&n,&k);
for(int i=0; i<k; i++){
int x,y,a,b;
scanf("%d%d%d%d",&x,&y,&a,&b);
cal(x,y,a,b);
}
for(int i=0; i<n-1; i++)if(f[i]>1)f[i+1]+=f[i]-1,f[i]=1;
if(f[n-1]>1){
f[0]+=f[n-1]-1,f[n-1]=1;
for(int i=0; i<n-1; i++)if(f[i]>1)f[i+1]+=f[i]-1,f[i]=1;
}
for(int i=0; i<n; i++){
if(!f[i]){
printf("%d\n",i);
return 0;
}
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: