代码

#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】随机数生成器的更多相关文章

  1. [BZOJ3671][UOJ#6][NOI2014]随机数生成器

    [BZOJ3671][UOJ#6][NOI2014]随机数生成器 试题描述 小H最近在研究随机算法.随机算法往往需要通过调用随机数生成函数(例如Pascal中的random和C/C++中的rand)来 ...

  2. 【BZOJ3671】[Noi2014]随机数生成器 暴力

    [BZOJ3535][Noi2014]随机数生成器 Description Input 第1行包含5个整数,依次为 x_0,a,b,c,d ,描述小H采用的随机数生成算法所需的随机种子.第2行包含三个 ...

  3. BZOJ_3671_[Noi2014]随机数生成器_set+贪心

    BZOJ_3671_[Noi2014]随机数生成器_set Description   Input 第1行包含5个整数,依次为 x_0,a,b,c,d ,描述小H采用的随机数生成算法所需的随机种子.第 ...

  4. NOI2014 随机数生成器

    随机数生成器 [问题描述] 小H最近在研究随机算法.随机算法往往需要通过调用随机数生成函数(例如Pascal中的random和C/C++中的rand)来获得随机性.事实上,随机数生成函数也并不是真正的 ...

  5. luogu P2354 [NOI2014]随机数生成器 贪心 卡空间 暴力

    LINK:随机数生成器 观察数据范围还是可以把矩阵给生成出来的. 考虑如何求出答案.题目要求把选出的数字从小到大排序后字典序尽可能的小 实际上这个类似于Mex的问题. 所以要从大到小选数字 考虑选择一 ...

  6. BZOJ3671/UOJ6 [Noi2014]随机数生成器

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  7. 贪心 BZOJ 3671:[Noi2014]随机数生成器

    Description   Input 第 1行包含5个整数,依次为 x_0,a,b,c,d ,描述小H采用的随机数生成算法所需的随机种子.第2行包含三个整数 N,M,Q ,表示小H希望生成一个1到 ...

  8. bzoj 3671 [Noi2014]随机数生成器——贪心(时间复杂度分配)

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3671 设 x 为一个点的行号, y 为一个点的列号:原本想着判断一个点能不能选就是看选了的点 ...

  9. bzoj3671 [Noi2014]随机数生成器

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3671 [题解] 贪心从1...n*m取,开两个5000*5000的数组就够了,可以重复利用, ...

  10. BZOJ3671 [Noi2014]随机数生成器 【贪心】

    题目链接 BZOJ3671 题解 模拟题意生成矩阵贪心从小选择即可 每选择一个,就标记其左下右上矩阵 由于每次都是标记一个到边界的矩阵,所以一旦遇到标记过就直接退出即可,可以保证复杂度 还有就是空间和 ...

随机推荐

  1. [最短路径问题]Dijkstra算法(含还原具体路径)

    前言 在本篇文章中,我将介绍 Dijkstra 算法解决 单源最短路径问题 ,同时还包含了具体路径的还原.以下是我自己的全部学习过程与思考,参考书籍为 <数据结构>(C++语言版) 邓俊辉 ...

  2. 文件压缩和vi编辑器

    一.压缩,解压缩 1.gzip 和 bzip2 gzip和bzip都是压缩软件,比如windows里的好压和360 压缩或微软自带的等等 命令格式是:gzip或者bzip  + 0-9的压缩等级(数字 ...

  3. ATM购物车项目总结

    目录 项目实现思路 ATM项目 优先实现功能 拆分函数 项目路径展示 项目启动文件 start.py 配置文件 setting.py 日志配置字典 日志函数 展示层 src.py 用户注册 获取用户输 ...

  4. 搭建漏洞环境及实战——在Linux系统中安装LANMP

    LANMP是Linux下Apache.Nginx.mysql和php的应用环境 演示的是WDLinux 命令:wget http://dl.wdlinux.cn/files/lamp_v3.tar.g ...

  5. element-ui中table组件的表格嵌套Select,table中使用select

    在table组件中,有一个<template slot-scope="scope"></template>,这个模板有一个slot-scope属性,这个属性 ...

  6. ClickHouse MergeTree引擎

    Clickhouse 中最强大的表引擎当属 MergeTree (合并树)引擎及该系列(*MergeTree)中的其他引擎. MergeTree 系列的引擎被设计用于插入极大量的数据到一张表当中.数据 ...

  7. [深度学习] CNN的基础结构与核心思想

    1. 概述 卷积神经网络是一种特殊的深层的神经网络模型,它的特殊性体现在两个方面,一方面它的神经元间的连接是非全连接的, 另一方面同一层中某些神经元之间的连接的权重是共享的(即相同的).它的非全连接和 ...

  8. SICP:符号求导、集合表示和Huffman树(Python实现)

    绪论 到目前为止,我们已经使用过的所有复合数据,最终都是从数值出发构造起来的(比如我们在上一篇博客<SICP 2.2: 层次性数据和闭包性质(Python实现)>所介绍的链表和树就基于数来 ...

  9. vulnhub靶场之HACKER KID: 1.0.1

    准备: 攻击机:虚拟机kali.本机win10. 靶机:Hacker kid: 1.0.1,下载地址:https://download.vulnhub.com/hackerkid/Hacker_Kid ...

  10. 我们来汉化IntelliJ IDEA

    (原发于 GitHub Pages,2018-10-13 13:51:09) 两年前我从一名光荣的C++程序员专业为PHP程序员以后,告别了世界第一IDE Visual Studio,改用当时觉得特别 ...