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)

原文地址:https://www.cnblogs.com/FST-stay-night/p/11260299.html

时间: 2024-10-28 11:46:18

SDU暑期集训排位(2)的相关文章

SDU暑期集训排位(6)题解

L - Olympiad Training $FWT$.首先,观察到$n$很小,我们可以想办法求出每个子集的答案,但是$m$很大,直接枚举子集的方法肯定行不通.不妨考虑对每个$topic$单独考虑贡献,设当前考虑的是第$j$个$topic$,然后枚举最大值,设$a_{ij}$为最大值,其他的人我们只能选比它小的,设我们能选出的最大的集合为$mask$,显然,对于$mask$子集$s$,如果$s$包含第$i$个人,答案就需要加上$a_{ij}$,如果不包含,它的最大值就为其他值,我们不妨分两步完成

2014年CCNU-ACM暑期集训总结

2014年CCNU-ACM暑期集训总结 那个本期待已久的暑期集训竟然就这样的,溜走了.让自己有点措手不及,更多的是对自己的疑问,自己能否在ACM这个领域有所成就.带着这个疑问,先对这个暑假做个总结吧. 第一周来的时候,状态还没有融入进去,学长们也不在,就直接布置了一套题目,考察的是贪心策略.学习的时候很有激情,毕竟是期待了那么久的场景,所以大家都很认真,希望自己能够有所进步. 第二周,搜索专题.主要学习宽度优先搜索(BFS)与深度优先搜索(DFS),刚开始学比较吃力,因为自己对这方面的领悟有点迟

第二第三周暑期集训总结

##第二第三周暑期集训总结在第二第三周中,我主要看了状压DP,数位DP,树状DP的主要内容.同时,在做训练赛的过程中,发现一些知识点掌握的不好,于是又回头复习了一下,包括图的一些基本概念,最短路算法,并查集,最小生成树,图的存储方法(矩阵,邻接表(数组)).还有很关键的一件事就是参加了今年的CCPC网络选拔赛.####状压DP刚开始看的时候,我觉得状压DP很难.在恶补了位运算的知识后,我又自己敲了一遍代码,突然有一种茅塞顿开的感觉.这是我对状压DP的理解:状压DP其实也没什么深奥的,就是利用位运

2016暑期集训集中贴

暑假期间网上练习的题解将在此博客公布,具体内容见后文. 题目链接:  点我 以下是暑期集训各队员题量统计(包括赛后补的题) 2016暑期集训AcBoard(截至07-23) 总题量 5 5 7 5   10 10 10 11    63 队员名称 cf-1 cf-2 cf-3 cf-4 cf-5 模拟训练1 模拟训练2 模拟训练3 模拟训练4 模拟训练5 题量小计 cb 2 2 3 3   6 6 6 4   32 fdf 4 3 3 2   5 7 2 4   30  ctr 3 3 3 3

2015年CCNU-ACM暑期集训总结

2015年CCNU-ACM暑期集训总结 本来很早就该做个总结的,可是一直拖到今天,也就是回学校的前一天晚上才下笔,拖延症越来越严重了.为了写这篇总结,我还特意去看了下去年的,映入眼帘的是一道流水账.=_= 往事不堪回首,还是简要说说2015年暑期集训的感想吧. 又是一年暑期集训,大三狗了,还有不到两年学生生涯,想想还蛮伤感的.额,扯远了扯远了.对今年暑期集训呢,其实说实话也没什么感想,唯一的感想就是越来越发现自己弱得一逼.首先说一下多校.多校就是一个让自己受虐的地方,不是那谁说的,要在受虐中成长

题解报告(CDUT暑期集训——第三场)

题解报告(CDUT暑期集训--第三场) A - Problem A. Ascending Rating HDU - 6319 思路:单调队列板子题?(但是弱的一批的我还是不会用(有空补上 用的滑动窗口算法 按着题解的从后往前做(ps:菜是原罪 AC代码 #include<stdio.h> #include<iostream> #include<math.h> #include<algorithm> #include<string.h> #incl

【暑期集训第一场】欧拉回路 | 思维 | 数论构造 | 容斥原理 | 线段树 | 归并排序

集训1(HDU2018 Multi-University Training Contest 2) ID A B C D E F G H I J AC O O 补题 ? O ? O 代码 & 简易题解 [A]:期望? 神仙题,留坑.. [B]:?? 同\(\text{A}\) [C]:求欧拉通路条数,以及每条的路径 小学数竞里有讲过,无向图一笔画的充要条件是有零个或两个"奇点"(偶点个数不限),"奇点"在这里就是指度为奇数的点... 其实上面两种情况就分别对应

2019暑期集训感悟

为什么要参加集训? 为了心中的梦想,为了自我的突破,为了知识的学习 当我以上没睡醒,是因为我想知道我和同龄的学生差距有多大. 说下暑假多校联赛集训的感受: 1.自己太菜,为什么别人十分钟A出签到题,而我要两个小时或者整场做不出来? 2.继续学习,为什么写的时候有思路,而我表达不出来?3.自我认知,为什么别人水平很高,而自己不行? 说下暑假多校联赛集训的收获:扩展kmp,数论的一些,spfa最短路 下来我不知道该写什么,说说与集训不相关的一些 在集训一半的时候,忘了是什么个契机,我问自己一个问题,

暑期集训7/16

---恢复内容开始--- A题: 题目要求:求一个环,满足相邻的节点的和为素数,都是一开始 思路:深搜dfs,只到位数等于要求的位数,然后输出,接着回溯,只到所以情况都出来 代码: #include <stdio.h> #include <iostream> #include <string.h> #include <algorithm> #include <string> #include <queue> #include <