题目大意:

有一个圆形的谷仓,共有n个房间,按顺时针编号从1到n。现在有许多头奶牛,他们都有自己最喜欢的一个房间。傍晚回家时,奶牛们去找自己最喜欢的房间。如果发现被占了,他们就会按照顺时针方向找第一个空闲的房间住进去。现在请你输出最小的空闲的房间号。注意,这个答案和奶牛们回家的顺序是无关的。2<=n<=3000000,1<=k<=10000,A,B的值在区间[0,10^9]。

一看就是去改编的……

输入

输入格式:

第一行两个整数n,k。

接下来有k行。每行4个整数,x,y,a,b.表示有x头奶牛喜欢f[1],f[2]……,f[y]。其中f[i]=(a*i+b)%n+1.

输出

输出格式:

输出最小的空闲房间号。

样例输入

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

样例输出

6

重难点思想:

首先先要理解到这道题的意思,是说每一行喜欢f[i]的房间都有x头奶牛,理解到这一步后,就可以从无从下手到RE。

再来分析,由于我们的a ,b 很大,所以有可能会爆long long , 即使这里有余数还是会爆,故,我们要模三次:

int js( int i ){long long sum =( ( i * s ) % n + b % n ) % n;int k = sum % n;return k + 1;
}

然后就可以从RE晋升到TLE……

我们现在来优化模拟的方法:

用最简单的贪心来想,我们只让第i个房间保留1头奶牛,其余的全都移到下一个房间中,这样虽然一遍解决不了,但是跑2*n就可以把所有牛都放进去,最后再找空余的即可。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
int n , m;
long long s , b , x , y;
long long a[3000003];
int js( int i ){long long sum =( ( i * s ) % n + b % n ) % n;int k = sum % n;return k + 1;
}
void read( long long &x ){int f = 1; x = 0;char s = getchar();while( s < '0' || s > '9' ){if( s == '-' )f = -1;s = getchar();}while( s >= '0' && s <= '9' ){x = x * 10 + s - '0';s = getchar();}x *= f;
}
int main(){scanf( "%d%d" , &n , &m );for( int i = 1 ; i <= m ; i ++ ){read( x );read( y );read( s );read( b );for( int j = 1 ; j <= y ; j ++ )a[js( j )] += x;}for( int j = 1 ; j <= 3 ; j++ ){for( int i = 1 ; i <= n ; i ++ ){if( a[i] > 1 ){if( i == n )a[1] += a[n] - 1;elsea[ i + 1 ] += a[i] - 1;a[i] = 1;}}}for( int i = 1 ; i <= n ; i ++ )if( a[i] == 0 ){printf( "%d" , i );return 0;}return 0;
}

