10.11cdy考试题
鸣谢cdy
math
【题目描述】
众所周知, xkj是GH的得意门生, 可是xkj的数学成绩并不是很理想; 每次GH在批评完数学限训做的差的人时, 总会在后面加一句:咱们班还有一位做的最差的同学——xkj,你看看你还有对号吗, 居然比CDY做的还差; xkj只好暗想: 我也很无奈啊,我已经很努力了啊;这次为了不挨批, xkj将他的数学题抛给了正在学oi的你;
【题目描述】
Xkj得到了n个硬币,每个硬币都有一个面值a[i];GH又给了他一个幸运数字(给了m次); 现在可以进行以下的转换; kj可以选择一个比k大的硬币i, 将a[i]-1;选择i左边或右边的硬币;将其+1; 经过数次变换之后问最大可以形成多长的一个连续硬币区间;使得每个硬币价值都不小于k;
【输入格式】
第一行两个整数 n , m 代表数组长度和询问个数。接下来一行, 第 i 个正整数表示 ai 。第三行 M 个正整数, 第 i 个正整数表示第 i 次询问的 k 。
【输出格式】
对于每个询问, 输出一个整数表示问题的答案。
【样例输入】
5 6
1 2 1 1 5
1 2 3 4 5 6
【样例输出】
5 5 2 1 1 0
【数据范围】
对于 20% 的数据, n≤10。
对于 40% 的数据, n≤1000。
对于 50% 的数据, n≤100000。
对于 100% 的数据, n≤1000000, m≤20, ai≤10^9, k≤10^9。
请选手注意自己的常数。
【题解】
题目描述很逗(注:是真人真事)
显然一个合法的区间的区间平均数大于等于询问的数字。不证。
对于每次询问,可以把所有数字减去询问的k,然后取一个前缀和操作,我们现在要求的是使得s[i]-s[j]>=0的最大的i-j。
对于左端点j,我们可以直接求出一个单调递减的下标数列代表左端点,至于怎么求,暴xjb力求一下就行了。
对于右端点i,我们每次可以找出对应的使得s[i]>=s[j]的最靠左的左端点j(所以这就是为啥我们要维护单调递减的数列),让右端点i从右往左扫,左端点j的初位置在单调数列的最右侧,这样我们的i在向左扫的过程中,j就不用向右扫了(因为向右扫之后肯定不会更新答案,不扫也不会更新),所以单次询问就是线性的了。
business
【题目背景】
Cdy, xkj, wzy师徒三人看到lsq, gxt等人做起生意, 赚起钱来, 不由得心里多了几分着急, 凭什么别人能赚钱而我却不能; 于是 师徒三人 凑在一起开始商讨 从商大计 有出资的 有出技术的有出场地的 ; 但师徒三人想在公司成立之间了解观察一下股市的情况, 他们有比较忙 就将任务交给了你来完成祝你好运;
【题目描述】
每天的股票都有一个初始值a[i];由于股市会有所波动 所以会有两种政令
1.对于一段区间l~r,将这段区间内所有股票值加上k;
2.对于一段区间l~r,将这段区间内所有股票值变为【a[i]/k】 ; (向下取整)
为了检验你的完成情况他们会对你有两种询问形式
3.给定l, r, 询问min(a[i])(i->l~r);(区间最小值)
4.给定l, 人, 询问sum(a[i])(i->lr);(lr)的区间和
【输入格式】
第一行为两个空格隔开的整数 n,q 分别表示所涉及的股票天数个数和政令 + 询问个数。
第二行包含 n 个由空格隔开的整数 a[1]∼a[n]
接下来 q 行, 每行表示一个操作, 第一个数表示操作编号 1∼4 ,
接下来的输入和问题描述一致。
即 op, l, r若op=1; 还会有一个x;
【样例输入】
10 10
-5 -4 -3 -2 -1 0 1 2 3 4
1 0 4 1
1 5 9 1
2 0 9 3
5
3 0 9
4 0 9
3 0 1
4 2 3
3 4 5
4 6 7
3 8 9
【样例输出】
-2
-2
-2
-2
0
1
1
【数据范围】
对于 30% 的数据, n,q≤10^3 ;
对于100%的数据1≤n,q≤105,1≤l≤r≤n,c∈[-104,104],k∈[2,109];
【题解】
不难看出这是一道线段树。
区间+,区间sum,区间min都是简单的,最关键是这个区间divfloor。
我们再维护一个区间max。
对于一个区间,我们对它进行区间div时,查询max和min注意要O(1)。
假设div的是k,那么对max进行divk的操作就相当于减去这个数:\displaystyle max-\left\lfloor\frac {max}k\right\rfloor
对min的也类似:\displaystyle min-\left\lfloor\frac {min}k\right\rfloor。如果这两个值相等,那么整个区间减去的数就相同了,维护一个区间减即可。
如果不同,就递归下去(就像自适应Simpson一样)
注意卡常,区间减要直接原地做减法,各种卡常才能过,一开始tmd最大的点跑几百秒,最后卡了好几次才卡进2秒,感谢各位同学的代码参考。。。
dance
【题目描述】
最近xkj沉迷于透彻无法自拔,无聊的他他又开始学起了跳舞(为了更好地找妹子吗)xkj有比较奇特他不喜欢在平地上跳舞, (哎, 有障碍才刺激啊) 于是他在一片狼藉的地上跳起了他的八字小舞; 但是同时他又想考考你, 你当然可以回答出所有问题
【题目描述】
此片土地的大小为n*m, (当然包括障碍)初始时xkj在某一个位置;Xkj在某一个时间段(L1,R1)内会向x1行动,时间段(L2,R2)内会向x2行动, 以此类推总共有T个时间段, 并且所有时间段均满足L[i+1]=R[i]+1,L[1]=1;其中x1,x2,……xT均为上下左右(东南西北)的一种;为了使xkj不撞到障碍你可以耗费一点能量让他不动,(当然是因为不能撞死他啦, 虽然他很爱fb);问xkj在R[T]这个时刻内最多能移动多远的距离(你耗费能量定住他时, 他边不会移动);
【输入格式】
输入文件的第一行包含5个数n, m, x, y和T。 N和M描述舞厅的大小,x和y为xkj的初始位置;以下n行, 每行m个字符。 第i 行第j 列的字符若为‘. ’ , 则表示该位置是空地; 若为‘x ’ , 则表示有障碍。以下T行, 顺序描述T个时间段, 格式为: Li Ri di(1 ≤ i ≤ T)。 表示在时间区间[Li, Ri]内, xkj向di方向移动。 di为1, 2, 3, 4中的一个, 依次表示北、 南、 西、 东(分别对应矩阵中的上、 下、 左、 右) 。
【输出格式】
输出文件仅有1行, 包含一个整数, 表示xkj滑行的最长距离(即格子数)。
【样例输入】
4 5 4 1 3
..xx.
.....
...x.
.....
1 3 4
4 5 1
6 7 3
【样例输出】
3
【数据范围】
对于50%的数据, 1≤n m≤200, T≤200; 对于100%的数据, 1≤n,m≤200, t[n]≤40000。
【题解】
这道题原题是[NOI2005]瑰丽华尔兹,本来是单调队列优化dp,但是数据水,所以直接dp的复杂度是O(能过)//对于某些lrt大佬就是卡了
设f[i][x][y]为到第i个时间段的末尾,坐标在(x,y)最长距离。这里为了卡常我们刷表(推表):用f[i-1][x][y]推f[i][nx][ny],(nx,ny)为(x,y)在第i时段的方向能到达的所有点(不超时并且不撞墙的点)。dp取max转移即可。
单调队列优化不会,反正NOIP应该不考。
cdy的题真是难(省选知识点。。。话说我的数学题???NOIP考什么数学 小凯的疑惑。。。)
10.11cdy考试题的更多相关文章
- POI 2018.10.20
[POI2005]BANK-Cash Dispenser 有多少个4位字符串是所有操作序列的子串. 10^4枚举字符串.暴力判断会TLE 发现,我们就是在每个操作序列中不断找第一个出现的c字符. 预处 ...
- 【luogu P1666 前缀单词】 题解
题目链接:https://www.luogu.org/problemnew/show/P1666 10.13考试题 当时没想出来,觉得是要用trie做,在trie上跑一个树形dp 结果是写了个子集枚举 ...
- kma 2019CSP前刷题记录
2019/10/25 \([LNOI2014]\ LCA\) \([Luogu\ P2774]\) 方格取数问题 \(Gauss\)消元板 \([JSOI2008]\)球形空间产生器 2019/10/ ...
- 我的这10年——从机械绘图 到 炼油 到 微软MVP 的华丽转身
年底了,各种总结计划满天飞,有空的时候我也一直在思考这么多年,是怎么过来的.也曾经很迷茫,希望经验和经历能给大家一点带来一点正能量的东西.10年很长,10年前说实话我没有思考过现在的样子,但10年前的 ...
- 20162330 第10周 MySort实验
关于MySort的进一步实践 课堂作业题目如下: 模拟实现Linux下Sort -t : -k 2的功能.参考Sort的实现.提交码云链接和代码运行截图. import java.util.*; pu ...
- 中期linux课程考试题
[口头表达] 1)请描述你了解的磁盘分区的相关知识2)什么是rsync,你有什么生产环境的应用?3)在生产环境中,公司的IDC机房即将超过254台机器,请问你有什么解决方案来规划扩展IDC机房的内网网 ...
- linux --- 10.常见命令
1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么()A.NID B.PID C.UID C.CID 2.下面那个用户存放用户密码信息()A./boot B./etc ...
- python基础数据类型考试题
Python基础数据类型考试题 考试时间:两个半小时 满分100分(80分以上包含80分及格) 一,基础题. 1,简述变量命名规范(3分) 2,字节和位的关系 ...
- python学习之老男孩python全栈第九期_第一次周末考试题(over)第三次添加完毕
day 6python基础数据类型考试题 考试时间:两个半小时 满分100分(80分以上包含80分及格) 一,基础题. 1. 简述变量命名规范(3分) 答:(1) 变量为数字,字母以及下划线的任意组合 ...
随机推荐
- java基础知识(15)----StringBuffer与StringBuilder
StringBuffer字符串缓冲区: 构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符.特点:1:可以对字符串内容进行修改.2:是一个容器.3:是可变长度的.4:缓冲区中可以存储任意类型 ...
- python学习笔记(一):python简介和入门
最近重新开始学习python,之前也自学过一段时间python,对python还算有点了解,本次重新认识python,也算当写一个小小的教程.一.什么是python?python是一种面向对象.解释型 ...
- vue实用难点讲解
此篇文章是我基于研究vue文档三遍的基础上,觉得还有点难理解或者难记的知识点总结 列表渲染 1.渲染组件必须加key,并且属性是手动传递给组件的 <my-component v-for=&quo ...
- ffmpeg: ‘UINT64_C’ was not declared in this scope (转)
ffmpeg 默认是用C文件来编译的,如果某个CPP文件想引用ffmpeg中的某些函数或者头文件,有可能出现 ‘UINT64_C’ was not declared in this scope的错误 ...
- ava的打包jar、war、ear包的作用、区别、打包方式
编为大家介绍,基于Java的打包jar.war.ear包的作用与区别详解.需要的朋友参考下以最终客户的角度来看,JAR文件就是一种封装,他们不需要知道jar文件中有多少个.class文件,每个文件中的 ...
- 【总结整理】json数据请求简化版理解(祺哥的成果)
在同源js目录下新建.txt文件 { "news":[ {"title":"审计管理","time":"201 ...
- 解决swfupload改变display属性后flash重新加载的问题(chome,safari内核的所有浏览器)
最近在做的项目中有要用到上传控件,所有就用到了swfupload flash上传控件 因为在项目中要使用到Tab控件,tab控件通过改变display属性来控制tab页的显 示与隐藏.当swfuplo ...
- 服务机器人的小脑——SLAM技术
博客转载自:https://www.leiphone.com/news/201706/DZlMscTwdIzFyodg.html 雷锋网(公众号:雷锋网)按:本文作者SLAMTEC(思岚科技公号sla ...
- python 获取路径不同方法的比较
在软件中经常需要获取文件所在路径,方法有很多种( 例如 os.path.realpath(__file__), os.getcwd(), os.path.abspath(__file__), sys ...
- python3-list列表增删改查合并排序
# Auther: Aaron Fan names = ["aaron", "alex", "james", "meihengfa ...