智商
pbihao
这个作者很懒,什么都没留下…
展开
-
【BZOJ 3043】 IncDec Sequence 差分+智商
很有趣的一道题目,就是那种想了半天一看题解自叹mdzz,qaq由于是区间修改,所以一段区间内的相对值是不会改变的,那么我们设b[i]=a[i]-a[i-1](1a[j]其实影响的就是b[i]加一或者减一 b[j+1]减一或者加一,为了步数最少,所以我们用正数和负数互相消,留下来的那些就只能慢慢一个一个来了设x为正数和,y为负数和的绝对值,答案就是max(x,y),第二个显然abs(x-y),也原创 2017-01-06 07:35:46 · 460 阅读 · 1 评论 -
【BZOJ 3080】Minimum Variance Spanning Tree kruscal
首先可以很显然的观察到边权值很小,所以方法就是枚举答案树的边权和,这样就可以算出平均值,然后把每一条边的的新权值就是边权减平均值的平方,然后做最小生成树,如果最小生成树的边权和等于枚举的边权和就用当前答案来更新最终的答案。因为每一个权值和都会枚举到,所以一定会枚举到答案的总边权和,所以一定会更新答案。#include#include#include#include#include#d原创 2017-02-11 11:44:33 · 450 阅读 · 0 评论 -
【 BZOJ 3721】 PA2014 Final Bazarek 贪心
其实一开始的想法就是排序以后然后奇数偶数,奇数就直接输出,偶数就掉前面的最小奇数加上后面的最大的偶数或者反过来取更优。但是一直不知道怎么证明,看网上也大都没有证明(贪心不证明的话很容易gg啊。。。逃)后来一想其实还是好想。首先排序然后要满足前缀和为奇数,说明奇数一定出现奇数次,偶数随便出现多少次,那么当前缀和为偶数的时候也就意味着奇数出现了偶数次,此时我们考虑调整数列。1.减少或者增加原创 2017-01-19 22:12:08 · 244 阅读 · 0 评论 -
【BZOJ 1528】[POI2005]sam-Toy Cars 贪心+堆
很显然如果不够k的话就不用放回去,如果够了就需要放回去一个,这时候只要放回去的是之后用到的最远的一个就可以了,用一个nxt数组然后堆维护,最后就是弹出堆的时候需要判断一下这一个是否已经放回去了。#include#include#include#include#define MK make_pair#define maxn 500055using namespace std;int原创 2017-01-19 11:46:08 · 386 阅读 · 0 评论 -
【BZOJ 3714】[PA2014]Kuglarz 最小生成树
解法有点。。。迷要知道每一个杯子的情况,有球为1,没有球为0,sum为前缀和,即了解每一个sum[i]-sum[i-1],显然如果我们知道了sum[k]-sum[i]和sum[j]-sum[k]那么sum[j]-sum[i]也就是已知的了,而且其中任选两个都能推出第三个,也就是说每一询问i,j我们就将i,j-1加入一个集合中,那么集合中的任意两个点都是可以通过其他点推出来的,又要求最后权值最小原创 2017-02-16 20:40:11 · 275 阅读 · 0 评论 -
【BZOJ 4419】[Shoi2013]发微博 单纯暴力
额,题意有毒,原来只有直接相连的点才能接受消息,还想了一发LCTqaq从点出发貌似就只能想到set来维护,但是调整思维,从每一条边来考虑的话就要好得多。维护每一个节点的出现次数后缀和,当加上一条边的时候就在两边分别加上后缀和,减去的时候就直接减就好了。#include#include#include#define maxn 500051#includeusing namespace原创 2017-02-08 11:31:05 · 283 阅读 · 0 评论 -
【BZOJ 1301】[LLH邀请赛]参观路线 链表
一开始偷懒用map和set狂T不止,只好老老实实地用链表,我靠,这么水的题目浪费这么半天#include#include#include#include#include#define maxn 100021using namespace std;int n,m,st,nx[maxn],fr[maxn];vectorg[maxn];void read(int& x){ x=0原创 2017-02-06 21:23:48 · 468 阅读 · 0 评论 -
【BZOJ 2396】神奇的矩阵 矩阵+随机
其实不要放过题目给出的每一个信息,就像这一道题,思考为什么一定是矩阵,为什么不是一个简单的数列之内的,说明解决这一道题就很用到矩阵的特殊性质。其中矩阵有一个性质就是A*B=C,C的行数等于A的行数,C的列数等于B的列数,所以我们完全可以随机构造一个n行1列的举证,然后利用矩阵乘法的结合律把矩阵变成n行1列的新矩阵,然后判断。#include#include#include#defin原创 2017-02-05 11:40:05 · 351 阅读 · 0 评论 -
【BZOJ 3251】树上三角形 暴力
被秀逗了。。。。考虑不能都成三角形的情况,就是类似于斐波拉契数列,而在int内的只有46个所以每一次先特判,如果大于46直接输出Y否则无脑暴力莽一波。其实一开始还是想到了去找不能组成三角形的情况,但是至于斐波拉契。。。我擦,完全没想到#include#include#include#include#define maxn 100021#define LL long long原创 2017-02-05 11:34:56 · 219 阅读 · 0 评论 -
【BZOJ 2321】[BeiJing2011集训]星器 脑洞
证明不同列行之间要保证有解也是可以看成一起移动的设p(x,y),q(a,b)势能为x*x+y*y+a*a+b*b 1两点向中间移动一格 p(x,y+1) q(a,b-1) 新势能x*x+y*y+2*y+1+a*a+b*b-2*b+1 22,1相减为2*y+1-2*b+1=2*(y-b+1)恰好是两点移动的价值可是,第一次做的话想得出来个毛线啊。。。。。再怎原创 2017-01-06 20:55:00 · 334 阅读 · 0 评论 -
【BZOJ 2563】 阿狸和桃子的游戏 脑洞+贪心
一个不错的题目。因为是求两人得分的差值,所以我们将边权对半分,分别加在所连接的两点上,这样如果两边是不同的人拿的话,相减就等于没有拿,而如果是相同的人拿,就相当于拿全了,但是为了避免浮点数,所以采用点权乘二,最后答案/2#include#include#include#include#define maxn 100020#define LL long longusing names原创 2017-01-06 18:38:55 · 287 阅读 · 0 评论 -
【BZOJ 4052】[Cerc2013]Magical GCD 暴力+gcd
有一个套路就是每一次加入一个数字区间的gcd肯定是不上升的,而每一次下降也会是至少下降为1/2,所以本质不同的gcd的个数并不会有太多,既然这样就可以枚举右端点然后暴力维护左端点有相同的gcd就删除l大的那一个然后就好。#include#include#include#include#define maxn 100021#define LL long longusing names原创 2017-03-27 11:54:14 · 420 阅读 · 0 评论