SDU暑期集训排位(2)
A. Art
solved by sdcgvhgj 3min
签到
B. Biology
solved by sdcgvhgj 85min
暴力
C - Computer Science
solved by rdc 16min
题意 数轴上有一些点,求极短长度 x,使得存在 \(n\) 个区间,第 \(i\) 个区间包含 \(a_i\),包含的点数至少 \(k\) 个。
做法
- 每个区间相互独立。
- 对点排序。
- 用 \(x_{i+k-1} - x_i + 1\) 区间更新 \([x_i,x_{i+k-1}]\)
D. Drama
solved by rdc 183min -1
题意 题目说了半天告诉了我们这是一个先升后降柱状图,升最多升一格,否则解体。
做法
- 先识破高度是 \(O(\sqrt{n})\) 级别的。
- 对列做 DP,前缀后缀分开考虑。
- \(f[i][j]\) 表示用 \(i\) 个格子最后一列高度为 \(j\) 且相邻两格高度差小于等于 1 方案数。
- \(g[i][j]\) 表示用 \(i\) 个格子最后一列高度为 \(j\) 方案数。\(g\) 需要用前缀和优化。
- 复杂度 \(O(n\sqrt{n})\)
F.Small Numbers
solved by F0_0H 28min
题意 给两个数a,b,支持两种操作,(1)同时除公因子 (2)一个除,一个乘。要求操作完a,b和最小
题解 对a,b进行素数分解,对于每个数量为奇数的素因子,暴力枚举分给a或b即可
G.New Keyboard
solved by F0_0H 158min -2
题意 按照题意打印字符串
题解
- dp[i][j][0|1] 表示当前处理到第i个字符,且在第j个机器上,且上一次操作是打印或者换机器的最优解
- 直接转移会GG,但我们可以跑最短路,每个状态最多两条边判断打印还是跳转。
- dij加个log,复杂度有点炸,但还能苟过去
I. Acute Triangles
solved by sdcgvhgj 270min +11
题意 求n个点构成的锐角三角形个数
做法
- 答案为锐角个数减\(2*C_n^3\)
- 以每个点极角排序,尺取求以每条边开始的锐角个数
- 共线的时候夹角为0,被算进去了两次,所以对于共线的两个向量应该根据长度关系安排一个顺序
- 解体了2个小时之后把long long改long double莫名其妙卡过了,其实是极角排序的精度问题,之前一直用atan2判大小其实是有问题的,先判象限然后叉乘才是正确姿势
J.Joining Arrays
solved by F0_0H 261min -3
题意 给两个序列,分别选出一个子序列,并拼成一个长度为K的序列,要求字典序最小
题解 暴力加贪心
- 暴力枚举第一个序列选t个,那么第二个序列选k-t个
- 暴力从a序列里选出长度为t且字典序最小的子序列,b同理
- 考虑合并两个子序列,归并
- 1)队首元素不相等,直接选
- 2)队首元素相等,这个比较凉,但可以通过二分加序列哈希的方式判断出下一个不相等的位置,再贪心选即可
- 用合并后的序列更新答案
SDU暑期集训排位(2)的更多相关文章
- SDU暑期集训排位(9)
SDU暑期集训排位(9) G. Just Some Permutations 基础 DP 练习部分 定义 \(f(S)\),表示让 S 中的人全 happy 的方案数. \(dp[i][j]\) 表示 ...
- SDU暑期集训排位(5)
SDU暑期集训排位(5) A. You're in the Army Now 题意 类似选志愿.每个人有 mark,有优先级从高到低的志愿. 做法 定睛一看,鲨鼻题.然后 WA. 为什么会 WA 呢? ...
- SDU暑期集训排位(4)
SDU暑期集训排位(4) C. Pick Your Team 题意 有 \(n\) 个人,每个人有能力值,A 和 B 轮流选人,A 先选,B 选人按照一种给出的优先级, A 可以随便选.A 想最大化己 ...
- SDU暑期集训排位(8)
A. A Giveaway 签到 B. Game of XOR 做法 dp[G][L][R]表示在倒数第G代,左边的数是L,右边的数是R,下面共有多少个0和1 区间和转换成两次前缀和和一次单点查询 利 ...
- SDU暑期集训排位(3)
B. Mysterious LCM 做法 保留 \(a_i|x\) 的元素,其它元素解体. \(a_i\) 的某个质因子的指数,要和 \(x\) 的这个质因子一样多,才有贡献,否则这个质因子它在划水啊 ...
- 2014年CCNU-ACM暑期集训总结
2014年CCNU-ACM暑期集训总结 那个本期待已久的暑期集训居然就这种.溜走了.让自己有点措手不及.很多其它的是对自己的疑问.自己是否能在ACM这个领域有所成就.带着这个疑问,先对这个暑假做个总结 ...
- 8.10 正睿暑期集训营 Day7
目录 2018.8.10 正睿暑期集训营 Day7 总结 A 花园(思路) B 归来(Tarjan 拓扑) C 机场(凸函数 点分治) 考试代码 A B C 2018.8.10 正睿暑期集训营 Day ...
- 8.6 正睿暑期集训营 Day3
目录 2018.8.6 正睿暑期集训营 Day3 A 亵渎(DP) B 绕口令(KMP) C 最远点(LCT) 考试代码 A B C 2018.8.6 正睿暑期集训营 Day3 时间:5h(实际) 期 ...
- 8.9 正睿暑期集训营 Day6
目录 2018.8.9 正睿暑期集训营 Day6 A 萌新拆塔(状压DP) B 奇迹暖暖 C 风花雪月(DP) 考试代码 A B C 2018.8.9 正睿暑期集训营 Day6 时间:2.5h(实际) ...
随机推荐
- 【Android Studio】使用 Genymotion 调试出现错误 INSTALL_FAILED_CPU_ABI_INCOMPATI
RT -- 解决方法参考: https://my.oschina.net/u/242764/blog/375909 http://blog.csdn.net/wjr2012/article/detai ...
- 简易数据分析 08 | Web Scraper 翻页——点击「更多按钮」翻页
这是简易数据分析系列的第 8 篇文章. 我们在Web Scraper 翻页--控制链接批量抓取数据一文中,介绍了控制网页链接批量抓取数据的办法. 但是你在预览一些网站时,会发现随着网页的下拉,你需要点 ...
- div 环形排列
javascript-按圆形排列DIV元素(一)---- 分析 效果图: 一.分析图: 绿色边框内:外层的DIV元素,相对定位; 白色圆形框:辅助分析的想象形状; 白点:为白色圆形的圆心点,中心点,点 ...
- 开启java之门
一.Java语言概述 Java语言诞生于1995年,由Sun公司推出. 2009年,Sun公司被甲骨文公司收购,所以我们现在访问oracle官网即可:https://www.oracle.com Ja ...
- Python中input()的使用方法
input()以字符串的方式获取用户输入: >>> x = input() 4.5 >>> type(x) <class 'str'> >> ...
- 常量Const
常量Const YEAR = 2019 # 全部大写的变量名为常量 注释 给不能理解的写一个描述 便于理解 增强可读性 三种形式 单行(当行)注释:# 只注释一行 不能换行 注释的代码不执行 不使用 ...
- PCB学习总结
一.电子设计流程概述:项目立项------元件创库----------原理图设计-----------封装绘制-------pcb设计--------生产文件的输出--------pcb文件加工 二. ...
- 5.MySQL数据库操作步骤
第一步:登录到MySQL服务器 第二步:选择当前要操作的数据库 第三步:设置请求和返回数据的字符集 第四步:执行SQL语句 l 增加记录:INSERT INTO news(title,content) ...
- mysql根据逗号将一行数据拆分成多行数据
mysql根据逗号将一行数据拆分成多行数据 原始数据 处理结果展示 DDL CREATE TABLE `company` ( `id` ) DEFAULT NULL, `name` ) DEFAULT ...
- Entity Framework 6.0 入门系列 第一篇
Entity Framework 6.0 入门系列 第一篇 好几年前接触过一些ef感觉不是很好用,废弃.但是 Entity Framework 6.0是经过几个版本优化过的产物,性能和功能不断完善,开 ...