鸣谢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考试题的更多相关文章

  1. POI 2018.10.20

    [POI2005]BANK-Cash Dispenser 有多少个4位字符串是所有操作序列的子串. 10^4枚举字符串.暴力判断会TLE 发现,我们就是在每个操作序列中不断找第一个出现的c字符. 预处 ...

  2. 【luogu P1666 前缀单词】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1666 10.13考试题 当时没想出来,觉得是要用trie做,在trie上跑一个树形dp 结果是写了个子集枚举 ...

  3. kma 2019CSP前刷题记录

    2019/10/25 \([LNOI2014]\ LCA\) \([Luogu\ P2774]\) 方格取数问题 \(Gauss\)消元板 \([JSOI2008]\)球形空间产生器 2019/10/ ...

  4. 我的这10年——从机械绘图 到 炼油 到 微软MVP 的华丽转身

    年底了,各种总结计划满天飞,有空的时候我也一直在思考这么多年,是怎么过来的.也曾经很迷茫,希望经验和经历能给大家一点带来一点正能量的东西.10年很长,10年前说实话我没有思考过现在的样子,但10年前的 ...

  5. 20162330 第10周 MySort实验

    关于MySort的进一步实践 课堂作业题目如下: 模拟实现Linux下Sort -t : -k 2的功能.参考Sort的实现.提交码云链接和代码运行截图. import java.util.*; pu ...

  6. 中期linux课程考试题

    [口头表达] 1)请描述你了解的磁盘分区的相关知识2)什么是rsync,你有什么生产环境的应用?3)在生产环境中,公司的IDC机房即将超过254台机器,请问你有什么解决方案来规划扩展IDC机房的内网网 ...

  7. linux --- 10.常见命令

    1.在登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么()A.NID B.PID C.UID C.CID 2.下面那个用户存放用户密码信息()A./boot B./etc ...

  8. python基础数据类型考试题

    Python基础数据类型考试题 考试时间:两个半小时                      满分100分(80分以上包含80分及格) 一,基础题. 1,简述变量命名规范(3分) 2,字节和位的关系 ...

  9. python学习之老男孩python全栈第九期_第一次周末考试题(over)第三次添加完毕

    day 6python基础数据类型考试题 考试时间:两个半小时 满分100分(80分以上包含80分及格) 一,基础题. 1. 简述变量命名规范(3分) 答:(1) 变量为数字,字母以及下划线的任意组合 ...

随机推荐

  1. 侯捷STL学习(七)--深度探索vector&&array

    layout: post title: 侯捷STL学习(七) date: 2017-06-13 tag: 侯捷STL --- 第十六节 深度探索vector vector源码剖析 vector内存2倍 ...

  2. Java Swing 如何让窗体居中显示

    如题,其他不多说,直接上代码! package com.himarking.tool; import java.awt.Toolkit; import javax.swing.JFrame; @Sup ...

  3. Javascript 面向对象(一):封装

    Javascript 面向对象编程(一):封装 Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP)语言, ...

  4. LookupError: unknown encoding: cp65001解决办法

    一.之前手上做的一个web项目,漏洞频发,服务器用的是菜鸟云服务器,那个应急响应中心不错,想不到乌云倒了,白帽子竟然被阿里系养了,题外话了,首先感谢白帽子提的漏洞,同时也感慨自己安全知识,以及意识的薄 ...

  5. -bash : ** : command not found的问题解决(图文详解)

    问题来源 我不小心,配置错了,少了个export和PATH没配对.   source /etc/profile 之前一定要留心,否则出错让你后悔去! 问题导致现象1 问题导致现象2 解决办法 按e键, ...

  6. StackMapTable format error

    环境:Oracle Java 7 , Mac OSX 报错如上图所示,主要是 Caused by: java.lang.ClassFormatError: StackMapTable format e ...

  7. Solr搜索的排序打分规则探讨

    使用Solr搭建搜索引擎很容易,但是如何制定合理的打分规则(boost)做排序却是一个很头痛的事情.Solr本身的排序打分规则是继承自Lucene的文本相关度的打分即boost,这一套算法对于通用的提 ...

  8. 关联映射、关联查询【重点掌握一条SQL语句的那种方法】

    1 什么叫关联映射 通过数据库对象之间的关联关系(一对一.一对多.多对多),反映到实体对象上之间的引用. 举例 用户实体类(User):user_id user_name user_token 笔记本 ...

  9. Luogu 3911 最小公倍数之和

    感觉自己被早上的名校协作体和下午的数学题虐哭了,每天为自己的菜发愁…… 发现$a_{i}$很小,开一个桶记一下每个数 出现的个数,设$c_{i} = \sum_{j = 1}^{n}(a_{j} == ...

  10. WOJ 43 电话邀请

    并查集缩点这个trick感觉明明用得很广泛,为什么以前都不知道…… 先把$m$条线路从小到大排个序,这样可以保证之前合并出来的一定是最小的,大的代价不会把小的覆盖掉. 维护两个并查集,一个用来缩点,另 ...