★★   输入文件:empty.in   输出文件:empty.out   简单对比
时间限制:1 s   内存限制:64 MB

【题目描述】

FJ建的新牛棚里有N(2<=N<=3,000,000)个栏位,这N个栏位围成了一个巨大的环形,N个栏位编号依次为0~N-1,其中0号栏位与N-1号栏位相邻。

到了晚上,FJ的牛会陆续返回牛棚。在每头牛心里都有一个他们最钟意的栏位,然而,如果某头牛最钟意的栏位已经被别的牛抢先占领了,他会从该栏位开始按顺序依次查看后面的栏位,直到找到第一个未被占领的栏位为止,他将占领这个栏位。如果他查看到了N-1号栏位仍未找到空位,他将从0号栏位开始继续找下去。

给定每头牛所钟意的栏位号,请计算:当所有牛都回栏后,未被占领的牛栏中编号最小的那个。请注意本题的答案跟牛返回牛棚的顺序无关。

为避免大量读入数据的问题,输入数据只有K(1<=K<=10,000)行,每行的格式为:X Y A B

其中指定了X*Y头牛最钟意的栏位,即每X头牛依次钟意的栏位为f(1)~f(Y),其中f(i)=(A*i+B) mod N;A,B均在0到1,000,000,000之间。

切记标准内存限制为64MB。

【输入格式】

第1行:两个空格隔开的整数N,K;

第2~K+1行:每行包含四个整数X,Y,A,B,含义如上所述。牛的总数不超过N-1,可能有若干行数据都涉及到相同的栏位。

【输出格式】

一行,即求未被占领的栏位中编号最小者。

【样例输入】

10 3
3 2 2 4
2 1 0 1
1 1 1 7

输入解释:共有10个栏位,编号为0~9;第2行数据显示有3头牛钟意6((2*1+4)mod 10=6)号栏位,另外3头牛钟意8((2*2+4)mod 10=8)号栏位;第3行数据显示有2头牛钟意1((0*1+1)mod 10=1)号栏位;第4行数据显示有1头牛钟意8((1*1+7)mod 10=8)号栏位(共有4头牛钟意这个栏位)。

【样例输出】

5

输出解释: 除了5号栏位,其它栏位均被占领。

【提示】

在此键入。

【来源】

USACO 2013 November Contest, Gold

模拟

nextt指针表示i下一个没有牛的牛棚

龟速AC

屠龙宝刀点击就送

#include <cctype>
#include <cstdio>
#include <vector>
#include <ctime>
#define N 5000005 using namespace std;
typedef long long LL;
inline void read(LL &x)
{
register char ch=getchar();
for(x=;!isdigit(ch);ch=getchar());
for(;isdigit(ch);x=x*+ch-'',ch=getchar());
}
bool zl[N];
LL msc(LL a,LL b,LL Mod)
{
LL ret=,base=a;
for(;b;b>>=,base=(base<<)%Mod)
if(b&) ret=(ret+base)%Mod;
return ret;
}
LL n,k,x,y,a,b,nextt[N];
int main(int argc,char *argv[])
{
freopen("empty.in","r",stdin);
freopen("empty.out","w",stdout);
read(n);
read(k);
for(int i=;i<n;++i) nextt[i]=i+;
nextt[n-]=;
for(LL i=;i<=k;++i)
{
read(x);read(y);read(a);read(b);
for(LL j=;j<=y;++j)
{
LL f=(msc(a,j,n)+b%n)%n;
for(LL k=;k<=x;++k)
{
LL v=f,vv=v;
while(zl[vv]) vv=nextt[vv];
zl[vv]=true;
nextt[v]=nextt[vv];
}
}
}
for(LL i=;i<n;i=nextt[i])
if(!zl[i]) {printf("%lld\n",i);return ;}
return ;
}

