摘要:1. 题目描述公司里有
n,n∈[1,200]个人,他们间的关系构成树状结构。除老板外,每个员工都有唯一一个直属上司,要求从中选择尽量多的人,但是不能同时选择员工和他的直属上司,问最多能选多少人,以及可行解是否是唯一的?2. 基本思路这显然又是一个树形DP的题目,经典模型——树的最大独
阅读全文
摘要:1. 题目描述某树形网络由
n,n∈[1,104]台计算机组成。现从中选择一些计算机作为服务器,使得每当普通计算机恰好与一台服务器连接(并且不超过一台)。求需要指定服务器的最少数量2. 基本思路这显然是一个求最优解的问题,并且该网络拓扑结构为树形。因此,考虑树形DP。关键是考虑有哪些
阅读全文
摘要:1. 题目描述有两个长度为
105的字符串,其中一个仅包含小写字母,称之为源串;另一个包含?与*通配符的模式串,并且通配符的个数不超过10。求模式串是否能匹配源串?2. 基本思路这其实是一道RegularExpression-Matching问题。一般化的解法就是构建自动机,然后去在这个自动机上
阅读全文
摘要:1. 题目描述有长度为
n∈[1,105]的序列,表示一个打乱的循环排列,即每当
[1⋯n]中的数字全部出现后,再重新产生一个随机的覆盖
[1⋯n]的序列。给定的序列并不是一个完整的循环序列,而是一个子序列。求完整的循环序列共有多少可能?2. 基本思路这
阅读全文
摘要:1. 题目描述给定
n×m,n、m∈[1,10]的方格,求不同形状的
[1⋯10]联通块的个数?所谓不同形状,表示不能通过平移、旋转、镜像实现相同的形状。2. 基本思路显然数据不大, 那么可以打表。首先考虑,这个表怎么打?不妨使用
cn表示连通块数。那么
阅读全文
摘要:1. 题目描述由
n×n,n∈[1,5]的正方形由
2×n×(n+1)根木棍组成,可能已经有些木棍被破坏,求至少还需破坏多少木根,可以使得不存在任何正方形?2. 基本思路这是一道非常有趣的题目,可以使用IDA*解也可以用DLX解。可以试试5
阅读全文
摘要:1. 题目描述
m×n的迷宫(最大为
16×16)包含最多3个点,这些点可以同时向相邻方向移动或保持停止,使用小写字母表示起始位置,使用大写字母表示中止位置。求最少经过多少时间,这些点可以从起始位置移动到对应的终止位置。2. 基本思路这是很经典的路径搜索问题,一般采用
阅读全文
摘要:1. 题目描述给定一个正整数
n,求经过多少次乘法或除法运算可以从
x得到
xn?中间结果也是可以复用的。2. 基本思路实际结果其实非常小,肯定不会超过20。因此,可以采用IDA*算法。注意几个剪枝优化就好了:(1)每次新计算的值必须从未出现过;(2)每次新计算的值进行还可以执行的运算次数的
阅读全文
摘要:1. 简介clrscode3e是《算法导论(第三版)》使用的伪代码的宏包,clrs其实表示的是Cormen、Leiserson、Rivest和Stein。它有个更老的版本clrscode,这个宏包CTEX自带。《算法导论》中的伪代码风格与clrscode3e的风格完全一致,要比lstlistings
阅读全文
摘要:1. 题目描述给定一个
2×2×2的魔方,当某个面上的4个小块颜色均相同时,称这个面为complete。求对这个魔方进行
n∈[1,7]次旋转(沿某个面顺时针或者逆时针)的过程中,求complete的面总和的最大值。魔方及索引如下图所示:2. 基本思路及代码解
阅读全文
摘要:1. 题目描述给定一个长为
n∈[1,4000]的字符串,求其中长度最长的子串,并且该子串在原串中出现至少
m次,并求最右起始位置。2. 基本思路两种方法:二分+后缀数组,或者二分+哈希。(1) 二分+后缀数组对子串长度进行二分,若不同后缀的公共前缀超过这个值,则对计数值累加。若计数值
阅读全文
摘要:1. 题目描述挺简单的一道题,给定
n个大整数,求出现最多的次数。2. 基本思路这题是可以使用哈希做,ELFHash等哈希都可以过。3. 代码
阅读全文
摘要:1. 题目描述
A[i]表示二级制表示的
i的数字之和。求
1≤i<j≤n并且
A[i]>A[j]的
(i,j)的总对数。2. 基本思路
n≤10300。
n这么大,显然只能用数位DP来做,我们可以预先处理一下将
n表示成二进制,然后再进行DP。$dp[
阅读全文
摘要:1. Watchmen1.1 题目描述给
n个点,求曼哈顿距离等于欧式距离的点对数。1.2 基本思路由
|xi−xj|+|yi−yj|=√(xi−xj)2+(yi−yj)2可以推出
xi=xj或者
yi=yj。所以变得超级简单了,排序后对两种情况分别累
阅读全文
摘要:1. 题目描述有
k个伞兵跳伞,有
m个汇点。当伞兵着陆后,需要走向离他最近的汇点。如何选择这
m个结点,可以使得士兵最终行走的距离的期望最小。求这个最小的期望。2. 基本思路假设已经选好了这
m个汇点,这也就确定了每个士兵的可能着陆点需要继续行走的距离。因此,这个期望为\begin{ali
阅读全文
摘要:1. 题目描述一个人沿着一条长度为n个链行走,给出了每秒钟由i到j的概率(
i,j∈[1,n])。求从1开始走到n个时间的期望。2. 基本思路显然是个DP。公式推导也相当容易。不妨设
dp[i],i∈[1,n]表示由i到n的期望时间。\begin{align} dp[i] &=
阅读全文
摘要:1. 题目描述K沿着
0,1,2,⋯,n−1,n−2,n−3,⋯,1,的循环节不断地访问
[0,n−1]个时光结点。某时刻,时光机故障,这导致K必须持续访问时间结点。故障发生在结点x处,方向为d,在访问k个结点后时光机以概率
Pk的概率修复好,k不超过m。求当K最终访
阅读全文
摘要:1. 题目描述一个长度为n个队列,每次取队头的4个人玩儿游戏,每个人等概率赢得比赛。胜者任然处在队头,然而败者按照原顺序依次排在队尾。连续赢得m场比赛的玩家赢得最终胜利。求第k个人赢得最终胜利的概率。2. 基本思路显然是个概率DP,dp[i][j]表示第1个玩家已经连续赢得i局比赛时,第j个人赢得最
阅读全文
摘要:1. 题目描述长度为n的等待队列,tomato处于第m个,有如下四种可能:(1)激活失败,概率为
p1,队列中的顺序不变;(2)连接失败,概率为
p2,队头玩家重新排在队尾;(3)激活成功,概率为
p3,队头出队;(4)服务器down机,概率为
p4,队伍停止。问当服务器当机时,to
阅读全文
摘要:1. 题目描述有n个球,第i个球的伤害值为
2i−1,i∈[1,n]。有甲乙两个人,每次由甲选择n个球中的一个,用它以相同概率攻击自己或者乙,同时彻底消耗这个球。这样的攻击最多进行n次。一旦甲的伤害值高于乙,则甲输,否则甲胜。问甲胜的概率是多少。2. 基本思路还是一步步推导。令dp[k
阅读全文
摘要:1. 题目描述对于m面的骰子。有两种查询,查询0表示求最后n次摇骰子点数相同的期望;查询1表示最后n次摇骰子点数均不相同的期望。2. 基本思路由期望DP推导,求得最终表达式。(1) 查询0 不妨设
dp[k]表示当前已经有k次相同而最终实现n次相同的期望。 \begin{align} dp[0]
阅读全文
摘要:1. 题目描述有n个点,求能覆盖这n个点的半径最小的圆的圆心及半径。2. 基本思路算法模板http://soft.cs.tsinghua.edu.cn/blog/?q=node/1066定义Di表示相对于P[1]和P[i]组成的最小覆盖圆,如果P[2..i-1]都在这个圆内,那么当前的圆心和半径即为
阅读全文