上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 24 下一页
摘要: Link: BZOJ 3326 传送门 Solution: 明显是一道数位$dp$的题目,就是递推式复杂了点 先要求出一个数$\bar{n}$向添加一位后的$\bar{np}$的转化关系 令$res[\bar{n}]$为数$n$的权值和, 则$res[\bar{np}]=res[\bar{n}]+\ 阅读全文
posted @ 2018-07-17 17:35 NewErA 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 1、Splay (Tyvj1728) #include <bits/stdc++.h> using namespace std; const int MAXN=1e5+10,INF=1<<30; int n,op,x,root,ch[MAXN][2],sz[MAXN],cnt[MAXN],val[M 阅读全文
posted @ 2018-07-17 11:06 NewErA 阅读(196) 评论(2) 推荐(0) 编辑
摘要: Link: BZOJ 2427 传送门 Solution: 只看样例的话会以为是裸的树形$dp$…… 但实际上题目并没有说明恰好仅有一个物品没有依赖项 因此原图可能由是由多棵树与多个图组成的 先跑一遍$tarjan$求出每个图中的$SCC$,缩点将原图转化为森林 再设置一个根,将森林转换成一棵树$d 阅读全文
posted @ 2018-07-15 09:49 NewErA 阅读(179) 评论(0) 推荐(0) 编辑
摘要: Link: BZOJ 3675 传送门 Solution: 首先要注意到结果与分割的顺序无关,只与最终状态有关 实际上$res=\sum_{i,j\le k+1} a[i]*a[j]$ 可再转化为$res=\sum_{i=1}^n a[i]*sum[i-1]$ 令$dp[i][j]$表示将前$j$个 阅读全文
posted @ 2018-07-13 13:26 NewErA 阅读(178) 评论(0) 推荐(0) 编辑
摘要: Link: AGC004 传送门 A: …… #include <bits/stdc++.h> using namespace std; long long a,b,c; int main() { scanf("%lld%lld%lld",&a,&b,&c); if(a%2==0||b%2==0|| 阅读全文
posted @ 2018-07-13 11:31 NewErA 阅读(149) 评论(0) 推荐(0) 编辑
摘要: Link: P2831 传送门 Solution: 其实是一道裸爆搜都能过的题目…… 看到$n\le 18$想到状压$dp$ 令$dp[i]$,表示达到当前状态的最小代价 可以发现只要两个点就能确定一条从原点出发的抛物线 因此每次对于一个特定的状态枚举两点确定抛物线转移就好了 $O(n^3)$预处理 阅读全文
posted @ 2018-07-13 10:49 NewErA 阅读(206) 评论(0) 推荐(0) 编辑
摘要: Link: ARC065 传送门 C: 最好采取逆序贪心,否则要多考虑好几种情况 (从前往后贪心的话不能无脑选“dreamer”,"er"可能为"erase"/"eraser"的前缀) #include <bits/stdc++.h> using namespace std; string s; i 阅读全文
posted @ 2018-07-13 09:33 NewErA 阅读(275) 评论(0) 推荐(0) 编辑
摘要: Link: P3806 传送门 Solution: 询问树上是否存在两点间的距离为$k$,共有$m$次询问($m\le 100,k\le 1e7$) 预处理出所有距离的可能性再$O(1)$出解的复杂度为$O(n^2*log(n))$,明显TLE(但好像并不会) 而如果直接在线处理要分治$m$次,找$ 阅读全文
posted @ 2018-07-13 09:12 NewErA 阅读(202) 评论(0) 推荐(0) 编辑
摘要: Link: POJ 1741 传送门 Solution: 此题的难点在于点分治上的统计 如果依然采取每棵子树的结果与之前所有子树的结果合并的方式会比较麻烦 同时复杂度可能超过$O(n*log(n))$的限制 其实可以用一个简单的容斥来在$O(n*log(n))$统计结果: 先将所有点到重心的距离排序 阅读全文
posted @ 2018-07-13 08:43 NewErA 阅读(109) 评论(0) 推荐(0) 编辑
摘要: Link: BZOJ 2152 传送门 Solution: 直接上点分治就行了(其实也可以树形$dp$) 其中对于穿过重心的边的统计类似于树形$dp$的计算方式: 将当前子树中模3分别为0/1/2的边与之前所有子树产生的边进行组合 Code: 阅读全文
posted @ 2018-07-13 07:12 NewErA 阅读(106) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 24 下一页