随笔分类 - 瞎搞
摘要:传送门 分块 对每个块维护一个 $add$ 和 $del$ 标记,对于块 $o$ 内某个位置 $i$,它真实的修改量为 $a[i]+add[o]*i-del[o]$ 这样就可以维护一个区间加一个等差数列的操作了 对于操作 $2$,交换两个位置,直接把两个位置的块标记下传,然后直接交换 对于操作 $1
阅读全文
摘要:传送门 看到数据范围,显然 $n^2$ 的 $dp$... 设 $f[i][j]$ 表示 $A$ 串考虑了前 $i$ 位,$B$ 串考虑了前 $j$ 位,最优情况下的方案数 但是好像没法判断转移来的是否为最优方案? 所以再设 $g[i][j]$ 表示 $A$ 串考虑了前 $i$ 位,$B$ 串考虑了
阅读全文
摘要:传送门 先考虑如何判断无解,设 $sum[i]$ 表示确定的人中,编号大于 $i$ 的人的人数 如果 $sum[i]>n-i+1$ 则无解,进一步考虑设 $f[i][j]$ 表示当前确定完编号大于等于 $i$ 的人,除去原本固定的人还有 $j$ 人已经确定 那么有 $f[i][j]=\sum_{k=
阅读全文
摘要:传送门 把所有人按 $a_i$ 从小到大排序, $a_i$ 越小说明如果那个人说真话,分数越高 对于 $a_i$ 相同的人,如果 $b_i$ 不同那么最多只有一种 $b_i$ 是真的,所以考虑把 $a_i,b_i$ 相同的合并,价值为人数 进一步考虑,对于 $a_i$ 不同的人,他们同时说真话的条件
阅读全文
摘要:传送门 A. Creating a Character 设读入的数据分别为 $a,b,c$ 对于一种合法的分配,设分了 $x$ 给 $a$ 那么有 $a+x>b+(c-x)$,整理得到 $x>(b+c-a)/2$ 因为 $x \in [0,c]$ ,所以求一下区间交的大小即可,注意 (b+c-a)
阅读全文
摘要:传送门 发现蚂蚁不多,所以考虑两两枚举然后判断 那么首先要求出两条链的公共部分,然后根据之间在公共链的时间段和是同向还是反向进行判断 思路简单但是细节很多...... 首先求链的公共部分,设两种蚂蚁为 $a,b$,路径分别为 $As,At$,$Bs,Bt$ 那么经过一波手玩分类讨论,公共部分的两端点
阅读全文
摘要:传送门 首先可以想到二分答案,然后考虑判断 注意到所有点的外包矩形的四条边一定要被覆盖到,而正方形只有 $3$ 个,所以一定有一个正方形在角落 考虑爆搜,枚举正方形在当前外包矩形的那个角,然后对剩下的点的外包矩形继续这样搞
阅读全文
摘要:传送门 快乐模拟,修身养性 代码长度其实还好,主要是细节多 只要知道一些计算几何基础知识即可快乐模拟,按着题目要求一步步实现就行啦 注意仔细读题,蚂蚁每 $5$ 秒乱走一次的时候是只要能走就走了,不一定要信息素最多 还有因为炮台是同时打的,所以目标要提前选好,就算某只蚂蚁被打成负血了,还是会继续被打
阅读全文
摘要:传送门 写出式子,若存在 $a \in A$,$b \in B$,使得 $b+v=a$,那么此方案会产生冲突 即存在 $a \in A$,$b \in B$,使得 $v=a+(-b)$,设 $C=A+(-B)$ 那么有 $v \in C$,$+$ 表示闵可夫斯基和,$-$ 表示坐标符号取反 所有直接
阅读全文
摘要:传送门 推推式子,对于原数列 $a[i],a[j]$ 如果要保留它们,那么它们之间的数就要改成单调上升 显然能改成单调上升的条件是 $a[i]<a[j]$ 并且 $a[j]-a[i]>=j-i$ ,也就是 $a[j]-j>=a[i]-i$ 所以设 $b[i]=a[i]-i$,那么对于第一问就只要求
阅读全文
摘要:传送门 弧线不好处理,考虑先求出直线的总长 画个图发现,把直线向内移动 $r$ 以后,所有直线构成了圆心点集的凸包 然后考虑弧线的长度,容易发现弧线的长度总是圆的周长,大概证明就是直线需要经过弧线才能拐弯 因为最后拐回来了,所以绕了一圈,那么弧线的弧度总和就是 $2\pi$ 然后求所有圆心的凸包加上
阅读全文
摘要:传送门 注意题目要求的字典序最小是指下标最小 容易想到 $dp$,但是发现正着做不好搞,考虑反过来搞 原本正着做是求最长上升子序列,反过来就变成求最长下降子序列 然后我们就可以求出以每个位置为起点的上升子序列的最大长度 然后直接贪心从前往后枚举即可,复杂度 $O(nm)$ 维护最长下降子序列我是用树
阅读全文
摘要:传送门 我是弟弟 把操作离线,然后维护带权并查集,从小边到大边一个个合并,每次合并的时候计算贡献 显然方案数为左边块大小乘右边块大小 我好菜啊
阅读全文
摘要:传送门 好巧妙的题啊... 首先因为 $a+b+c=1$,所以我们忽略 $c$,只要确定出 $a,b$ 即可 考虑构建平面直角坐标系,横坐标为 $a$,纵坐标为 $b$,那么一种原料或者合金 $v_1=(a_1,b_1)$ 就可以看成平面上的一个向量 而如果某两种原料 $v_1,v_2$ 可以构成一
阅读全文
摘要:传送门 发现 $A$ 不大,又允许较大的误差,考虑乱搞 考虑求出每个位置的答案,因为有 $1e5$ 个位置,所以每个位置差不多可以计算 $100$ 次贡献 所以把每个可以贡献的位置尽量均匀分成 $100$ 个块,同一个块内答案一起算 本来一个位置的贡献是 $m[i]m[j]/(i-j)$ ,那现在一
阅读全文
摘要:传送门 确定排名看一眼就想到 $floyd$ 传递闭包,然后因为 $n$ 比较大所以要 $bitset$ 优化 要求最少次数?然后就想到二分,然后就自闭了 结果网上做法都默认一个个比较就是最优解的吗?随便吧,题目应该是有错的...
阅读全文
摘要:传送门 边数不大,可以把点离散化,然后点数就只有 $200$ 考虑 $dp$,设 $f[k][i][j]$ 表示走了 $k$ 步,从 $i$ 到 $j$ 的最小路程,发现转移可以倍增优化 $f[k][i][j]=min(f[k/2][i][j],f[k/2][i][l]+f[k/2][l][j])$
阅读全文
摘要:传送门 A. XORinacci 手玩三四项发现序列就是 $a,b,a\ xor\ b,a,b,...$,直接输出即可 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath>
阅读全文
摘要:传送门 看上去无从下手,把式子写出来冷静一下: 对于区间 $[i,j]$ ,要满足要求的条件为: $sum[i][1]-sum[j-1][1]=sum[i][2]-sum[j-1][2]$ $sum[i][1]-sum[j-1][1]=sum[i][3]-sum[j-1][3]$ ... $sum[
阅读全文
摘要:传送门 看一眼感觉 $dp$,发现状态没法维护 考虑贪心,然后就想了两个错的贪心... 正解好神啊 首先如果权值最大的点能够一步染色那么肯定要染它 意思就是,一旦父节点被染色那么它就要接着被染色 那么把它们父子两合并成一个新的点,其他节点根据原来的边也连上来 考虑新的点的权值要怎么搞,现在既然这个节
阅读全文