随笔分类 - 001TOPCODER
摘要:problem1 link 设行数为$n$列数为$m$ 对于任意的两行$r_{1},r_{2}$以及任意的两列$c_{1},c_{2}$所确定的四个格子,只要知道其中的三个就能确定第四个,且必须要三个。 这样的话,可以看作$n+m$个节点,如果$(i,j)$为‘Y’那么将第$i$行表示的节点和第$j
阅读全文
摘要:problem1 link 从前向后确定一下,然后再从后向前确定一下。一样的话就是可以确定的。 problem2 link 首先将强连通分量缩点。理论上来说,只需要遍历所有入度为0的联通块中的一个即可。 但是有一种情况可能是某个入度为0的联通块只包含一个节点$u$,这时当遍历完其他入度为0的联通块时
阅读全文
摘要:problem1 link 如果decisions的大小为0,那么每一轮都是$N$个人。答案为0. 否则,如果答案不为0,那么概率最大的一定是一开始票数最多的人。因为这个人每一轮都在可以留下来的人群中。 假设第一轮之后剩下$r_{1}$个人,那么第二轮之后将剩下$r_{2}=N$%$r_{1}$个人
阅读全文
摘要:problem1 link 枚举第一个数和第二个数即可确定公差。 problem2 link 设高度为$n$,宽度为$m$,且$n \ge m$ 如果$m \ge 5$,那么答案为0。这个可以通过抽屉原理来说明。考虑第一行,假设$n=m=5$,那么第一行最后一定有至少3个白色或黑色,不妨设为白色。不
阅读全文
摘要:problem1 link 首先每$n*m$一定是一个循环,所以只需要考虑时间$[0,n*m-1]$即可。这个期间一共出现了$n$个,第i个的出现时间为$m*i$,离开的时间为$\left \lceil \frac{mi}{n} \right \rceil*n$,所有答案为: ans=$\frac{
阅读全文
摘要:problem1 link 直接模拟即可。 problem2 link 首先,网关一定是安装在client与server之间的链路上。而不会安装在client与client之间的链路上。对于一条路径c1->c2->c3->c4->s,且不存在任何一个其他的client使得c4到该client存在链路
阅读全文
摘要:problem1 link 暴力枚举$r$只兔子的初始位置,然后模拟即可。 problem2 link 假设刚生下来的兔子是1岁,那么能够生小兔子的兔子的年龄是至少3岁。 那么所有的兔子按照年龄可以分为1岁,2岁,大于等于3岁三种情况。不妨令个数分别为$a_{1},a_{2},a_{3}$ 在每年生
阅读全文
摘要:problem1 link 首先预处理在已选字母的状态为$state$时是否可达。 然后就是按照题目进行dp。设$f[i]$表示已选字母集合为$i$时的结果。 每次可以根据$i$中含有的字母是奇数还是偶数个来确定现在该轮到谁选择。 problem2 link 交点可以分为三部分: (1)已经确定的线
阅读全文
摘要:problem1 link 以两个点$p,q$为中心的两个正方形的边长和最大为$2dist(p,q)$,即$p,q$距离的两倍。 也就是两个$p,q$的连线垂直穿过两个正方形的一对边且平分两个正方形。 problem2 link 简化一下题意就是每个base和每个plant都有一个代价。要么付出某个
阅读全文
摘要:problem1 link 设$f[i][j]$表示已经分配了answers中的前$i$个,分配给的问题的状态为 $j$的方案数。 其中状态可以用$n$位的三进制表示,0表示还未分配,1表示已分配是 Yes,2表示已分配是No. problem2 link 假设$n$个城市为[0,n-1]。设$f[
阅读全文
摘要:problem1 link 令$f[x1][y1][x2][y2]$表示矩形(x1,y1)(x2,y2)中能选出的最大值。dp即可。 problem2 link 这个题应该有更好的递推公式。 我的做法是这样的。设$f[i]$表示$i$时的答案,令$g[i]=f[i]-f[i-1]$。通过暴力计算$g
阅读全文
摘要:problem1 link 用$f[i][0],f[i][1]$表示从$i$位置开始Alice是先手是否可以胜利,是后手是否可以胜利。 problem2 link 每次钱数够$price$时可以选择使得$n$或者$k$中较小的一个增加1。最多也就增加$2*10^{6}$次。钱数不够$price$时可
阅读全文
摘要:problem1 link 这个的结论是只需要考虑坐标是整数或者是整数.5,比如(2.5,3),(4,3.5),(1.5,4.5)这样的时候。这个详细证明起来应该挺麻烦的。这里有一些讨论。 problem2 link 首先,可以暴力看下$n=3,4$时的情况。 $n=3$, 000 001 011
阅读全文
摘要:problem1 link 二分答案,然后计算总时间。跟$T$比较确定要增大答案还是减小答案。 problem2 link 可以看作是以‘*’所在位置为根的树。所以每个非根节点都有一个父节点。 那么每个非根结点$x$都可以表示其根结点$y$的函数,,类型为$x=p+qy$。比如说有三个节点$x,y,
阅读全文
摘要:problem1 link 遍历未被删除的叶子结点即可。 problem2 link 首先,将所有的蛋白质原子编号,设为$[0,m-1]$,每个原子可能对应多个长度为3的$ACGT$。设$n$为DNA串的长度。用$g[i][j]$表示从$i$开始匹配数字$j$后的最小位置,$0\leq i \leq
阅读全文
摘要:problem1 link 其实就是找到一个数字$t$,使得$x$的二进制为1 的位上$t$也都为1。然后$t$删掉所有那些$x$为1的二进制位就是$k$。 problem2 link 设所有合法的边的个数为$m(m \leq C_{10}^{2}=45)$。状态$mask$记录每个点的度数。$f[
阅读全文
摘要:problem1 link 枚举指数,然后判断是不是素数即可。 problem2 link 令$f[len][a][b][r]$(r=0或者1)表示子串$init[a,a+len-1]$匹配$goal[b,b+len-1]$,翻转了$r$次的最小代价。 problem3 link 答案的公式很容易推
阅读全文
摘要:problem1 link 分类讨论。高度没有太大关系。主要看长度。 problem2 link 二分答案$mid$。计算每种$card$不足的部分,加起来,小于等于$min(jokers,mid)$就是合法的。 problem3 link 为了方便说明,以下所说的$x,y,a$分别是菱形宽度一半的
阅读全文
摘要:problem1 link 枚举每一种大于等于$n$的计算其概率即可。 problem2 link 首先二分答案,然后计算。令$f[i][j]$表示移动完前$i$最后一个在位置$j$的最小代价。 problem3 link 假如一个数质因子分解为$n=p_{1}^{x_{1}}p_{2}^{x_{2
阅读全文
摘要:problem1 link 暴力搜索即可。 problem2 link 可以将每次所有的piece的位置看作一个状态,由于$C_{25}^{5}=53130$,所以最多有这么多状态。这里可以加一些优化来减少状态。比如通过旋转或者翻转是一样的状态其结果是一样的。 然后进行bfs即可。 problem3
阅读全文