20170613NOIP模拟赛
共3道题目,时间3小时
题目非原创,仅限校内交流使用
|
题目名称 |
Graph |
Incr |
Permutation |
|
文件名 |
graph |
incr |
permutation |
|
输入文件 |
graph.in |
incr.in |
permutation.in |
|
输出文件 |
graph.out |
incr.out |
permutation.out |
|
时间限制 |
1000ms |
1000ms |
1000ms |
|
内存限制 |
256mb |
256mb |
256mb |
|
测试点数目 |
10 |
10 |
10 |
|
测试点分值 |
10 |
10 |
10 |
|
是否有部分分 |
否 |
否 |
否 |
|
题目类型 |
传统 |
传统 |
传统 |
评测环境
操作系统:Windows XP Professional SP3
CPU: Intel(R) Pentium(R) CPU G2030 @ 3.00GHz (2CPUs)
系统内存:2GB
评测工具:Cena 0.8.
Problem 1 Graph (graph.cpp/c/pas)
【题目描述】
给出 N 个点,M 条边的有向图,对于每个点 v,求 A(v) 表示从点 v 出发,能到达的编号最大的点。
【输入格式】
第 1 行,2 个整数 N,M。 接下来 M 行,每行 2 个整数 Ui,Vi,表示边 ⟨Ui,Vi⟩。点用 1,2,...,N 编号。
【输出格式】
N 个整数 A(1),A(2),...,A(N)。
【样例输入】
4 3
1 2
2 4
4 3
【样例输出】
4 4 3 4
【数据范围】
对于 60% 的数据,1 ≤ N,K ≤ 10^3;
对于 100% 的数据,1 ≤ N,M ≤ 10^5。
思路
dfs/Tarjan/拓扑序列/bfs皆可。
Problem 2 Incr(incr.cpp/c/pas)
【题目描述】
数列 A1,A2,...,AN,修改最少的数字,使得数列严格单调递增。
【输入格式】
第 1 行,1 个整数 N
第 2 行,N 个整数 A1,A2,...,AN
【输出格式】
1 个整数,表示最少修改的数字
【样例输入】
3
1 3 2
【样例输出】
1
【数据范围】
对于 50% 的数据,N ≤ 10^3
对于 100% 的数据,1 ≤ N ≤ 10^5,1 ≤ Ai ≤ 10^9
思路
对于每个Ai,先减去i,然后求最长严格上升子序列a;
ans=n-a;
代码实现
#include<cstdio>
const int maxn=1e5+;
int n,a;
int s[maxn],v[maxn];
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%d",&s[i]),s[i]-=i;
v[++a]=s[];
for(int i=;i<=n;i++){
if(v[a]<s[i+]) v[++a]=s[i+];
else
for(int j=;j<=a;j++)
if(s[i+]<v[j]){v[j]=s[i+];break;}
}
printf("%d",n-a);
return ;
}
Problem 3 Permutation (permutation.cpp/c/pas)
【题目描述】
将 1 到 N 任意排列,然后在排列的每两个数之间根据他们的大小关系插入“>”和“<”。
问在所有排列中,有多少个排列恰好有K个“<”。
例如排列(3, 4, 1, 5, 2)
3 < 4 > 1 < 5 > 2
共有2个“<”
【输入格式】
N,K
【输出格式】
答案
【样例输入】
5 2
【样例输出】
66
【数据范围】
20%:N <= 10
50%:答案在0..2^63-1内
100%:K < N <= 100
思路
DP方程:f[i][j]=f[i-1][j]*(j+1)+f[i-1][j-1]*(i-j);
代码实现
#include<cstdio>
const int maxn=;
inline int max_(int x,int y){return x>y?x:y;}
int n,k;
int s[][][];
void tot(int i,int j,int v1,int v2){
int b=max_(s[i^][j][],s[i^][j-][]);
for(int a=;a<=b;a++) s[i][j][a]=s[i^][j][a]*v1+s[i^][j-][a]*v2;
for(int a=;a<=b;a++)
if(s[i][j][a]>){
s[i][j][a+]+=s[i][j][a]/;
s[i][j][a]%=;
if(a==b) b++;
}
s[i][j][]=b;
}
void put(int i,int j){
printf("%d",s[i][j][s[i][j][]]);
for(int a=s[i][j][]-;a>;a--)
printf("%03d",s[i][j][a]);
}
int main(){
freopen("permutation.in","r",stdin);
freopen("permutation.out","w",stdout);
scanf("%d%d",&n,&k);
s[][][]=s[][][]=s[][][]=s[][][]=;
for(int i=;i<=n;i++)
for(int j=;j<=k;j++)
tot(i&,j,j+,i-j);
put(n&,k);
return ;
}
20170613NOIP模拟赛的更多相关文章
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
- NOI模拟赛 Day1
[考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...
- NOIP第7场模拟赛题解
NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...
- contesthunter暑假NOIP模拟赛第一场题解
contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...
- NOIP模拟赛 by hzwer
2015年10月04日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...
- 小奇模拟赛9.13 by hzwer
2015年9月13日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿(explo) [题目背景] 小奇要开采一些矿物,它驾驶着一台带有钻头(初始能力值w)的飞船,按既定路线依次飞 ...
- PKUSC 模拟赛 day1 下午总结
下午到了机房之后又困又饿,还要被强行摁着看英文题,简直差评 第一题是NOIP模拟赛的原题,随便模拟就好啦 本人模拟功力太渣不小心打错了个变量,居然调了40多分钟QAQ #include<cstd ...
- [GRYZ]寒假模拟赛
写在前面 这是首次广饶一中的OIERS自编自导,自出自做(zuo)的模拟赛. 鉴于水平气压比较低,机(wei)智(suo)的WMY/XYD/HYXZC就上网FQ下海找了不少水(fei)题,经过他们优( ...
- BZOJ2741: 【FOTILE模拟赛】L
2741: [FOTILE模拟赛]L Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 1170 Solved: 303[Submit][Status] ...
随机推荐
- ubuntu下编译VLC源码
http://blog.csdn.net/beitiandijun/article/details/9225591ubuntu下编译VLC源码 分类: 视频处理 2013-07-02 17:33 57 ...
- ci框架中model简单的mysql操作
<?php class SingerModel extends CI_Model { function SingerModel() { //会将数据库对象赋值给CI_Controller的db属 ...
- Java 基础入门随笔(5) JavaSE版——函数重载
1.函数 函数就是定义在类中具有特定功能的一段独立小程序,也称为方法. 定义函数的格式: 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,...) { ...
- dutacm.club_1094_等差区间_(线段树)(RMQ算法)
1094: 等差区间 Time Limit:5000/3000 MS (Java/Others) Memory Limit:163840/131072 KB (Java/Others)Total ...
- CAD梦想看图6.0安卓版详情介绍
下载安装 MxCAD6.0(看图版).2018.10.22更新,扫描下面二维码,安装CAD梦想看图: 下载地址: http://www.mxdraw.com/help_8_20097.html 软 ...
- vue学习总结(简单介绍)
声明式渲染 Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统: <div id="app"> {{ message }} < ...
- 00Extensible Markup Language
Extensible Markup Language XML(Extensible Markup Language)可扩展标记语言是用来网络数据的组织结构,传输及存储.
- Intel要在中国投35亿美金造这种闪存,3DxPoint技术牛在哪里?
Repost: https://www.leiphone.com/news/201508/bbCUJqS2M3glCY3m.html 编者按: 今年的IDF上,Intel 再次强调了3DxPoint闪 ...
- Maven 项目debug调试时报Source not found.异常
正如异常描述,那么解决方法当然是指定源码. 测试于:Maven 3.0.5, eclipse-jee-indigo-SR2-win32 异常信息: Source not found. 解决方法: 首先 ...
- linux下C/C++程序的内存布局
内核空间和用户空间: 我们在编写程序时使用的内存空间叫虚拟内存,程序在运行时,要完成虚拟内存到物理内存的转换.假如在32位环境上,理论上我们可以使用的虚拟内存空间是4GB,但实际上这4GB并不能完全给 ...