ZR 8.31
ZR8.31
题目链接:http://www.zhengruioi.com/contest/388
版权原因,不放题面
A
首先,排序肯定要根据工作经验排序,因为这样便于选择
之后,如果两个人工作经验相同,要尽量把只能当组员的放在前面
都可以的次之,只能当组长的放在最后
我们设\(f_{i,j,k}\)表示前\(i\)个人选择了\(j\)个组长,\(k\)个组员的方案数
转移的话就看看这个人当什么就可以了
但是要保证组员的人数时刻大于组长的人数
因为我们让组长去选择组员就能够保证满足工作经验的条件
我的错误:转移的过程中组员0不能从-1转移过来
至于时间复杂度
首先$ k \times 2 > n $肯定无解
因为保证
\(n \times k <= 10^5\)
\(k\)的最大值也只不过\(\sqrt {50000}\)
所以时间复杂度为
\(n\times k \times k\)
可以通过本题
听说可以wqs二分优化,Orz suwakow神仙
B
首先可以发现,横竖互不影响,折纸可以变成裁纸
所以方案数= 横着的方案数 * 竖着的方案数
由于计算单个方向的方案数的时候
另一个方向长度始终不会改变
所以二维的矩阵就可以通过\(hash\)压成一个维度
近下来想一维的问题该如何解决
由于两个方案不同当且仅当最后剩下的区间在原数组的位置不同
所以就变成了能否通过一些操作
使得最后数组中只有\([l,r]\)
也就是说\([l,n]\),\([1,r]\)要满足条件
这两个问题本质是相同的问题,我们只考虑第一个
我们设上一次折的位置是\(j\)
那么\(i\)这个位置合法
当且仅当
以\(i -0.5\)为中心的极长回文子串包含了\(j\)
由于本来没有\(i - 0.5\)这种下标,同一左移或者右移去表示,这个细节还是挺要命的
对于一个\(i\),如果存在一个可以折叠的位置\(j,(j < i)\)
使得
\[
i - len_i / 2 <= j
\]
\(len_i\)就是以\(i\)为中心的极长子串的长度
那么\(i\)便是合法的,很明显,我们只需要维护最大的\(j\)即可
最后前缀和维护左向右的答案
第二遍统计\([r,n]\)的时候统计答案即可
C
神仙\(01\)Trie
首先,插入删除
这个东西\(01\)Trie是可以完成的
将下来想,怎么满足+1
一个数\(x\)变为\((x + 1) \mod 2^{30}\)次方的本质
是找到最小的一个二进制位\(i\)使得\(a_i = 0\)且\(a_{1\dots i -1} = 1\)
然后把\(a_{1\dots i}\)全部取反
取反操作在Trie树上对应的就是交换左右儿子
我们要从低位向高位建Trie树
因为这样所有的应该被反转的链和子树都一定在一条链上
所以单词时间复杂度为\(log_n\)
异或操作就打\(tag\)把
注意打\(tag\)后要反转的链不一定是全\(1\)链了,而应该是全\(1\)异或tag之后的对应值
另外第一股不满足条件的也是要反转的
ZR 8.31的更多相关文章
- 详细分析 javascript 的内存分配
JavaScript语言是一门优秀的脚本语言.其中包含脚本语言的灵活性外还拥有许多高级语言的特性.例如充许构建和实例化一个对象,垃圾回 收机制(GC:Garbage Collecation).通常我们 ...
- 城市代码表mysql
只有代码: # ************************************************************ # Sequel Pro SQL dump # Version ...
- ZR#956 集合
ZR#956 集合 解法: 维护一个异或操作的懒标记,并对应的处理插入.删除和异或操作.接下来考虑如何整体加一. 考虑一个数字 $ x $ 变为 $ (x+1) \pmod {2^{30}} $ 的过 ...
- CSharpGL(31)[译]OpenGL渲染管道那些事
CSharpGL(31)[译]OpenGL渲染管道那些事 +BIT祝威+悄悄在此留下版了个权的信息说: 开始 自认为对OpenGL的掌握到了一个小瓶颈,现在回头细细地捋一遍OpenGL渲染管道应当是一 ...
- 计算机程序的思维逻辑 (31) - 剖析Arrays
数组是存储多个同类型元素的基本数据结构,数组中的元素在内存连续存放,可以通过数组下标直接定位任意元素,相比我们在后续章节介绍的其他容器,效率非常高. 数组操作是计算机程序中的常见基本操作,Java中有 ...
- SQL Server查询第31到40条数据
大致分为两种情况:ID连续和ID不连续. 1.ID连续的情况: 2.ID不连续的情况: (1).两次对表查询,效率较低. ID from A) (2).外层查询没有对表A进行查询,效率提高. ID f ...
- 把《c++ primer》读薄(3-1 标准库string类型初探)
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 问题1:养成一个好习惯,在头文件中只定义确实需要的东西 using namespace std; //建议需要什么再using声 ...
- 背水一战 Windows 10 (31) - 控件(按钮类): ButtonBase, Button, HyperlinkButton, RepeatButton, ToggleButton, AppBarButton, AppBarToggleButton
[源码下载] 背水一战 Windows 10 (31) - 控件(按钮类): ButtonBase, Button, HyperlinkButton, RepeatButton, ToggleButt ...
- Lind.DDD.Manager里的3,7,15,31,63,127,255,511,1023,2047
回到目录 进制 我是一个程序猿,我喜欢简单的数字,十进制如何,数字太多,有10种数字组成,但由于它广为人知,所有使用最为广泛,人们的惯性思维培养了十进制,并说它是最容易被计算的数字,事实上,在计算机里 ...
随机推荐
- bzoj1877 晨跑
Description Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑.仰卧起坐等 等,不过到目前为止,他 坚持下来的只有晨跑. 现在给出一张学校附近的地图,这张地图中包含N个 ...
- Python之整数类型
整数:18,73,84 每一个整数都有如下的功能:class int(object): """ int(x=0) -> int or long int(x, bas ...
- 2017校赛 问题 F: 懒人得多动脑
题目描述 小D的家A和学校B都恰好在以点F为焦点的双曲线上,而小D每日所需的生活水源在一条平行该双曲线准线的直线上,设它的值为v.大家都知道,每天都是要喝水的,但是小D有点懒,他希望自己能在去上学或者 ...
- osgi实战学习之路:4.Bundle
</pre></h1><h1 style="margin:0 0 0 40px; border:none; padding:0px"><p ...
- spoj SUBLEX (Lexicographical Substring Search) RE的欢迎来看看
SPOJ.com - Problem SUBLEX 这么裸的一个SAM,放在了死破OJ上面就是个坑. 注意用SAM做的时候输出要用一个数组存下来,然后再puts,不然一个一个字符输出会更慢. 还有一个 ...
- 云原生生态周报 Vol. 3 | Java 8 ❤️ Docker
摘要: Docker Hub遭入侵,19万账号被泄露:Java 8 终于开始提供良好的容器支持:Snyk 年度安全报告出炉,容器安全问题形势空前严峻. 业界要闻 Docker Hub遭入侵,19万账号 ...
- 洛谷 3174 [HAOI2009]毛毛虫
题目描述 对于一棵树,我们可以将某条链和与该链相连的边抽出来,看上去就象成一个毛毛虫,点数越多,毛毛虫就越大.例如下图左边的树(图 1 )抽出一部分就变成了右边的一个毛毛虫了(图 2 ). 输入输出格 ...
- PHP笔试题(11道题)详解
题目一 <?php echo -10%3; ?> 答案:-1. 考查:优先级. 因为-的优先级比%求余的优先级低, 也就是-(10%3). 2 题目二: print (int)pow(2, ...
- pandas数据框,统计某列或者某行数据元素的个数
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/sinat_38893241/articl ...
- Save and Load from XML
using UnityEngine; using System.Collections; using System.Xml; using System.Xml.Serialization; using ...