SDU暑期集训排位(4)


C. Pick Your Team

题意 有 \(n\) 个人,每个人有能力值,A 和 B 轮流选人,A 先选,B 选人按照一种给出的优先级,
A 可以随便选。A 想最大化己方能力值。

做法

  • 划分方案合法的充要条件:任何前缀中,\(被 B 选择的人 - 被 A 选择的人 > -1\)
  • 考虑 DP,\(dp[i][j]\) 表示考虑前 \(i\) 个人,\(j\) 个人被 B 选择了,A 和 B 最大分差。
  • 考虑转移,枚举 \(i+1\) 个人归属即可。

D. Piece of Cake

题意 一个凸多边形上随机选k个顶点,求构成的凸多边形的面积的期望
做法

  • 看成总面积减去一些由连续的几个点组成的多边形的面积
  • 由x个点组成的多边形被减去的概率为\(\frac{C_{n-x}^{k-2}}{C_n^k}\)
  • 这个概率要先约一约再算,而且要乘除交替计算,否则会爆精度
  • 没注意复杂度T两发实属智障

E.Busy Board

题意

做法

各种特判套在一起就行了,无法用语言描述


F. It's a Mod, Mod, Mod, Mod World

题意 求 \(\sum_{i=1}^{n}[pi\%q]\)

做法

  • GCD 的经典应用。
  • \(\sum_{i=1}^{n}[pi\%q] = \sum_{i=1}^{n} (pi-[\frac{pi}{q}]q)=(\sum_{i=1}^{n}pi)-q(\sum_{i=1}^{n}[\frac{pi}{q}])\)
  • 只需求 \(f(n,p,q)=\sum_{i=1}^{n}[\frac{pi}{q}]\)
  • 若 \(p\geq q\) 可递归到 \(f(n,p\%q,q)\)
  • 若 \(p<q\) 可枚举 \(x\),统计 \([\frac{pi}{q}]\geq x\) 的 \(i\) 方案数,即可交换 \(p,q\)
  • 更详细介绍见2009年论文 金斌《欧几里得算法的应用》

G.Monotony

题意 给定一个矩阵,问其有多少个子矩阵满足行列单调性

题解

  • 枚举选哪些行
  • 特判哪些列在选了这些行之后是合法的
  • 考虑到,只选两列就能确定行的单调性,所以可以\(DP\)
  • \(DP[mask][j]\) : 选了第\(j\)列,并且行的单调性为\(mask\)的方案数
  • 然后枚举下一个\(k\),往后转移即可

I.Intersecting Rectangles

题意 给定n个矩形,问是否有交

做法

  • 扫描线
  • 从小到大枚举横坐标,如果是矩形左边界,查询上下边界内是否有点被标记,有的话直接输出yes,否则把上下边界打上标记,如果是右边界,消去边界
  • 然后交换x,y坐标,再来一次

J. Cutting Strings

upsolved

题意 给一个字符串,可以截取下 \(k\) 段,使得字典序最大。

做法

  • idea 比较简单,逐位考虑,我们先想让 'z' 字符的前缀尽可能长,以此为前提接下来想让之后的 'y' 尽可能长........
  • 递归地求解 \(solve(pos,k,ch)\),在 \(suffix(pos)\) 中,我们想构造尽可能长的 ch 前缀,至多可以切 \(k\) 刀。
    • 如果 s[pos] = ch,第一段连续的 ch 一定可以拿,我们可以递归到 \(solve(nex,k,ch)\),\(nex\) 为下一个不为 ch 的位置。
    • 否则,考虑连续的 ch 的段,设这些段分别为 \([l_1,r_1],[l_2,r_2]....[l_m,r_m]\)
      • 如果 \(k \geq m\),那么这些 \(suffix(pos)\) 中所有的 \(ch\) 都可以加入到答案中,递归到 \(solve(r_m + 1, k-m, ch-1)\)
      • 否则,我们可以在这 \(m\) 段中,枚举最后一个区间的位置,堆维护前 \(k-1\) 大值,再枚举最后一个区间的位置,在可能成为答案的后缀中挑选字典序最大的即可。

code


K. Subsequences in Substrings

做法 序列自动机,预处理位置 \(x\) 下一个字符 \(ch\) 在哪,枚举起点,然后往后跳。复杂度 \(O(|S|*|T|)\)


M. XOR Sequences

upsolved
题意 给定\(p_0,p_1,...,p_{2^m-1}\)求有多少长度为n的序列\({x}\)满足\(p_i=argmax\ i⊕x_j\)
做法

  • 考虑从顶向下建x的trie树
  • 对于当前点,如果左树和右树的每个元素对应相等,那么只有左儿子或者只有右儿子,答案乘2,然后递归建左儿子或右儿子
  • 不是对应相等的话说明既有左儿子又有右儿子,需要左树和右树的元素没有交集,然后递归建左儿子和右儿子
  • 此题原榜过穿了,是个简单题,就是看起来很吓人
  • 当时一看就没思路,其实算下样例也就会了

