解题:NOI 2014 随机数生成器
为什么NOI2014有模拟题=。=???
按题意把序列生成出来之后,对每一行维护一个能取到的最左侧和能取到的最右侧。从小到大$O(n^2)$枚举数字看看能否填入,能填入则暴力$O(n)$更新信息,因为能填入的总共只有$n+m$级别个数的数,所以复杂度没问题
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=,inf=1e9;
int d,n,m,q,nm,t1,t2,s[];
int x[N*N],p[N*N],ll[N],rr[N];
void Add(int &x,int y)
{
x+=y;
if(x>=d) x-=d;
}
bool Able(int o)
{
int x=(o-)/m+,y=o%m; if(!y) y=m;
if(y>=ll[x]&&y<=rr[x])
{
for(int i=;i<x;i++) rr[i]=min(rr[i],y);
for(int i=x+;i<=n;i++) ll[i]=max(ll[i],y);
return true;
}
return false;
}
int main()
{
scanf("%d%d%d%d%d",&x[],&s[],&s[],&s[],&d);
scanf("%d%d%d",&n,&m,&q),nm=n*m;
for(int i=;i<=nm;p[i]=i,i++)
for(int j=,t=;j;t=1ll*t*x[i-]%d,j--)
Add(x[i],1ll*t*s[j]%d);
for(int i=;i<=nm;i++) swap(p[i],p[x[i]%i+]);
for(int i=;i<=q;i++)
scanf("%d%d",&t1,&t2),swap(p[t1],p[t2]);
for(int i=;i<=n*m;i++) x[p[i]]=i;
for(int i=;i<=n;i++) ll[i]=,rr[i]=m;
for(int i=;i<=nm;i++)
if(Able(x[i])) printf("%d ",i);
return ;
}
解题:NOI 2014 随机数生成器的更多相关文章
- BZOJ 3671 NOI 2014 随机数生成器 贪心
题目大意:实在是太难说明了,自己看pdf吧.. 思路:优先依照它说明的方法处理数组,然后为了让数列中尽可能多的出现小的数字,所以1是必需要出现的,这样才干使整个数列的排序后字典序最小. 我们思考,假设 ...
- NOI 2012 随机数生成器
看到全是矩阵的题解,我来一发递推+分治 其实这题一半和poj1845很像(或是1875?一个叫Sumdiv的题) 言归正传,我们看看怎么由f(0)推出f(n) 我们发现,题目中给出了f(n)=af(n ...
- 【矩阵乘】【NOI 2012】【cogs963】随机数生成器
963. [NOI2012] 随机数生成器 ★★ 输入文件:randoma.in 输出文件:randoma.out 简单对照 时间限制:1 s 内存限制:128 MB **[问题描写叙述] 栋栋近期迷 ...
- 【原创】开源Math.NET基础数学类库使用(13)C#实现其他随机数生成器
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...
- 【BZOJ-3122】随机数生成器 BSGS
3122: [Sdoi2013]随机数生成器 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1362 Solved: 531[Submit][Sta ...
- BZOJ-2875 随机数生成器 矩阵乘法快速幂+快速乘
题目没给全,吃X了... 2875: [Noi2012]随机数生成器 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 1479 Solved: 829 ...
- [BZOJ3671][UOJ#6][NOI2014]随机数生成器
[BZOJ3671][UOJ#6][NOI2014]随机数生成器 试题描述 小H最近在研究随机算法.随机算法往往需要通过调用随机数生成函数(例如Pascal中的random和C/C++中的rand)来 ...
- [NOI 2014]做题记录
[NOI2014]起床困难综合症 按位贪心 #include <algorithm> #include <iostream> #include <cstring> ...
- NOI2014 随机数生成器
随机数生成器 [问题描述] 小H最近在研究随机算法.随机算法往往需要通过调用随机数生成函数(例如Pascal中的random和C/C++中的rand)来获得随机性.事实上,随机数生成函数也并不是真正的 ...
随机推荐
- 2017-2018-2 20155203《网络对抗技术》Exp2 后门原理与实践
基础问题回答 (1)例举你能想到的一个后门进入到你系统中的可能方式? 通过下载带后门的程序或者点开带有后门的软件,或者后门本身就在我的系统里: (2)例举你知道的后门如何启动起来(win及linux) ...
- 20155226 《网络对抗》Exp 8 Web基础
20155226 <网络对抗>Exp 8 Web基础 实践内容 1.Web前端HTML 配置环境 正常安装.启动Apache 安装:sudo apt-get install apache2 ...
- web窗体的运用
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace WebAp ...
- 1、Docker概述与安装
1.Docker概述 原文地址:https://docs.docker-cn.com/engine/docker-overview/#docker-engine Docker是一个开发,集装,运行应用 ...
- stl源码剖析 详细学习笔记 配接器
//---------------------------15/04/03---------------------------- /* 配接器概述: 1:adapter是一种设计模式:将一个clas ...
- WPF DataGrid列设置为TextBox控件的相关绑定
在wpf的DataGrid控件中,某一列的数据模板为TextBox控件的话,绑定Text="{Binding TxtSn, UpdateSourceTrigger=PropertyChang ...
- 软件测试_Loadrunner_APP测试_性能测试_脚本录制_基本操作流程
这次主要是写一下使用Loadrunner对APP进行性能测试的基本流程,有关性能测试监控指标请查看链接:软件测试_性能测试_关注点. 先决条件:已安装Loadrunner.如未安装,请查看链接:软件测 ...
- 小白之selenium+python关于cookies绕开登录2
首先,由于新开始在博客园中写随笔,可能在内容的布局方面就不太懂,导致布局很丑,各位见谅,但是字还是原来的那字,内容还是原来的内容,少了点包装, 下面是对cookie的扩展知识 1.配置文件存储在哪里? ...
- App推荐 | Google Tasks
前不久,Google推出了一款移动任务管理应用Google Task,在使用2天后,写一下使用感受,并与Google同类产品Keep进行一个对比. 首先欣赏几张官方的App截图 然后来看一下官方的介绍 ...
- [paper]MaskFusion: Real-Time Recognition, Tracking and Reconstruction of Multiple Moving Objects
Before 近期在调研关于RGBD在室内移动机器人下的语义导航的研究.目前帝国理工的Andrew Davison在这边有两个团队在研究,分别是Fusion++ 和 这篇 MaskFusion.这篇是 ...