传送门

写在前面:为了保护正睿题目版权,这里不放题面,只写题解。


“怎么大家一个暑假不见都变菜了啊。”——蔡老板


  • A

考虑一个\(nk^2\)的dp,按\(w_i\)排序,则每个组长只能匹配排在他前面的组员,每个组员也只能等待排在他后面的组长。

设\(f_{i,j,l}\)表示前\(i\)个人,配好了\(j\)对,有\(k\)个组员等待匹配的最优解,直接dp即可。

注意到\(2k>n\)时一定无解,因此\(O(nk^2)=O(nk\cdot\min(n,k))\leq O(nk\sqrt{nk})\)。

另外一种做法是状态中不记录配好了多少对,而是直接wqs二分出每配成一对减免的补偿值,使得最优情况下恰好配成\(k\)对,时间复杂度\(O(nk\log a)\)。

无论哪种方法都需要注意排序时\((p_i=)2<3<1\)。(否则就会wa飞)


  • B

比较显然的一点是行和列是独立的。可以分别哈希出每行、列代表的字符,从而算出按照行、列划分时的答案,相乘即可。

由回文串的性质可以证明(猜出),\([l,r]\)可能成为答案的充要条件是\([1,r]\)和\([l,n]\)均能成为答案。两种是对称的,分别计算即可。

用\(\text{manacher}\)(二分哈希)算出以每个空隙为对称中心的最长回文串,假设已经算出\(j\in[1,i-1]\)的每一个\([j,n]\)是否可行,\([i,n]\)可行的充要条件是存在一个可行的\([k,n]\)使得以\((i-1,i)\)为对称中心的最长回文串可以覆盖到\(k\),显然这个\(k\)取合法的最大值最优。


  • C

两种部分分都很好做,维护一个懒标记即可。

考虑整体\(+1\)反映到二进制上的表现。设\(x\)的二进制位从低到高分别为\(a_0,a_1,…,a_{29}\),则\(+1\)后的表现为:找到最低的\(i\),使得\(a_0,a_1,…,a_{i-1}=1,a_i=0\),将\(a_0,…,a_i\)全部翻转。

如果将每个数倒着插入trie中(即从低位到高位插入),那么每次都是交换一条从根到叶子的链的每个节点的左右儿子,根据异或懒标记决定这条链的走向即可。

最新文章

  1. ATM-PROGRAM 关于Proprties的问题
  2. ActiveMQ
  3. Linux0.11内核--加载可执行二进制文件之2.change_ldt
  4. Failed to connect to database. Maximum number of conections to instance exceeded
  5. C#委托全解析
  6. Git版本控制
  7. ZOJ题目分类
  8. iOS实用技能扩展-静态库的制作与简单使用
  9. ubuntu 文件readonly的问题: W10: Warning: Changing a readonly file 解决办法
  10. 无法识别的配置节 applicationSettings
  11. springAOP 的pointcut
  12. redis缓存的安装和配置
  13. caffe简单介绍
  14. String-StringBuffer-StringBuilder的区别和源码分析
  15. [ZJOI2019]线段树
  16. 搭建vsf
  17. git使用方法----如何利用git管理代码?如何使用git将代码传到github中去
  18. LeetCode--No.002 Add Two Numbers
  19. csvwrite
  20. ABAP 编程

热门文章

  1. pip安装报错:Fatal error in launcher: Unable to create process using &#39;&quot;&#39;
  2. Git-Runoob:Git 基本操作
  3. ftp4j揭示java.net.SocketException: Connection reset的解决
  4. nginx排查502错误
  5. 《Using Databases with Python》Week3 Data Models and Relational SQL 课堂笔记
  6. windows 使用Docker Desktop 使用国内镜像
  7. 【计算机视觉】HDR之tone mapping简介
  8. python 并发编程 多进程 互斥锁 目录
  9. C语言Ⅰ博客作业02
  10. (4.25)Sqlserver中 登录用户只能看到自己拥有权限的库