SDU暑期集训排位(4)的更多相关文章

  1. SDU暑期集训排位(9)

    SDU暑期集训排位(9) G. Just Some Permutations 基础 DP 练习部分 定义 \(f(S)\),表示让 S 中的人全 happy 的方案数. \(dp[i][j]\) 表示 ...

  2. SDU暑期集训排位(5)

    SDU暑期集训排位(5) A. You're in the Army Now 题意 类似选志愿.每个人有 mark,有优先级从高到低的志愿. 做法 定睛一看,鲨鼻题.然后 WA. 为什么会 WA 呢? ...

  3. SDU暑期集训排位(8)

    A. A Giveaway 签到 B. Game of XOR 做法 dp[G][L][R]表示在倒数第G代,左边的数是L,右边的数是R,下面共有多少个0和1 区间和转换成两次前缀和和一次单点查询 利 ...

  4. SDU暑期集训排位(3)

    B. Mysterious LCM 做法 保留 \(a_i|x\) 的元素,其它元素解体. \(a_i\) 的某个质因子的指数,要和 \(x\) 的这个质因子一样多,才有贡献,否则这个质因子它在划水啊 ...

  5. SDU暑期集训排位(2)

    A. Art solved by sdcgvhgj 3min 签到 B. Biology solved by sdcgvhgj 85min 暴力 C - Computer Science solved ...

  6. 2014年CCNU-ACM暑期集训总结

    2014年CCNU-ACM暑期集训总结 那个本期待已久的暑期集训居然就这种.溜走了.让自己有点措手不及.很多其它的是对自己的疑问.自己是否能在ACM这个领域有所成就.带着这个疑问,先对这个暑假做个总结 ...

  7. 8.10 正睿暑期集训营 Day7

    目录 2018.8.10 正睿暑期集训营 Day7 总结 A 花园(思路) B 归来(Tarjan 拓扑) C 机场(凸函数 点分治) 考试代码 A B C 2018.8.10 正睿暑期集训营 Day ...

  8. 8.6 正睿暑期集训营 Day3

    目录 2018.8.6 正睿暑期集训营 Day3 A 亵渎(DP) B 绕口令(KMP) C 最远点(LCT) 考试代码 A B C 2018.8.6 正睿暑期集训营 Day3 时间:5h(实际) 期 ...

  9. 8.9 正睿暑期集训营 Day6

    目录 2018.8.9 正睿暑期集训营 Day6 A 萌新拆塔(状压DP) B 奇迹暖暖 C 风花雪月(DP) 考试代码 A B C 2018.8.9 正睿暑期集训营 Day6 时间:2.5h(实际) ...

随机推荐

  1. c&c服务器(command and control server)

    远程命令和控制服务器,目标机器可以接收来自服务器的命令,从而达到服务器控制目标机器的目的.该方法常用于病毒木马控制被感染的机器.

  2. 【iOS】The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods install

    从 github 下载的项目经常会遇到这个问题, 如图所示: 参考: iOS 'The sandbox is not sync with the Podfile.lock'问题解决 尚未解决…………

  3. IO流的Properties集合,序列化流与反序列化流,打印流及commons-IO

    内容介绍 Properties集合 序列化流与反序列化流 打印流 commons-IO Properties类 Properties类介绍 Properties 类表示了一个持久的属性集.Proper ...

  4. Vmware Exsi使用简要说明

    界面介绍 Exsi的管理工具可以用vSphere Client来管理虚拟机.管理虚拟的网络交换机.管理物理机的内存.物理机的硬盘.物理机的CPU等资源.界面的大致介绍如下图. 资源分配 创建内存.CP ...

  5. 的Blog

    作者:Ovear链接:https://www.zhihu.com/question/20215561/answer/40316953来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  6. oracle的自增序列

    因为oracle中的自增序列与mysql数据库是不一样的,所以在这里唠嗑一下oracle的自增序列 1. 创建和修改自增序列 --创建序列的语法 -- create sequence [user.]s ...

  7. 比特平面分层(一些基本的灰度变换函数)基本原理及Python实现

    1. 基本原理 在灰度图中,像素值的范围为[0, 255],即共有256级灰度.在计算机中,我们使用8比特数来表示每一个像素值.因此可以提取出不同比特层面的灰度图.比特层面分层可用于图片压缩:只储存较 ...

  8. 2019最新最全Java开发面试常见问题答案总结

    2019最新最全Java开发面试常见问题答案总结 马上准备9月份出去面试Java开发,自己学习丢西瓜捡芝麻,学了的都忘了,所以有机会自己做个学习笔记,摘录自各个博文以及总结. 1.JAVA面向对象的特 ...

  9. 深入浅出Apriori关联分析算法(一)

    在美国有这样一家奇怪的超市,它将啤酒与尿布这样两个奇怪的东西放在一起进行销售,并且最终让啤酒与尿布这两个看起来没有关联的东西的销量双双增加.这家超市的名字叫做沃尔玛. 你会不会觉得有些不可思议?虽然事 ...

  10. 【KakaJSON手册】05_JSON转Model_05_动态模型

    在上一篇文章中提到:有时候服务器返回的某个字段的内容类型可能是不确定的 当时给出的解决方案是实现kk_modelValue或者kk_didConvertToModel方法,根据实际需求自定义JSON的 ...