09 2018 档案
摘要:"题目链接" 正解就算了吧,~~谁叫我理生化 语数外 政史地都菜呢~~ 模拟退火真玄学,不知道发生了什么就跑出答案了,原理就算了吧,能用(pianfen)就好。 当重物平衡时,势能一定是最小的,于是当我随机出一个点时,累加所有重物到这个点的距离乘这个重物的质量的积,这样就能反映势能的相对大小了。 为
阅读全文
摘要:"题目链接" 把每一列能射的两行和这一列连边,然后跑一边匈牙利就行了。 cpp include include include using std::swap; define Open(s) freopen(s".in","r",stdin);freopen(s".out","w",stdout);
阅读全文
摘要:"题目链接" 直接暴力搞是$n$方的复杂度。$n^2$个数选$n$个最小的,容易想到堆。 我们堆里记录两个信息:到$A$数组哪个位置了,到$B$数组哪个位置了, 我直接把这两个信息存在一个$int$里了。 然后按$A[i]$+$B[j]$建立小根堆,每次取出堆顶并输出,然后弹出,在把这个堆顶的$B$
阅读全文
摘要:"题目链接" 看到代价和价值这两个关键词,肯定是首先要想到背包的。 但是图中并没有说这是棵树,所以先要$Tarjan$缩点,然后就是选课了,跑一遍树形背包就好了。 注意:缩点后应该是一个森林,应该用一个虚点连接所有根。 cpp include include include using namesp
阅读全文
摘要:"题目链接" 容易发现,当加一条边时,树上会形成一个环,这个环上的每个点都是只要走一次的,也就是说我们的答案减少了这个环上点的个数,要使答案最小,即要使环上的点最多,求出直径$L$,则答案为$2(n 1) L+1$。 当加两条边时,同样会形成一个新环,但这个新环可能和第一个环有交点,而这些交点仍是要
阅读全文
摘要:"题目链接" 差分约束。 设$s[i]$表示前$i$个位置有多少个数,那么对于一个限制条件$(L,R,C)$,显然有 $$s[R] s[L 1] =C$$ 于是连一条$L 1$到$R$边权为$C$的边。 但为了保证能从$0$走到$max(b)$,我们还需从$1$到$n$,对$i 1$和$i$连一条权
阅读全文
摘要:"题目链接" 直接暴力搞$O(n^2)$显然是布星滴。 试想,若是一维,最远距离就是最大值减最小值。 现在推广到二维,因为有绝对值的存在,所以有四种情况 $(x1+y1) (x2+y2), (x1 y1) (x2 y2), ( x1+y1) ( x2+y2), ( x1 y1) ( x2 y2)$
阅读全文
摘要:"题目链接" ~~毒瘤DP题~~ 因为$(i,j)$能不能敲取决于$(i 1,j)$和$(i 1,j+1)$,所以一行一行地转移显然是有后效性的。 于是考虑从列入手。我们把这个三角形“左对齐”,变成一个直角三角形。 第$i$列第$j$个要取,则第$i$列前$j 1$个和第$i+1$列前$j 1$个肯
阅读全文
摘要:"题目链接" 主席树=可持久化权值线段树。 如果你不会可持久化线段树,请 "右转" 如果你不会权值线段树,请自行脑补,就是线段树维护值域里有多少个数出现。 可持久化线段树是支持查询历史版本的。 我们对每个数都进行一次基于上个版本的单点修改操作,这样每个版本就是维护的前$p$个数,这个权值显然满足可减
阅读全文
摘要:这题因为一些小细节还是$debug$了很久。。。~~不过我第一次用脚本对拍,不亏。~~ 先随便找一个点作为根,算出答案,即所有点对到这个点的距离和的最大值,并记录 所有 距离最大的点对。如果这个点在任意一个距离最大的点对之间的路径上,那么答案显然不能再优了,因为这个点对的答案是不能减小了的。如果有两
阅读全文
摘要:emacs配置(待补) 对拍(Linux): 保存为$.sh$文件,然后终端里输入$sh+$文件路径(拖到里面就好了)执行。 (Windows):
阅读全文
摘要:"题目链接" 对于一个区间$[x,y]$,设这个区间的总和为$S$ 那么我们在前缀和(设为$sum[i]$)的意义上考虑到原操作其实就是$sum[x−1]+=S$ , $sum[x]+S−S$ , $sum[y]−=S$ , $sum[y+1]+S−S$。 而且我们注意到,本来就有$sum[x−1]
阅读全文
摘要:"题目链接" 考试时暴搜50分。。。其实看到“单词”,“前缀”这种字眼时就要想到$Trie$的,哎,我太蒻了。 以一个虚点为根,建一棵$Trie$,然后$dfs$, 以当前点为根的答案就是$Ans_u=(\prod_{\text{v是u的子树}}Ans_v)+\text{有单词以这个点结尾 ? 1
阅读全文
摘要:"题目链接" 可持久化线段树模板题。 这里总结一下可持久化线段树。 可持久化数据结构就是能恢复历史状态的数据结构,比如可持久化$Trie$,并查集,平衡树。 可持久化数组是最基础的,这里通过可持久化线段树来实现。 可持久化线段树 ·复杂度:时间$O(n\log n)$,空间$O(m\log n)$。
阅读全文
摘要:因博主太菜改不完题目,故停更。 11.1 总结 上午 $T0$ 记搜走迷宫果然布星。 $T1$ 线性基就放弃吧。 $T2$ 类似正方形计数的方法,推出一个矩形里三角形的个数然后枚举矩形大小就行了。 $T3$ 优化建图+拓扑排序最长路 晚上 $T1$ 贪心模拟题 $T2$ "点我" $T3$ 有些细节
阅读全文
摘要:"题目链接" 没删除调试输出,原地炸裂,$80$ $0$。如果你要问剩下的$20$呢?答:数组开小了。 这题正向删边判连通性是很不好做的,因为我们并不会并查集的逆操作。于是可以考虑把断边改成逆向连边,某个猴子什么时候和$1$号猴子变成连通的,这就是他掉下去的时间,如果本来就与$1$号猴子连通,那么它
阅读全文
摘要:"题目链接" 题意:$n$个木块放到两个塔里,每个木块可放可不放,使得两塔高度相同且高度最大,求最大高度。 这个差值$DP$的思维难度还是很大的,没想出来,我就打了一个$dfs$骗了好像$20$还是$30$分吧(看来搜索也写挂)。 正解是$DP$,$f[i][j]$表示前$i$块木块使得两个塔的高度
阅读全文
摘要:"题目链接" 这题还是很好想的,看到$90%$的数据点时,我就知道要用$n^3$的算法~~(最后10分就算了吧)~~ 然后,数据水,直接暴力$n^3$卡过了。 显然是道DP。 设$f[i]$表示第$i$秒获取到的最多的金币。 三重循环更新状态。 第一重枚举机器人出发时间, 第二重枚举机器人出发地点,
阅读全文
摘要:"题目链接" NOIP2017真的是不按常理出牌: 1、数学题不在Day2T1 2、一道水题一道细节极多的模拟题一道不知道怎么形容的题(小凯的疑惑)(因为我太菜了) 3、3道大火题 当时看到列队这题是毫无头绪的,因为数据大得让你存都存不下,于是果断打了个30分暴力(如果打个离散化还能多骗20分)。
阅读全文
摘要:DP总结。 线性DP ·LIS ·LCS `数字三角形 ·LCIS(最长公共上升子序列) 背包 01背包 完全背包 多重背包 分组背包 区间DP 用$f[l][r]$表示区间$[l,r]$的最优解,然后枚举区间,用小区间的状态更新大区间的状态。 典型例题:合并石子 环形DP 环形DP的常用套路是断环
阅读全文
摘要:This is a data structure summary. 并查集 一个维护连通性的神器,时间复杂度几乎为常数级别~~(加了按秩合并后就真的是常数级别了)~~ 把$n$个点看成一个森林,用一个数组记录每个点的父亲,初始时均为自己。 要合并两棵树时,也就是合并集合,把一棵个树的父亲指向另一棵树
阅读全文
摘要:这是一个图论总结。 图的概念 ·图:由一些点和一些边组成的~~东西~~ ·有向图:边有方向(单向连通)的图 ·无向图:边无方向(双向连通)的图 ·入度:有多少边连入这个点 ·出度:有多少边连出这个点 ·DAG:有向无环图 建图 邻接矩阵 用一个二维数组表示两个点之间有没有连边 邻接表 用一个结构体记
阅读全文
摘要:"题目链接" ~~怎么这么多随机数生成器~~ 题意见原题。 很容易想到$BSGS$算法,但是递推式是$X_{i+1}=(aX_i+b)\mod p$,这显然不是一个等比数列。 但是可以用矩阵乘法来求出第$i$项,所以好像可以用$BSGS$套矩阵乘法?但是总要把那个常数项除过来吧,矩阵除法是什么鬼?
阅读全文
摘要:"题目链接" 题意:给定一个$n\times m$的矩阵,每次可以向→↓←移动一格,也可以原地不动,求从$(x,y)$到最后一行的期望步数。 ~~此题标签$DP$~~ ~~看到上面这个肯定会想到~~ 方法一: $f[i][j]$表示表示从$(x,y)$走到$(i,j)$的期望步数,正推 方法二: $
阅读全文
摘要:"题目链接" 题意:在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。 这是道状压$DP$好题啊。。 定义状态:一个二进制数某一位为$1$表示该位放了国王,反之亦然。 设$f[i][j][k]$表示,
阅读全文
摘要:其实这题可以不用状压。。 提供一种新思路。 我们在读入目标棋盘的时候,把当前位置的数和当前棋盘进行比较,如果不一样,如果当前是$1$,目标是$0$,那么我们就把当前位置加入$needmove$队列里去,否则加入$needgot$队列里去。 然后我们两遍循环,对这两个队列两两匹配,构成一个操作,表示把
阅读全文


浙公网安备 33010602011771号