【NOI2014】随机数生成器
代码
#include<cstdio>
using namespace std;
typedef long long LL;
const int N = 5000;
int n , m , q , tot;
LL a , b , c , d;
int x[N * N + 5] , T[N * N + 5] , l[N + 5] , r[N + 5] , ans[N + N + 5];
inline void swap(int &x , int &y)
{
register int t = x;
x = y , y = t;
}
int main()
{
scanf("%d%lld%lld%lld%lld%d%d%d" , &x[0] , &a , &b , &c , &d , &n , &m , &q);
for(register int i = 1; i <= n * m; i++)
x[i] = (a * x[i - 1] * x[i - 1] + b * x[i - 1] + c) % d , T[i] = i;
register int t , u , v;
for(register int i = 1; i <= n * m; i++) swap(T[i] , T[x[i] % i + 1]);
for(register int i = 1; i <= q; i++)
{
scanf("%d%d" , &u , &v);
swap(T[u] , T[v]);
}
for(register int i = 1; i <= n * m; i++) x[T[i]] = i;
for(register int i = 1; i <= n; i++) r[i] = 2e9;
for(register int i = 1; i <= n * m; i++)
{
u = x[i] % m ? x[i] / m + 1 : x[i] / m;
v = (x[i] - 1) % m + 1;
if (v >= l[u] && v <= r[u])
{
ans[++tot] = i;
if (tot == n + m - 1) break;
for(register int j = u - 1; j >= 1; j--)
{
if (v < r[j]) r[j] = v;
else break;
}
for(register int j = u + 1; j <= n; j++)
{
if (v > l[j]) l[j] = v;
else break;
}
}
}
for(register int i = 1; i <= tot; i++) printf("%d " , ans[i]);
}
【NOI2014】随机数生成器的更多相关文章
- [BZOJ3671][UOJ#6][NOI2014]随机数生成器
[BZOJ3671][UOJ#6][NOI2014]随机数生成器 试题描述 小H最近在研究随机算法.随机算法往往需要通过调用随机数生成函数(例如Pascal中的random和C/C++中的rand)来 ...
- 【BZOJ3671】[Noi2014]随机数生成器 暴力
[BZOJ3535][Noi2014]随机数生成器 Description Input 第1行包含5个整数,依次为 x_0,a,b,c,d ,描述小H采用的随机数生成算法所需的随机种子.第2行包含三个 ...
- BZOJ_3671_[Noi2014]随机数生成器_set+贪心
BZOJ_3671_[Noi2014]随机数生成器_set Description Input 第1行包含5个整数,依次为 x_0,a,b,c,d ,描述小H采用的随机数生成算法所需的随机种子.第 ...
- NOI2014 随机数生成器
随机数生成器 [问题描述] 小H最近在研究随机算法.随机算法往往需要通过调用随机数生成函数(例如Pascal中的random和C/C++中的rand)来获得随机性.事实上,随机数生成函数也并不是真正的 ...
- luogu P2354 [NOI2014]随机数生成器 贪心 卡空间 暴力
LINK:随机数生成器 观察数据范围还是可以把矩阵给生成出来的. 考虑如何求出答案.题目要求把选出的数字从小到大排序后字典序尽可能的小 实际上这个类似于Mex的问题. 所以要从大到小选数字 考虑选择一 ...
- BZOJ3671/UOJ6 [Noi2014]随机数生成器
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- 贪心 BZOJ 3671:[Noi2014]随机数生成器
Description Input 第 1行包含5个整数,依次为 x_0,a,b,c,d ,描述小H采用的随机数生成算法所需的随机种子.第2行包含三个整数 N,M,Q ,表示小H希望生成一个1到 ...
- bzoj 3671 [Noi2014]随机数生成器——贪心(时间复杂度分配)
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3671 设 x 为一个点的行号, y 为一个点的列号:原本想着判断一个点能不能选就是看选了的点 ...
- bzoj3671 [Noi2014]随机数生成器
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3671 [题解] 贪心从1...n*m取,开两个5000*5000的数组就够了,可以重复利用, ...
- BZOJ3671 [Noi2014]随机数生成器 【贪心】
题目链接 BZOJ3671 题解 模拟题意生成矩阵贪心从小选择即可 每选择一个,就标记其左下右上矩阵 由于每次都是标记一个到边界的矩阵,所以一旦遇到标记过就直接退出即可,可以保证复杂度 还有就是空间和 ...
随机推荐
- 【Java SE】Day09 继承、super、this、抽象类
一.继承 1.概述 多个类具有相同属性和行为,共性抽取到一个类中(父类) 父类更通用,子类更具体 2.继承后的成员变量 本类:this.成员变量名 父类:super.成员变量名 3.继承后的成员方法 ...
- node-sass报错(Node Sass could not find a binding for your current environment)
解决方案:参考 https://stackoverflow.com/questions/37986800/node-sass-couldnt-find-a-binding-for-your-curre ...
- L1-064 估值一亿的AI核心代码 (20分)
L1-064 估值一亿的AI核心代码 (20分) 以上图片来自新浪微博. 本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是: 无论用户说什么,首先把对方说的话在一行中原样打印出来: 消除 ...
- (admin.E104) 'XXXX' must inherit from 'InlineModelAdmin'.
代码: class CaseStepAdmin(admin.ModelAdmin): list_display = ('id', 'casetep', 'casedata', 'webcase', ' ...
- Dubbo 3 之 Triple 流控反压原理解析
作者:顾欣 Triple 是 Dubbo 3 提出的基于 HTTP2 的开放协议, 旨在解决 Dubbo 2 私有协议带来的互通性问题. Triple 基于 HTTP/2 定制自己的流控,支持通过特定 ...
- 【c#】分享一个简易的基于时间轮调度的延迟任务实现
在很多.net开发体系中开发者在面对调度作业需求的时候一般会选择三方开源成熟的作业调度框架来满足业务需求,比如Hangfire.Quartz.NET这样的框架.但是有些时候可能我们只是需要一个简易的延 ...
- [编程基础] Python lambda函数总结
Python lambda函数教程展示了如何在Python中创建匿名函数.Python中的匿名函数是使用lambda关键字创建的. 文章目录 1 介绍 1.1 简单使用 1.2 Python lamb ...
- tornado原理介绍及异步非阻塞实现方式
tornado原理介绍及异步非阻塞实现方式 以下内容根据自己实操和理解进行的整理,欢迎交流~ 在tornado的开发中,我们一般会见到以下四个组成部分. ioloop: 同一个ioloop实例运行在一 ...
- liunx系统安装JDK环境详细步骤
Liunx系统安装JDK环境详细步骤 一 下载liunx版本jdk压缩包 进入JDK官方网站下载jdk压缩包.下载前需要登入账户,可以自己注册一个账户! 也可以使用本博主提供的网盘下载https:// ...
- 图文并茂使用VUE+Quasar CLI开发和构建PWA,registerServiceWorker介绍
看文档 文档地址:Preparation for PWA 1.将PWA模式添加到我们的Quasar项目中: npx quasar mode add pwa 我们看一下有哪些变化 向Quasar项目添加 ...