摘要:
位运算。 两个数的和:$A+B=(AandB)+(AorB)$,那么$b[i]+c[i]=n*a[i]+suma$。可以解出一组解,然后再按位统计贡献验证一下。 阅读全文
摘要:
最小生成树变形,倍增。 每条边有权值$1$和权值$2$,要求构造最小生成树,有一条边可以选择权值$2$,其余边选择权值$1$。 先对权值$1$求最小生成树,然后枚举每一条边用权值$2$去替换树中的边即可。 寻找树上某条连权值最大的边,带修改的可以采用树链剖分;无修改的可以将树有根化,然后计算两点到公 阅读全文
摘要:
模拟。 连续的一段$a$合成一个$b$。每段中如果数字只有$1$个,那么可以合成。如果数字个数大于等于$2$个,如果都是一样的,那么无法合成,否则要找到一个可以移动的最大值位置开始移动。一开始写了一个模拟,没考虑到严格大于,$WA$在$106$组数据了...... 阅读全文
摘要:
矩阵快速幂。 邻接矩阵的$P$次方就是走$P$步之后的方案数,这里只记录能否走到就可以了。然后再判断一下三种情况即可。 阅读全文
摘要:
计算几何,暴力。 题目中有一句话:$The$ $mass$ $of$ $each$ $brick$ $is$ $equally$ $distributed$ $and$ $it$ $will$ $be$ $stable$ $if$ $it$ $is$ $placed$ $on$ $bases$ $o 阅读全文
摘要:
边双连通分量。 这题有一点构造的味道。一个有向图,经过强连通缩点之后会形成一个有向无环图。 如果将最大的强连通分量放在顶端,其余的强连通分量都直接或间接指向他,那么这样就构造出了符合要求的图。 接下来就是要去寻找强连通分量。对于一个无向图来说,每一个边-双联通分量都可以将每条边定向之后构造成一个强连 阅读全文
摘要:
贪心,优先队列。 将$s$按照从小到大的顺序扔进优先队列。从小的开始与电脑配对,如果找不到合适的电脑,那么再变小一次,直到找到与之配对的电脑或者作废。 阅读全文
摘要:
区间并。 对于上下两个数字,如果不一样,那么可以计算出哪一段范围内可以保证字典序,并且后面所有位置都无需再考虑。对所有范围求交集就是答案了。 求交集写起来有点烦,直接对不可取的范围求并即可。 阅读全文
摘要:
枚举,前缀和。 先从小到大排序,然后枚举最小的数字选择哪一个。接下来就是计算比他大的数做出的贡献。因为肯定是连续的一段贡献都是一样的,因此二分一下就可以了。这样$800$多$ms$能水过。 #pragma comment(linker, "/STACK:1024000000,1024000000") 阅读全文
摘要:
$dfs$,构造。 类似于$k$度限制生成树的想法,可以将$s$和$t$先从图中删去,将剩下的部分求连通块,每个连通块内部很容易构造生成树,每个连通块缩成一个点来处理。 连通块分三种: $1$.只与$s$有边 $2$.只与$t$有边 $3$.与$s$和$t$都有边 前两种没办法,只能和$s$和$t$ 阅读全文
摘要:
构造。 (1)如果数字中带有$0$: 1.只有个位是$0$,这种情况就是给输入的数字$+10$再输出即可。 2.其余情况就是给输入的数字$+1$再输出即可。 (2)如果数字中没有$0$: 从个位开始一位一位拆掉。如果发现能凑出比某一位大一点点的数字,那么剩下的高位就不动了,再从个位开始构造目前能凑出 阅读全文
摘要:
线段树,延迟标记。 记录一下每个节点代表的区间的最小值,以及左右端点是否为最小值,记录区间被下压几次作为延迟标记,再记录一下这个区间中有多少个最小值的连通块。 $n$最大有$1$亿,可以开动态线段树避免离散化。 阅读全文
摘要:
暴力枚举,状态压缩。 枚举哪几行放,复杂度为$O(2^{25})$,大概有$3000$多万种情况。假设有$x$行放了,没放的那几行状态或起来为$st$,如果$st$中$1$的个数大于$x$,那么不可取;否则用$x$更新答案。 阅读全文
摘要:
$dp$,斜率优化。 设$dp[j][i]$表示前$i$个位置分成$j$段的最小值,递推式很好写,预处理几个前缀和就可以了,然后斜率优化即可。 阅读全文
摘要:
$dp$,斜率优化。 设$dp[i]$表示前$i$个位置调整成$K-Anonymous$的最小花费。 那么,$dp[i]=min(dp[j]+sum[i]-sum[j]-x[j+1]*(i-j))$。 直接算是$O(n^2)$,进行斜率优化即可。 阅读全文
摘要:
$dp$,斜率优化。 有一种很直观的$dp$方式: 设$dp[j][i]$表示前$i$个数字,分成了$j$组的最小代价。$dp$转移方程很容易写,斜率优化也很容易。斜率优化之后时间复杂度为$O(n^2)$,最坏情况大约是是$5000$万的复杂度。我尝试了一下,但是不幸超时了。但是当我特判掉$s=0$ 阅读全文
摘要:
$dp$,二分,预处理。 设$dp[i][j]$表示前$i$个村庄,放了$j$个邮局,且$i$位置放了一个邮局的最小代价。答案产生于:$min$$($$dp[x][m]+x$位置之后的代价$)$。然后就可以推了,两个邮局之间的产生的代价可以二分预处理一下。 阅读全文
摘要:
区间$dp$,四边形优化。 阅读全文
摘要:
贪心思想,$dp$,斜率优化。 首先将人按照$w$从大到小排序,如果$w$一样,按$h$从大到小排。这样一来,某位置之后,比该位置$h$小的都是不需要考虑的。 因此,形成了如下图所示的结果: 即第一个人最宽,但是最矮,最后一个人最瘦但是最高。 接下来考虑这些人怎么挖洞。还是上图,如果第一个人和第三个 阅读全文
摘要:
广搜。 根据题意,可以知道状态总共有$4*n*m$种。每一个位置四种状态:两个都没有发现;发现$E$没发现$D$;发现$D$没发现$E$;两个都发现。 每次移动的花费都是$1$,队列里面状态的费用是单调不减的,所以第一次符合要求的位置就是答案。 阅读全文