摘要: "链接" 对于每个状态$f[j]$多记录一个维度,转移的时候利用类似于归并排序的方法合并,以保证时间复杂度可以承受 注意事项:前$K$大可以有重复的价值 cpp include include include using namespace std; const int MAXK=55; const 阅读全文
posted @ 2019-10-26 18:39 yjk 阅读(153) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 按顺序对于每个座位找一个最近的同时编号最小的牛就行了 cpp include include include define int long long using namespace std; const int MAXN=1010; const int INF=1e18; int n 阅读全文
posted @ 2019-10-26 18:24 yjk 阅读(212) 评论(0) 推荐(0) 编辑
摘要: "题目描述" 最大化平均值 二分一个$x$ $check$: $\frac{F+\sum_{i=1}^{n} X_{i} \times F_{i}}{M+\sum_{i=1}^{n} X_{i} \times M_{i}}\geq x$ $F+\sum_{i=1}^{n} X_{i} \times 阅读全文
posted @ 2019-10-26 18:20 yjk 阅读(164) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 先把$1$作为根求每个子树的$size$,算出把$1$作为集会点的代价,不难发现把集会点移动到$u$的儿子$v$上后的代价为原代价 $v$的$size$\ 边权+(总的$size$ $v$的$size$)\ 边权 cpp include include include define i 阅读全文
posted @ 2019-10-26 17:08 yjk 阅读(133) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 二分答案,判断需要断几条边,用$f[i]$表示以$i$为根的子树断边后的最长路径,对于一个点$u$,存在$f[v] mid$时就删到$v$的边$f[v1]+f[v2] mid$时就删$f$较大的边,可以sort之后搞一搞 阅读全文
posted @ 2019-10-26 16:45 yjk 阅读(148) 评论(0) 推荐(0) 编辑