2014年9月1日
摘要: 最小生成树Kruskal原理参见上篇 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 const int maxn=105; 9 10 int x[maxn],y[maxn... 阅读全文
posted @ 2014-09-01 11:43 gfc 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 最小生成树Kruskal原理: 将边按权值从小到大排列,从小的开始取,用并查集标记已经到达的点,当取到当前边会形成环则放弃(当前边两个端点都已被标记在同一个连通块内);否则取当前边,将两个端点所在连通块标记到一起。因为只要判断两个端点是否在同一个连通块内,所以并查集可以路径压缩。边界:取到n-1条... 阅读全文
posted @ 2014-09-01 11:06 gfc 阅读(133) 评论(0) 推荐(0) 编辑
  2014年8月21日
摘要: 枚举。 枚举每个分段有多少个科目,对每个枚举的状态判断是否满足条件,对满足条件的取其中最大和最小值。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 const double eps=1e-8;... 阅读全文
posted @ 2014-08-21 09:59 gfc 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 开始以为是线段树,算了一下复杂度也觉得能过。。。但是这题貌似卡了线段树。。。具体做法: 对每一个塔,记录attack[l]+=d,attack[r+1]-=d;这样对于每个block,受到的伤害就是前缀和attack[1]+attack[2]+...+attack[i]; 从后往前遍历,计算从当... 阅读全文
posted @ 2014-08-21 09:45 gfc 阅读(126) 评论(0) 推荐(0) 编辑
  2014年8月19日
摘要: dp;枚举red,dp前i 个塔中有j 个蓝塔的最大伤害。机智的地方:dp前i 个塔的时候可以同时处理n-i 个红塔,这样就少了个循环。。。(枚举红塔的循环) 1 #include 2 #include 3 #include 4 using namespace std; 5 6 long l... 阅读全文
posted @ 2014-08-19 10:59 gfc 阅读(118) 评论(0) 推荐(0) 编辑
  2014年8月14日
摘要: 可以用线段树写。虽然有h(1h的情况。线段树保存区间剩余的空间最大值,每次询问+处理同时进行,优先选择左边。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int maxn = 200005 ; 7 8 ... 阅读全文
posted @ 2014-08-14 16:53 gfc 阅读(103) 评论(0) 推荐(0) 编辑
  2014年8月12日
摘要: 用map存信息,各种标记,各种。。。写的很乱,表在意。。。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 map mm[100005]; 8 map c; 9 map... 阅读全文
posted @ 2014-08-12 17:04 gfc 阅读(168) 评论(0) 推荐(0) 编辑
  2014年8月6日
摘要: 线段树。。。数组开2*n 居然不够。。。手动写出线段树后才发现可能会超出2*n 个数。一直找不到错在哪,wa到哭,当时就想,一个点修改线段树居然wa成这样,简直不要不要的了ps:hdu1754 I Hate It 也是这样写的,输入输出形式稍微改下,和改为最大值 1 #include 2 #inc... 阅读全文
posted @ 2014-08-06 17:17 gfc 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 线段树 1 #include 2 using namespace std; 3 4 const int maxn = 1000005; 5 const int INF = 1000000009; 6 7 struct node { 8 int sum,ma,mi; 9... 阅读全文
posted @ 2014-08-06 11:52 gfc 阅读(106) 评论(0) 推荐(0) 编辑
  2014年8月4日
摘要: 离散化+RMQ。离散化存储每个数出现的次数,再RMQ查询max次数。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int maxn=100005; 7 8 int count[maxn]; 9 int ... 阅读全文
posted @ 2014-08-04 18:44 gfc 阅读(144) 评论(0) 推荐(0) 编辑