- 博客(4)
- 收藏
- 关注
原创 主席树练习代码
luogu【可持久化线段树1】:#include<bits/stdc++.h>using namespace std;const int maxn=200010;int tot,n,m;int sum[maxn<<5],rt[maxn],lc[maxn<<5],rc[maxn<<5];//线段树相关 int a[maxn],b[ma...
2018-09-16 21:31:26 173
原创 match 匹配
第一眼的感觉是二分图匹配,但复杂度较高,最佳得分为50。其实仔细观察可以发现,将a从小到大枚举,b的可选区间是单调向右移动的。我们每次贪心,都取区间最左边未取的点,既可以得到最大对数。这里有dp,但其实也没必要。。。#include<cstdio>#include<cstring>#include<iostream>#include<al...
2018-09-09 17:03:07 303
原创 grass 剪草
【题目描述】 有N棵小草,编号0至N-1。奶牛Bessie不喜欢小草,所以Bessie要用剪刀剪草,目标是使得这N棵小草的高度总和不超过H。在第0时刻,第i棵小草的高度是h[i],接下来的每个整数时刻,会发生如下三个步骤: (1)每棵小草都长高了,第i棵小草长高的高度是grow[i]。 (2)Bessie选择其中有一棵小草并把它剪平,这棵小草高度变为0。注意:这棵小草并没有死掉,它下一...
2018-09-09 16:50:54 303
原创 APIO2013 道路费用
题目链接 大意是说,调整k条特殊边边的值,并在原图的基础上构建最小生成树。使得经过所有特殊边的值之和最大。感谢dasxxx学长指出题目要素(加上新边,两点之间最多只有一条边),请各位在理解下文解法时特别注意,如果没有这一要求是不能设计如下算法的。在此安利一下HGEEK首席程序员的博客。大致解法: 先缩点。可以知道,对答案有贡献的只有k条新边。先将k条边进行最小生成树,再构建一棵完成的最...
2018-09-09 16:19:10 293
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人