摘要:
权值线段树+并查集 对于每一个点先建立一个权值线段树,之后并查集维护/更改连通性。 不知道权值线段树是啥的戳我 联通就直接把祖先连起来然后合并线段树 #include<cstdio> #include<iostream> using namespace std; const int N=100005 阅读全文
摘要:
概率期望专题首杀…… 毒瘤dp 首先根据数据范围推断出复杂度在O(n)左右 但不管怎么想都是n^2…… ~~晚上躺在床上吃东西的时候~~(误)想到之前有几道dp题是通过前缀和优化的 而期望的可加性又似乎为此创造了条件 那么 是不是可以只考虑多一个o对整体期望的贡献? 很显然,为(x+1)^2 x^2 阅读全文
摘要:
"题面" 状压好题 1 include using namespace std; typedef long long ll; ll dp[35][35][999],power[15]={1,2,4,8,16,32,64,128,256,512,1024,2048}; const int mod=1e 阅读全文
摘要:
唯一能得分的题也被自己搞炸了,好的。 考场上读完题基本认定和lca脱不了干系,想了一会确认是树剖。 那么问题来了,考前一节课刚发现自己之前打的树剖是错的。 而且就算是错的我也没信心考场调出来。 于是打了个自认为复杂度不高的暴力,T出天际,被各位不屑于打树剖的巨佬の向上标记干趴下。 考完翻书学了一下树 阅读全文
摘要:
线段树优化dp 数组f[i][j]表示在前i个村庄内,第j个基站建在i处的最小费用 根据交线牛逼法和王鹤松式可得方程 f[i][j]=min(f[k][j−1]+cost(k,i)) cost(k,i)表示第i~k个村庄之间没有被基站覆盖的村庄所需的赔偿费用,计算费用的复杂度为O(n) 利用二分查找 阅读全文
摘要:
考试前深陷分块泥潭所以刚开始以为是分块。 ~~然而这题数据水到暴力卡常都能AC~~ 正解:万物皆可线段树 节点存储区间长度、区间最长连续空房长度、从左往右最长连续空房长度、从右往左最长连续空房长度。 维护后三个值即可。 阅读全文
摘要:
N include include using namespace std; int n,s1[100010],s2[100010],pos[20010][8],num[20010]={0}; int tot=0,res[500010]; int ans=1,f[500010]; int main( 阅读全文
摘要:
树形+背包 奇奇怪怪的dp。 考试的时候~~费了半天劲把题读完后~~思路基本正解, 然而也不知道为什么脑子鬼畜了一下打了个非递归建树? 而且链式前向星建边? 岔路口和藏品都搞成节点? 自己给自己找麻烦Orz。 于是输入爆炸,无法调试。 比较简便的打法是把权值左右儿子几个藏品各多少钱都塞到结构体里,一 阅读全文