COGS 1453. [USACO NOV]空牛栏
★★ 输入文件: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]空牛栏的更多相关文章
- Cogs 1435. [USACO NOV]金发姑娘和N头牛
1435. [USACO NOV]金发姑娘和N头牛 ★★☆ 输入文件:milktemp.in 输出文件:milktemp.out 简单对比时间限制:1 s 内存限制:256 MB [题 ...
- COGS 163 [USACO Mat07] 牛语
COGS 163 [USACO Mat07] 牛语 输入文件:latin.in 输出文件:latin.out 简单对比 时间限制:1 s 内存限制:128 MB 奶牛们听说猪发明了一种秘密 ...
- 匈牙利算法 cogs 886. [USACO 4.2] 完美的牛栏
886. [USACO 4.2] 完美的牛栏 ★★☆ 输入文件:stall4.in 输出文件:stall4.out 简单对比时间限制:1 s 内存限制:128 MB USACO/sta ...
- COGS 886. [USACO 4.2] 完美的牛栏
★★☆ 输入文件:stall4.in 输出文件:stall4.out 简单对比时间限制:1 s 内存限制:128 MB USACO/stall4(译by Felicia Crazy) ...
- cogs 886. [USACO 4.2] 完美的牛栏 二分图 匈牙利算法
886. [USACO 4.2] 完美的牛栏 ★★☆ 输入文件:stall4.in 输出文件:stall4.out 简单对比时间限制:1 s 内存限制:128 MB USACO/sta ...
- Cogs 309. [USACO 3.2] 香甜的黄油 dijkstra,堆,最短路,floyd
题目:http://cojs.tk/cogs/problem/problem.php?pid=309 309. [USACO 3.2] 香甜的黄油 ★★ 输入文件:butter.in 输出文件 ...
- COGS 144. [USACO Dec07] 魅力手镯【01背包复习】
144. [USACO Dec07] 魅力手镯 ★ 输入文件:charm.in 输出文件:charm.out 简单对比 时间限制:1 s 内存限制:8 MB 译 by CmYkRgB1 ...
- COGS——T1588. [USACO FEB04]距离咨询
http://cogs.pro/cogs/problem/problem.php?pid=1588 ★★ 输入文件:dquery.in 输出文件:dquery.out 简单对比时间限制:1 ...
- 算法优化(动态规划):COGS 2009. [USACO Mar09]餐厅清扫
2009. [USACO Mar09]餐厅清扫 ★★☆ 输入文件:cleanup.in 输出文件:cleanup.out 简单对比时间限制:1 s 内存限制:256 MB [题目描述] ...
随机推荐
- spring framework 源码
spring framework 各版本源码下载地址 现在spring的源码下载地址真是不好找,这次终于找到了.记录一下,以帮助需要的朋友. https://github.com/spring-pro ...
- C++基础之数据类型和表达式
面向对象特征1)封装 (类)2)继承(基类和派生类)3)多态(通过定义虚函数支持动态联编) 面向对象三要素(类-创建对象的样板,对象,继承) C++基本数据类型整型 int (32位机,字宽4字节, ...
- elasticsearch 基本介绍
1. Elasticsearch的适用场景: (1)类似百度百科的全文检索,高亮,搜索推荐(2)新闻类的搜索,用户行为日志(点击,浏览,收藏,评论)+社交网络数据(对某某新闻的相关看法),数据分析,给 ...
- Android OpenGLES2.0(十七)——球形天空盒VR效果实现
在3D游戏中通常都会用到天空盒,在3D引擎中也一般会存在天空盒组件,让开发者可以直接使用.那么天空盒是什么?天空盒又是如何实现的呢?本篇博客主要介绍如何在Android中利用OpenGLES绘制一个天 ...
- maven项目打包分析及打包后war包缺少配置文件报错的原因分析,使用progard混淆时配置分析
1.maven打包: 一直以来我都没太注意过在myeclipse下使用run as来clean居然对项目的target目录没有进行操作,要让操作有效,需要进入到maven build...选项下,进行 ...
- 7、kvm迁移操作
虚拟机迁移要确保虚拟机是关机状态. virsh shutdown privi-server virsh dumpxml privi-server > /etc/libvirt/qemu/priv ...
- A. The Fair Nut and Elevator(暴力)
time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...
- Murano Weekly Meeting 2015.07.14
会议时间: 2015.07.14 主持人: Kirill Zaitsev, core from Mirantis 会议摘要: 1.periodic nightly builds,然后通过mailin ...
- js固定两位小数toFixed(2)
total=total.toFixed(3); 小数问题:可以number(),或者*1来改变变量类型.
- IDEA/Eclipse安装 Alibaba Java Coding Guidelines 插件
为了让开发者更加方便.并且达到快速规范代码格式的目的并实行起来,阿里巴巴基于<阿里巴巴Java开发规约>手册内容,研发了一套自动化的IDE检测插件(IDEA.Eclipse).它就是Ali ...