谷仓(某校老师原创题)相关推荐

  1. 杨校老师课堂之Java类与对象、封装、构造方法

    杨校老师课堂之Java类与对象.封装.构造方法 本篇文章内容如下: 面向对象 类与对象 三大特征--封装 构造方法 教学目标 能够理解面向对象的思想 能够明确类与对象关系 能够掌握类的定义格式 能够掌 ...

  2. 画出传输门、三态门、开路门_谷仓门优缺点有哪些?安装效果绝对出彩

    随着通信技术的发展,世界之间的距离逐渐缩短,装一网今天给大家介绍的谷仓门就是从国外流传过来的.虽然谷仓门设计来源于国外,但是近几年在国内装修市场也是大受欢迎.谷仓门优缺点有哪些呢?接下来,装一网就为大 ...

  3. SSLOJ·谷仓的安保【DFS】

    SSLOJ 1374 谷仓的安保 Description-- Input-- Output-- Sample Input-- Sample Output-- 说明-- 解题思路-- 代码-- Desc ...

  4. 武理校赛A题 ljw的剥削(思维 + map应用)

    武理校赛A题 ljw的剥削(思维 + map应用) 牛客链接 题意: 给定 a[],b[] 两个长度同为 n 的数组,经过一系列操作后, 使 p = ∑ i = 1 n m a x ( ( a i − ...

  5. 杨校老师课堂之CSDN博客查找博文汇总-目录

            目录 1.面试 2.JavaWeb文件[图片]上传功能: 3.BaseServlet设计教程 4.富文本编辑器使用教程 5.下载Jar包教程 6.页面原型下载 7.Java连接数据库 ...

  6. 杨校老师课堂之JavaScript案例之跑马灯左右无缝连接图片自动轮播

    JavaScript案例之跑马灯左右无缝连接 效果图: 思路: 1.先做界面 1.1 制作一个大盒子,进行存放整个图片及按钮区域 1.2 制作两个按钮和中间区域盒子 1.3 中间区域盒子中使用无序列表 ...

  7. 由力扣K 个一组翻转链表到360原创题

    前段时间帮对象做360笔试题时,遇到一个没怎么想明白的编程题,直到今天刷力扣遇到了相似的k个一组翻转链表后,想着在做一下那天的编程题,就想着记录一下遇到的难点. 力扣题如下图所示: 360原创题如下: ...

  8. 第15关 夫拉姆谷仓地带(难度高!)

    第15关:夫拉姆谷仓地带(难度高!) 培养地狱业火卡   (本关难,第2部boss很难.本关不要给公主宝物,给另外3人宝物. 骑士:方阵快枪(本关的主角!),人鱼寒冰,男主:无.公主:不可以装备,下一 ...

  9. 杨校老师课堂之WEB前端HTML

    目录 1. 概念: 2. 快速入门: 2.1 语法: 2.2 代码: 3. 认识标签: 3.1 文件标签:构成html最基本的标签 3.2 文本标签:和文本有关的标签 3.3 图片标签: 3.4 列表 ...

  10. C/C++ 求凸多边形对角线交点个数(洛谷原创题)

    注:看了一眼大家的解答,大概都是组合排列或是数学几何方法推导从而解答,这里提供一个比较单调的解题方法. 解题思路: 这里我打了一个表 n 交点 2 = 0 3 = 0 4 = 1 5 = 5 6 = ...

最新文章

  1. AfxInitExtensionModule和AfxTermExtensionModule
  2. [黑客技术]提权总结21种办法篇
  3. oracle data guard闪回,11gR2 Active Data Guard 闪回 - flashback database / snapshot standby - 2
  4. 第七代电子计算机,基于全新第七代智能英特尔®酷睿™处理器的最佳PC全面来袭...
  5. matlab实现神经网络算法,matlab神经网络训练函数
  6. 【垂直切换】TD-SCDMA与TD-LTE异构网络垂直切换仿真
  7. 谷歌SEO之如何使用Ahrefs工具选择关键词(2022更新教程)
  8. NAO机器人连接的电脑配置及用choregraphe控制nao行走
  9. python3.9.0 安装教程
  10. C++ QT开发人机象棋(搜索算法)
  11. 王半仙儿的日记-0001
  12. win10休眠_Win10系统C盘飘红,6招瞬间腾出十几GB空间
  13. SpringCloud系列【security oauth2】
  14. VB开发源码+视频教程大集合
  15. dm-crypt——多功能 Linux 磁盘加密工具
  16. 使用Python在Excel中嵌入附件(txt文件,zip压缩包)对象
  17. 拼音分词器多音字处理
  18. [NOIP模拟测试31]题解
  19. 【机器视觉-卡尺测量、间距检测】
  20. 引起电源模块发热的4个主要原因分别是什么?

热门文章

  1. 百度云服务器上安装docker步骤
  2. 微信小程序换行 br 无效解决方法
  3. 数据管理DMS移动版之2018新年巨献
  4. c++读取stl文件
  5. Jexi设计 (1) Lexi研究
  6. 一个页面中有多个audio标签,其中一个播放结束后自动播放下一个,audio连续播放
  7. eclipse常用快捷方式
  8. 推荐几个查找英语单词缩写的网站
  9. sql函数RIGHT的简单用法
  10. react-ative安装expo-linking后运行报错