题目大意:给定一个01序列,提供三种操作:
0:把一段区间的所有元素都变成0
1:把一段区间的所有元素都变成1
2:把一段区间内的所有元素全都取反
3:查询一段区间内1的个数
4:查询一段区间内最长的一段连续的1
首先如果没有操作4这就是bitset的水题。。。多了这个,我们考虑线段树
线段树的每一个节点存修改标记和翻转标记,以及该区间的信息
虽然查询的信息都是1 但是我们要连0一...
分类:
其他好文 时间:
2014-09-18 19:03:34
阅读次数:
171
1034: [ZJOI2008]泡泡堂BNBTime Limit:10 SecMemory Limit:162 MBSubmit:1398Solved:727[Submit][Status]Description第XXXX届NOI期间,为了加强各省选手之间的交流,组委会决定组织一场省际电子竞技大赛,...
分类:
其他好文 时间:
2014-09-18 16:16:54
阅读次数:
249
题目大意:有一家宠物收养所,有没有被收养的宠物或者是想收养宠物的人,每个宠物有一个个性值,每个想收养宠物的人有一个理想的个性值。每一个时刻,宠物收养所里只能有想收养宠物的人或宠物。当人领走宠物时,就会有一个不满意度。求这个最小的不满意度。
思路:就是个模拟+数据结构维护。用set可以水过,时间卡的不是很紧。练手写了Treap。注意极大值不能开太大,会re
CODE:
#i...
分类:
其他好文 时间:
2014-09-18 14:54:14
阅读次数:
243
。。#include #include #include #include #include #include #include using namespace std;#define rep(i, n) for(int i=0; i=(n);--i)#define for4(i,a,n) for(...
分类:
其他好文 时间:
2014-09-18 14:41:03
阅读次数:
239
欧几里德算法计算最大公因数
算法通过连续计算余数知道余数是0为止没最后的非零余数就是最大公因数.
/***************************************************
code writer : EOF
code file : gcd.c
code date : 2014.09.18
e-mail : jasonleaste...
分类:
其他好文 时间:
2014-09-18 13:18:24
阅读次数:
272
题目大意:给定一个m*n的草坪,每块草坪上的植物有两个属性:
1.啃掉这个植物,获得收益x(可正可负)
2.保护(r,c)点的植物不被啃掉
任何一个点的植物存活时,它左侧的所有植物都无法被攻击
求最大收益
首先这个保护和被保护的关系就是最大权闭合图的连边关系 然后直接跑就行
然后我们就会发现没过样例0.0
原因当图出现环时,根据题意,环上的所有点都不能取(想象一个无冷却的食人花前面放...
分类:
其他好文 时间:
2014-09-17 18:48:52
阅读次数:
1172
题目大意:给定一条折线,要求选择一个点建立高度为h的瞭望塔,要求瞭望塔塔顶可以看到折线上的每一个点,求h的最小值
正解:半平面交
不会!
于是我们选择模拟退火来寻找瞭望塔的横坐标
确定瞭望塔的高度的时候我们选择二分处理 对于二分的每一个值 我们把折线上的端点从左到右枚举 瞭望塔的塔尖到每个端点的连线必须从左到右逆时针顺序 否则就会被遮挡
如图,塔尖到点2的连线在到点1的连线的顺时...
分类:
其他好文 时间:
2014-09-17 13:43:02
阅读次数:
316
首先这题应该改名叫吊打出题人
题目大意:给定n个质点,求重心
这n个质点的重心满足Σ(重心到点i的距离)*g[i]最小
模拟退火的裸题
尼玛交了两篇 死活过不去 各种改参数 最后发现是我的INF不够大 尼玛!
这题INF开0x3f妥妥过不去。。。起码要max_of _long_long附近才可以
最后写了10188MS,BZOJ倒数第一……这也是种艺术啊0.0
#include
#i...
分类:
其他好文 时间:
2014-09-16 20:36:31
阅读次数:
1234
1016: [JSOI2008]最小生成树计数orz,感觉对最小生成树的理解又加进了一步。ps:不得不说对于经典算法的探究是永无止境的,只能通过交流和增长见识来学习和体会,自己研究确实困难。让我们来深入分析一下kruskal算法。算法过程不多说,直接证明:假设算法考虑到第k条边,这时发现边的两端已经...
分类:
其他好文 时间:
2014-09-16 20:34:41
阅读次数:
244
求两个数a和b的最大公约数,可以想到的是从[1,min(a,b)]枚举每个正整数:#includeusing namespace std;int gcd(int a,int b){ int ans=1; for(int i=2;i>a>>b; cout=b)证明:设gcd(a,b)...
分类:
其他好文 时间:
2014-09-16 10:41:00
阅读次数:
188