COGS 1453. [USACO NOV]空牛栏的更多相关文章

  1. Cogs 1435. [USACO NOV]金发姑娘和N头牛

    1435. [USACO NOV]金发姑娘和N头牛 ★★☆   输入文件:milktemp.in   输出文件:milktemp.out   简单对比时间限制:1 s   内存限制:256 MB [题 ...

  2. COGS 163 [USACO Mat07] 牛语

    COGS 163 [USACO Mat07] 牛语 输入文件:latin.in   输出文件:latin.out   简单对比 时间限制:1 s   内存限制:128 MB 奶牛们听说猪发明了一种秘密 ...

  3. 匈牙利算法 cogs 886. [USACO 4.2] 完美的牛栏

    886. [USACO 4.2] 完美的牛栏 ★★☆   输入文件:stall4.in   输出文件:stall4.out   简单对比时间限制:1 s   内存限制:128 MB USACO/sta ...

  4. COGS 886. [USACO 4.2] 完美的牛栏

    ★★☆   输入文件:stall4.in   输出文件:stall4.out   简单对比时间限制:1 s   内存限制:128 MB USACO/stall4(译by Felicia Crazy) ...

  5. cogs 886. [USACO 4.2] 完美的牛栏 二分图 匈牙利算法

    886. [USACO 4.2] 完美的牛栏 ★★☆   输入文件:stall4.in   输出文件:stall4.out   简单对比时间限制:1 s   内存限制:128 MB USACO/sta ...

  6. Cogs 309. [USACO 3.2] 香甜的黄油 dijkstra,堆,最短路,floyd

    题目:http://cojs.tk/cogs/problem/problem.php?pid=309 309. [USACO 3.2] 香甜的黄油 ★★   输入文件:butter.in   输出文件 ...

  7. COGS 144. [USACO Dec07] 魅力手镯【01背包复习】

    144. [USACO Dec07] 魅力手镯 ★   输入文件:charm.in   输出文件:charm.out   简单对比 时间限制:1 s   内存限制:8 MB 译 by CmYkRgB1 ...

  8. COGS——T1588. [USACO FEB04]距离咨询

    http://cogs.pro/cogs/problem/problem.php?pid=1588 ★★   输入文件:dquery.in   输出文件:dquery.out   简单对比时间限制:1 ...

  9. 算法优化(动态规划):COGS 2009. [USACO Mar09]餐厅清扫

    2009. [USACO Mar09]餐厅清扫 ★★☆   输入文件:cleanup.in   输出文件:cleanup.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] ...

随机推荐

  1. 又见GCD (HDU 2504)

    这个题真的很水,但我竟然连错,在此警醒自己!!! 写代码改了东边,忘了西边,“认真”这两个字又被我吃了,打脸啪啪啪啪. #include<iostream> using namespace ...

  2. 机器学习十大算法之EM算法

    此文已由作者赵斌授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 由于目前论坛的Markdown不支持Mathjax,数学公式没法正常识别,文章只能用截图上传了...     ...

  3. mysql 索引总结

    一.MYSQL索引类型(共三种) 1).normal 正常 应用场景:普通的index 2).unique 唯一性的 应用场景:比如身份证的 3).full text 全文索引 应用场景:较长文字 二 ...

  4. ABC118D(DP,完全背包,贪心)

    #include<bits/stdc++.h>using namespace std;int cnt[10]={0,2,5,5,4,5,6,3,7,6};int dp[10007];int ...

  5. java知识点积累(二)

    4.条件运算符(三元运算符): String type = score<60?"不及格":"及格"; int i = (string=="hel ...

  6. GoWeb开发_Iris框架讲解(二):Get、Post、Put等请求及数据返回格式

    数据请求方式的分类 所有的项目中使用的请求都遵循HTTP协议标准,HTTP协议经过了1.0和1.1两个版本的发展. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP ...

  7. openstack RPC通信

    openstack RPC通信 OpenStack 的主要组件有 Nova.Cinder.Neutron.Glance 等,分别负责云平台的计算.存储.网络资源管理.openstack 各组件之间是通 ...

  8. [转][iOS Crash文件分析]-如何使用symbolicatecrash工具

    上传一软件,被拒了,自己测试了n遍都未出现这个情况,今天用symbolicatecrash工具分析了一下苹果提供的Crash文件,最终查到是 - (void)mapView:(MKMapView *) ...

  9. print和sys.stdout

    print print语句执行的操作是一个写操作,把我们从外设输入的数据写到了stdout流,并进行了一些特定的格式化.和文件方法不同,在执行打印操作是,不需要将对象转换为字符串(print已经帮我们 ...

  10. 最大加权矩形 压缩+前缀和+dp

    题目描述 为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑组的课余运动场地,听说她们都是电脑组的高手,校长没 ...