- 博客(978)
- 资源 (2)
- 收藏
- 关注
原创 [DP] BZOJ 4247 挂饰
一个01背包#include#include#include#include#includeusing namespace std;typedef pair abcd;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,10
2016-06-20 21:35:26 307
原创 [贪心 二次函数] BZOJ 2667 [cqoi2012]模拟工厂
跪Po姐状压枚举每次Check的时候,对于每段时间显然先提高生产力再生产产品 那么我可以考虑这一段内先尽量提高生产力 但是这样可能会导致生产力提高得太高而没有足够的时间生产产品使得某个订单失败 因此我们计算出对于后面的每一个订单,最多花多少时间提高生产力可以满足如果用接下来的时间都生产的话不至于fail 由于产品数量是关于提高生产力次数的二次函数 因此解个方程就行了
2016-06-19 21:19:26 680
原创 [Set 单调] BZOJ 2926 [Poi1999]空立方体问题
先考虑二维上的问题 然后就很好想到三维了没有SPJ真蛋疼#include#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2
2016-06-19 14:14:40 626
原创 [KD-TREE 堆] BZOJ 2626 JZPFAR
求第k远的点 大暴力啊#include#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1
2016-06-19 14:12:26 467
原创 [Contest] THUSC 2016 解题报告
T1想到了区间dp 没想到再加两维f[i][j][down][up] 表示在区间[i,j]取数 还剩下[down,up]中的数的最小代价转移f[i][j][down][up]=min{初始值,f[i][k][down][up]+f[k+1][j][down][up]}其中 初始值 为[i,j]中去掉头尾连续的都处于值区间的数后取完的最小代价取完的代价g[i][j]=min{f[
2016-06-18 20:38:27 1070
原创 [TravelNotes] THUSC 2016 游记
第一次写游记哈从前的从前在老叶的号召下,把pkusc thusc都报了 但是pku不要我 学校其他人都被祝学习进步了又可以逃课啦 心里小小的自豪day0和老叶坐了几乎整个白天的火车早上看了Po姐的JOI的题 质量不错 都是可做的 但是电脑是在电池弱 就没在火车上码 //其实是懒下午和老叶看了pku的题 暴力搜索那题我做过啊 有FFT躶题啊 还有考DP吧
2016-06-09 00:15:08 868
原创 [整体二分 树状数组套线段树] BZOJ 2674 Attack
大暴力啊 96s+卡过 //本地明明44s+//要了数据才知道相对顶点可以不是左下和右上#include#include#includeusing namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+frea
2016-06-06 18:22:48 659
原创 [树状数组] BZOJ 4240 有趣的家庭菜园
%%%POPOQQQ从小到大枚举高度,由于无论将这株草移动到左侧还是右侧都对比它高的植物没有影响,因此贪心选择代价最小的方向即可 故答案为∑min(a[1…i-1]中大于a[i]的数的数量,a[i+1…n]中大于a[i]的数的数量) #include#include#includeusing namespace std;typedef long long ll;
2016-06-06 07:44:23 554
原创 [最短路] BZOJ 4239 巴士走读
暴力最短路#include#include#include#includeusing namespace std;typedef long long ll;typedef pair abcd;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fr
2016-06-06 07:42:27 902
原创 [树 乱搞] BZOJ 4238 电压
Po姐的说法任选一棵生成树,考虑选择树边或者非树边 定义一条非树边为好边当且仅当两个端点在树上的距离为奇数,否则为坏边 如果坏边只有一条那么这条坏边是可选的 如果一条树边被所有的坏边覆盖而且不被好边覆盖那么这条边是可选的 按照自己的理解 就是在所有奇环上 不在任何偶环上的边#include#include#include#includeusing n
2016-06-06 07:41:15 684
原创 [分治 单调栈] BZOJ 4237 稻草人
x排序 考虑分治左下角在左半边 右上角在右半边 两边各维护一个单调栈 然后左边查询在右边二分细节自行在代码中领会#include#include#include#include#define cl(x) memset(x,0,sizeof(x))using namespace std;typedef long long ll;inline char nc()
2016-06-06 07:37:32 763
原创 [Hash] BZOJ 4236 JOIOJI
把 (y-x,z-x)hash 一下就好了#include#include#includeusing namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1==p
2016-06-06 07:33:49 389
原创 [网格最小生成树] BZOJ 4242 水壶
平面网格上的最小生成树还可以这么做 Orzbfs一遍#include#include#include#includeusing namespace std;typedef pair abcd;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2
2016-06-06 07:01:28 1281
原创 [分治] BZOJ 3745 [Coci2015]Norma
考虑分治 左端点在左边 右端点在右边枚举左端点 分情况讨论最大最小分别在哪边 然后前缀和处理#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1
2016-06-06 06:58:05 672
原创 [高斯消元 线性基 生成树 随机化权值Xor] BZOJ 3569 DZY Loves Chinese II
很好的建图姿势:我们找到这个图的任意一棵生成树 然后对于每条非树边将其的权值赋为一个随机数对于每条树边 我们将这条树边的权值设为所有覆盖这条树边的边权的异或和那么图不连通当且仅当删除一条树边和覆盖这条树边的所有边集 而由于刚才的处理一条树边和覆盖这条边的所有边集的异或和为零于是问题转化成了对于给定的k条边是否存在一个边权的异或和为零的子集 果断高斯消元 由于使用
2016-06-06 06:54:51 599
原创 [组合数学] BZOJ 2467 [中山市选2010]生成树
Po姐传送门:http://blog.csdn.net/PoPoQQQ/article/details/41348131main(n,a,T,i){scanf("%d",&T);while(T--){scanf("%d",&n);a=4*n;while(--n)a=a*5%2007;printf("%d\n",a);}}
2016-06-06 06:52:36 531
原创 [DP Euler Zigzag Number] BZOJ 1925 [Sdoi2010]地精部落
Euler Zigzag Number什么的太神啦推导:http://blog.csdn.net/vmurder/article/details/44604275#include#include#includeusing namespace std;const int N=5005;int n,P;int f[2][N];int main(){
2016-06-06 06:51:06 931
原创 [最大密度子图 最小割] BZOJ 1312 Neerc2006 Hard Life
就是裸题啦比较好的建模推导:http://www.cnblogs.com/vongang/archive/2012/10/25/2740042.html自己也也要做到能推呢#include#include#include#include#include#define V G[p].v#define eps 1e-5#define cl(x) memset(x,0,
2016-06-06 06:47:31 983
原创 [KD TREE] BZOJ 3053 The Closest M Points
k维的kdtree啊怎么说呢 kdtree就是各种剪枝啊#include#include#include#include#define inf 2147483647using namespace std; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p
2016-05-29 21:40:31 429
原创 [拓扑序DP 记忆化搜索] BZOJ 4562 [Haoi2016]食物链
考生物啊 真是全面发展啊水题 记忆化搜索#include#include#include#define V G[p].vusing namespace std; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100
2016-05-29 21:39:01 408
原创 [并查集 树] BZOJ 4551 [Tjoi2016&Heoi2016]树
本来想的二分加树链剖分结果直接离线并查集可过记录fat为上边的第一个有标记的祖先#include#include#include#define V G[p].vusing namespace std; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1
2016-05-29 21:37:28 352
原创 [DP] BZOJ 1270 [BeijingWc2008]雷涛的小猫
水题#include#include#includeusing namespace std; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1==p2) return EOF
2016-05-29 21:34:48 329
原创 [平衡树动态维护凸包] BZOJ 2300 [HAOI2011]防线修建
就是叉积乱搞 set水过#include#include#include#include#include#includeusing namespace std; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,
2016-05-29 21:34:01 749
原创 [主席树优化建图 最小割] BZOJ 3218 a + b Problem
膜拜PoPoQQQ的题解:http://blog.csdn.net/PoPoQQQ/article/details/42557217#include#include#include#include#define cl(x) memset(x,0,sizeof(x))#define V G[p].vusing namespace std;typedef long long
2016-05-29 21:32:22 476
原创 [NTT 原根 指标 多项式快速幂] BZOJ 3992 [SDOI2015]序列统计
注意到,M 是质数 乘法取个log变加法 也就是取指标于是对于1 ~M−1 中的每一个数都可以表示成原根的某次幂。于是乘法可以转化为原根的幂的加法,转移的时候就相当于做多项式乘法了然后快速幂又是道数论好题#include#include#include#includeusing namespace std;typedef long long ll;
2016-05-29 21:29:31 1117
原创 [权值线段树套kd树 替罪羊式重构] BZOJ 4605 崂山白花蛇草水
就是个树套树就是claris的剪枝好神ORZ#include#include#include#includeusing namespace std;typedef long long ll; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+f
2016-05-29 21:26:23 1215
原创 [Contest] 2016"百度之星" - 初赛(Astar Round2A)
被虐了 自己好弱1001就是个比较裸的矩阵快速幂了#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fr
2016-05-21 19:10:34 465
原创 [莫比乌斯函数] BZOJ 2986 Non-Squarefree Numbers & BZOJ 2440 [中山市选2011]完全平方数
不知不觉就发现了2440的双倍经验考虑二分 然后用容斥求出数量 x以内的无平方因子数=无需是任何质数的倍数的数的数量(即x)-是至少一个质数平方倍数的数的数量+是至少两个质数平方倍数的数的数量-是至少三个质数平方倍数的数的数量...发现每个数前的符号与莫比乌斯函数一致然后么 复杂度分析 Orz2986的代码#include#
2016-05-20 16:48:02 677
原创 [数学 欧拉筛] BZOJ 2721 [Violet 5]樱花
发现不会markdown捉急啊hzwer的题解:“设n!=z,y=z+d1/x+1/y=1/z1/x+1/(z+d)=1/z(x+z+d)/(x*z+dx)=1/zz(x+z+d)=x*z+dxz^2+dz=dxx=z^2/d+z发现就是求z^2的约数个数分解质因数随便做。。”#include#inclu
2016-05-20 16:44:14 472
原创 [单调队列] BZOJ 1071 [SCOI2007]组队
怎么看都是n3然后弱弱的去膜了题解:http://www.cnblogs.com/rausen/p/4007292.html#include#include#includeusing namespace std;typedef long long ll; inline char nc(){ static char buf[100000],*p1=buf,*p2=bu
2016-05-20 16:41:14 548
原创 [构造] BZOJ 2530 [Poi2011]Party
考虑删点 每次找一对没有连边的点对将其删掉 至少删掉了1个不在团中的点 那么不超过1/3次操作后所有不在团中的点都会被删掉 此时最多删掉了2/3个#include#include#includeusing namespace std;const int N=3005;int n,m,cnt=0;int a[N][N],vst[N];int main
2016-05-20 16:39:43 401
原创 [二进制构造 || DP] BZOJ 3107 [cqoi2013]二进制a+b
可以类似数位DP然后Po姐 的构造好劲啊 Orzhttp://blog.csdn.net/popoqqq/article/details/48006557#include#include#includeusing namespace std;inline int lowbit(int x){ return x&-x;}inline int digit(in
2016-05-20 16:36:48 417
原创 [组合数学] BZOJ 4403 序列统计
就是个m元线性方程的非负整数解个数C(n+m-1,m-1) 嘛#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(b
2016-05-20 16:24:16 528
原创 [树形DP 启发式合并 神题] BZOJ 4543 [POI2014]Hotel加强版 & BZOJ 3522 [Poi2014]Hotel
%%%神犇的题解转移不难想 关键是空间和时间空间用轻重链的思想和指针转移 时间么 指针转移&启发式合并复杂度的证明比较巧妙“任意设一点作为根。令 f(a, d) 表示在以 a 点为根的子树中,与 a 距离为 d 的节点数;g(a, d) 表示在以a 为根的子树中选择两个节点,满足剩下的一个节点 s 需在 a 子树外选择且与 a 的距离必须为 d 的方案数。则方案
2016-05-18 21:31:46 2093 1
原创 [弦图判定 完美消除序列 MCS算法] BZOJ 1242 Zju1015 Fishing Net弦图判定
详细看《弦图与区间图-陈丹琦》:http://wenku.baidu.com/link?url=H7Jlvsd5OfkTMgLhVneYZrkQCBC7IW5ruDjY7m2rPY94nJ1wur6fQfPCcyme2cA7jbE1fEN4Tps2CQXm9sOuW9XC6batJNTEMYw5LXNxheu#include#include#include#define V G[
2016-05-18 21:27:13 1127
原创 [弦图 最小染色 完美消除序列 MCS算法] BZOJ 1006 [HNOI2008]神奇的国度
弦图好神奇 详细看《弦图与区间图-陈丹琦》:http://wenku.baidu.com/link?url=H7Jlvsd5OfkTMgLhVneYZrkQCBC7IW5ruDjY7m2rPY94nJ1wur6fQfPCcyme2cA7jbE1fEN4Tps2CQXm9sOuW9XC6batJNTEMYw5LXNxheuOrz反正弦图的很多操作都是在完美消除序列上做的#in
2016-05-18 21:25:52 906
原创 [KD-TREE] BZOJ 2648 SJY摆棋子 & BZOJ 2716 [Violet 3]天使玩偶
题意:找最小曼哈顿距离 带插入#include#include#includeusing namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1==p2) ret
2016-05-18 18:32:46 1257
原创 [KD-TREE 堆] BZOJ 4520 [Cqoi2016]K远点对
题意:k远点对不难想 用堆维护#include#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf
2016-05-18 18:31:19 550
原创 [KD-TREE] BZOJ 2850 巧克力王国
题意:一个半平面内点权和应该都能看懂#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100
2016-05-18 18:29:57 595
原创 [KD-TREE] BZOJ 1941 [Sdoi2010]Hide and Seek
题意:曼哈顿距离最大值与最小值的差模板题#include#include#includeusing namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1==
2016-05-18 18:28:27 400
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人