首先O(n2)dp很好想 f[i][j]表示i子树内的所有边都被覆盖且i~j的路径也都被覆盖的最小花费。 考虑去掉无用的状态,其实真正用到的就是每一条链。 去掉第二维,f[i]表示i子树内的边都被覆盖且父向边也被覆盖的最小花费。 那么怎么转移呢? f[i]可以是任意一条包含i和fa[i]的链转移而来 ...
分类:
其他好文 时间:
2017-10-29 17:41:40
阅读次数:
132
题意:有1到n的数组,每次删除第k小的值,并求和 题解:splay基本操作,删除+合并 坑点:由于不会c++指针操作,sb的只删除了头指针导致一直mle #include<bits/stdc++.h> #include<ext/rope> #define fi first #define se se ...
分类:
其他好文 时间:
2017-10-29 14:31:59
阅读次数:
182
题目链接:https://vijos.org/p/1234 白天刚刚写完prim的算法,晚上就心血来潮的打了一道最小生成树的题 虽然有题解说可以用prim做,但是这道题明显是加最小的边,感觉kruskal方便多了 但是愉快的是我竟然不是一次过,最后发现是题意理解问题,我之前读了很多遍题,还是以为n朵 ...
分类:
其他好文 时间:
2017-10-29 11:21:16
阅读次数:
211
题意:一个值1到n的数组,一种(多次)操作把l到r的区间反转,然后放到数组尾部 题解:裸的splay,用区间合并和区间分割,反转用lazy标记+pushdown就好了 #include<bits/stdc++.h> #include<ext/rope> #define fi first #defin ...
分类:
其他好文 时间:
2017-10-28 23:51:20
阅读次数:
260
预计分数:100+60+0=160 实际分数:100+30+20=150 T1立方数(cubic) 题目描述 LYK定义了一个数叫“立方数”,若一个数可以被写作是一个正整数的3次方,则这个数就是立方数,例如1,8,27就是最小的3个立方数。 现在给定一个数P,LYK想要知道这个数是不是立方数。 当然 ...
分类:
其他好文 时间:
2017-10-28 22:05:01
阅读次数:
171
先引入包,一般EDA需要引入如下包: 1 import numpy as np 2 import pandas as pd 3 import matplotlib.pyplot as plt 4 import seaborn as sns 5 plt.style.use('fivethirtyeig ...
分类:
其他好文 时间:
2017-10-28 20:29:32
阅读次数:
320
一:01背包 #include<cstdio> #include<algorithm> using namespace std; int m,t; int f[1001]; int w[1001],c[1001]; int main() { scanf("%d %d",&t,&m); for(int ...
分类:
其他好文 时间:
2017-10-28 17:39:09
阅读次数:
172
题意:给你一个长度为n的字符串,每次你可以消去一段连续的回文子串,剩下的两端重新拼接成一个新的串,问最少需要消去多少次。 思路:这题一开始想不出,不好dp,一个明显的思路是用dp[i][j]表示消去i到j段最少要的次数,但是不知道每次消去后剩下的串的回文串情况,所以我们要换一个思路。其实题目中的回文 ...
分类:
其他好文 时间:
2017-10-27 23:03:27
阅读次数:
188
贪心 题目看错了。。。还以为是从操作序列中选5个。。。然后半个小时没了。。。 我们把每位分别用0和1带入,看看返回值是什么,然后分类讨论。千万不用特判!!!之前忘了删了就fst。。。 #include<bits/stdc++.h> using namespace std; const int N = ...
分类:
其他好文 时间:
2017-10-27 21:32:39
阅读次数:
221
二分概率+矩乘+dp 也是二分概率,然后dp[i][j][k]表示当前到了i,有j条命,下一次的收益是k,然后矩乘转移,但是我自己的似乎wa了,抄了liu_runda的才行,具体不知道为什么 注释的是我自己写的,谁能告诉我哪里错了? #include<bits/stdc++.h> using nam ...
分类:
其他好文 时间:
2017-10-27 21:30:23
阅读次数:
178