
BZOJ
文章平均质量分 69
Flaze_
一只蒟蒻【扑通扑通跪laekov 扑通扑通跪yjqqqaq 扑通扑通跪mhy12345 扑通扑通跪zms_
展开
-
BZOJ 2152: 聪聪可可【树形dp
……煞笔树形dp看错题调了一年怎么办QAQ…直接上代码了没什么好说的码风越来越丑我也很绝望啊【#include#define MAXN 20005using namespace std ; int n ;inline int read() { register int ch = getchar() ; while (!isdigit(ch)) ch = getchar()原创 2017-02-14 18:35:03 · 692 阅读 · 0 评论 -
BZOJ 1799 [Ahoi2009]self 同类分布【数位dp
枚举数字总和为多少(设为mod),f[i][j][k][0..1]表示算到第i位,前i位的和为j,这个数的数值%mod=k,是否顶上界转移就是f[i+1][j+x][(k*10+x)%mod] += f[i][j][k]这样的(顶上界的特判一下嘛,上面那个公式就省略0..1那一维了【滑稽手癌把i打成了x,调了一年2333#includeusing namespace st原创 2016-12-01 10:04:13 · 444 阅读 · 0 评论 -
BZOJ 4466 [Jsoi2013]超立方体【模拟
发现n维超立方体有2^n个定点,2^(n-1)*n条棱,每个点的度数为n发现只有在二进制表示下 只有一位不同的两个点之间才有边于是check上面那三个点可以先判断-1用id[i] 表示 i 号点的标号然后进行标号把原来的0号点标为0,与它相邻的点分别标为2,4,8,16....从与0号点相邻的点开始bfs,每个点记录dis[i],表示i号点与0号点的距离原创 2016-12-01 16:09:21 · 675 阅读 · 0 评论 -
BZOJ 4318: OSU!【期望
……考noip2016前……想着反正noip不会考期望于是就把这题坑了……考完填坑……看了Q巨的题解忽然觉得期望很好玩2333题解看Q巨的blog好了,考虑每一位为1的贡献,直接考虑从上一位的答案转移到现在的答案,于是类似差分一下……??【不会描述了2333可以试试看代码x#include#define MAXN 100005using namespace std; int n原创 2016-11-21 16:24:55 · 423 阅读 · 0 评论 -
BZOJ 3450: Tyvj1952 Easy【期望
几周前挖的期望坑233填坑2333用f[i]表示前i位的期望得分,l[i]表示当前位往前数 连续1的期望长度。如果第i位为1的概率为p[i],f[i] = f[i-1] + ( l[i-1] * 2 + 1 ) * p[i]……反正…第i位如果是1,那么f[i] 比起 f[i-1] 多出来的就是 l[i]^2 - l[i-1]^2 的分数…………意会一下啦QAQ反正期望的转原创 2016-11-21 16:38:33 · 365 阅读 · 0 评论 -
BZOJ 1419: Red is good【期望
看了眼数据范围……n^2啊……不怂了似乎要炸空间?滚一下可以随时终止的话每个状态和0取个max就好f[i][j]表示i个红j个黑的期望收益,显然可以通过算 下一个拿的是红还是黑 来转移代码:#include#define MAXN 5005using namespace std; int n,m;long double f[2][MAXN];int main(){ s原创 2016-11-21 20:14:33 · 509 阅读 · 0 评论 -
BZOJ 1142: [POI2009]Tab【并查集/hash
有一万种写法2333可以hash可以并查集,反正xjb写写就好【并查集虚的不行2333竟然没有T#include#define MAXN 1005#define base 1000000#define MAXZ 2000006using namespace std; int T,n,m;inline int read(){ register char ch = getcha原创 2016-12-12 15:56:33 · 547 阅读 · 0 评论 -
1411: [ZJOI2009]硬币游戏【xjb找规律
xjb手玩找规律,并发现这个规律很靠谱然后把操作次数拆成2的次幂之和,完了#include#define MAXN 200005using namespace std; long long n,T;inline long long read(){ register char ch = getchar(); while(!isdigit(ch)) ch = getchar();原创 2016-12-12 16:15:26 · 811 阅读 · 0 评论 -
BZOJ 4424: Cf19E Fairy【强行树链剖分
显然二分图只要没有奇环就好了于是随便搞一棵生成树然后找出所有只包含一条非树边的环就好了……发现求的就是所有奇环的交中不被任一偶环覆盖的边注意如果只有一个奇环的话那条非树边也是合法答案树链求交参考NOIP2015D2T3#include#define INF 0x3f3f3f3f#define MAXN 1000005using namespace原创 2016-12-12 16:32:53 · 657 阅读 · 0 评论 -
BZOJ 3823 定情信物【脑推公式/找规律,线性求逆元,坑爹的数论题细节x
如果用f[i][j]表示i维空间里的j维元素有多少个,有公式 f[i][j] = C(i,j) * 2^(i-j)……看题解似乎都是找规律的啊……sro mhy orz考虑j维向量的方向有C(i,j)个,对于每个方向的向量,可以放置的位置的数量 显然就是剩下的几维随便填的方案数,2^(i-j)毛神他们加的数据……大概就是当n>p的时候……p的倍数没有逆元这样的毒瘤数据,稍微记一下有原创 2016-11-08 23:53:07 · 1000 阅读 · 0 评论 -
BZOJ 1367 [Baltic2004]sequence【脑洞+可并堆
在黄学长博客看到似乎是某国集大爷的论文例题?先考虑不严格递增的考虑对于一段数,如果是递增的,那么应该z[i]=t[i]最优,如果是递减显然应该区间中的z都等于这个递减区间的中位数最优,于是可以把整个数列分成一堆递减的,用堆维护中位数;对于得到的中位数序列重复上面的操作,显然可以不断合并相邻的堆直到全部递增然后发现并不需要每次把整个数列分割成递减区间,可以直接把每个数当成原创 2016-11-30 14:31:22 · 450 阅读 · 0 评论 -
BZOJ 4627: [BeiJing2016]回转寿司【前缀和,值域线段树
就是求 区间和∈[L,R]的区间的个数求一下前缀和,就是对于每个右端点查询左边 前缀和∈[sum[i]-R , sum[i]-L]的个数值域线段树瞎搞搞就好注意值可能为负还要先插入一个0表示sum[0] = 0 【感谢良心样例#include#define MAXN 100005#define INF 10000000000llusing namespace std;原创 2016-11-12 23:05:17 · 809 阅读 · 0 评论 -
BZOJ 2506: calc【离线,值域分块
……看到这么鬼畜的不好维护的区间,考虑离线,从左到右添加数列中的数因为值域是1e4,考虑p100的情况。p100的时候,O(1)地更新,O(√值域)地查询添加每个数的时候,对于p100的显然只有100左右个数对答案有贡献,于是枚举就好了……反正这种套路我应该学不会x#include#define MAXN 100005#define MX 10005using n原创 2016-11-14 21:16:16 · 639 阅读 · 0 评论 -
BZOJ 3339 Rmq Problem【离线,值域线段树
区间mex,考虑离线按左端点排序左端点右移时,这个数到它的下一个数之间的位置(作为右端点)的mex值全部与当前数取min#include#define MAXN 200005#define MX 200005#define INF 0x3f3f3f3fusing namespace std; int n,m;inline int read(){ char ch=getchar(原创 2016-11-15 14:45:05 · 570 阅读 · 0 评论 -
BZOJ 3181: [Coci2012]BROJ 【数据分治(暴力+(二分&&容斥))
根据数据范围猜解法,数据分治!!!【x好吧……其实是先想到了容斥的,然而容斥姿势不太好果断GG没写,反正觉得容斥的话p肯定不能太大,然后又yy了循环节啥的各种鬼畜东西233333(虽然最后发现根本没什么卵用然后在考试结束前几分钟被小朋友嘲讽,忽然就想到了怎么写p比较大的,在线性筛的时候,顺手记录每个数的最小质因子,因为p大,所以p的系数应该是很小的,于是直接枚举,如果枚举到的数的最小质因子原创 2016-11-16 17:17:46 · 664 阅读 · 0 评论 -
BZOJ 1694 && 2037 【DP……算是区间?
先送个大爷的题解传送门显然在经过了l点和r点之后,[l,r]中途的点也是经过了的,并不会有任何贡献,于是可以用f[l][r]来记录这一段的贡献,还要记录当前是在左端点还是右端点,于是再开一维0..1就好了每次转移到 l-1和r+1,转移的代价就是当前未经过的点在转移的时间里减少的价值。BZOJ 1694直接用数量就好,2037开个前缀和瞎搞搞就好注意给出的数据是无序原创 2016-11-13 15:28:18 · 433 阅读 · 0 评论 -
BZOJ 2809 [Apio2012]dispatching【可并堆(贪心
开了很久的坑,显然对于每个节点,选择以它为根的最小的那几个最优,于是每个节点开一个大根堆,从叶子往上合并就好,如果不合法就弹掉最大的元素#include#define MAXN 100005using namespace std; int n,m;inline int read(){ register char ch = getchar(); while(!isdigit(ch))原创 2016-11-29 17:29:33 · 461 阅读 · 0 评论 -
BZOJ 1455 罗马游戏【可并堆+并查集
对于每个集合维护一个堆,merge就合并,注意已经死了的不会被操作……【因为这个wa了一年2333总觉得1e6跑起来很虚?结果快的飞起#include#define MAXN 1000005using namespace std; int n,m;inline int read(){ register char ch = getchar(); while(!isdigit(ch)原创 2016-11-29 17:31:32 · 391 阅读 · 0 评论 -
NOIP 2015 D2 T1T2T3【写着玩
……去年去考D2似乎只有二十分来着……【捂脸于是今天晚上就补补进度【T1:二分答案【去年不会于是写的贪心【跪地#include#define MAXN 50005using namespace std; int l,n,m;int a[MAXN];bool check(int x){ for(int pre = 0,cnt = 0,i = 1;i<=n;++i){ if原创 2016-11-16 23:41:22 · 456 阅读 · 0 评论 -
BZOJ 4668: 冷战【并查集
……按秩合并的并查集高度是log的,直接暴力走就是了#include#define MAXN 500005using namespace std; int n,m;inline int read(){ register char ch = getchar(); while(!isdigit(ch)) ch = getchar(); register int rtn = 0; wh原创 2016-12-12 17:23:06 · 622 阅读 · 0 评论 -
BZOJ 2553: [BeiJing2011]禁忌【ACAM + 期望dp + 矩快优化
……反正瞎瘠薄搞搞,都是显然的#pragma GCC optimize(3)#include#define MAXN 80using namespace std; int n,m,ji;struct Matrix{ long double d[MAXN][MAXN]; int x,y; Matrix():x(0),y(0){memset(d,0,sizeof d);} M原创 2016-12-04 10:52:44 · 425 阅读 · 0 评论 -
BZOJ 3052: [wc2013]糖果公园【树上带修莫队
是这样的……几天前Flaze:我要学莫队QAQ我觉得整个机房只有我不会莫队QAQ花花:那你去写糖果公园吧,写了就会了Flaze【突然兴奋】:吼啊资瓷啊!…………然后………………在颓了一万年后#include#define MAXN 200005using namespace std ; int n , m , Q ;inline int read() { r原创 2017-01-26 19:26:58 · 720 阅读 · 1 评论 -
BZOJ 1176: [Balkan2007]Mokia【CDQ分治+树状数组
CDQ裸题,和2683基本一样……于是我就naive地直接粘了根本没看题……GG#include#define MAXA 200005#define MAXT 2000006using namespace std; int N,S;inline int read(){ register char ch = getchar(); while((ch^'-')&&!isdigit(ch原创 2016-12-12 16:00:41 · 411 阅读 · 0 评论 -
BZOJ 3812: 主旋律【状压dp+容斥
题解我就服这个大佬QAQ http://blog.miskcoo.com/2015/05/bzoj-3812简洁明了还赏心悦目,miskcoo家的题解超棒啊【跪在地上表白大佬忽然很想自己搭blog【趴良心样例啊我怀疑是因为前几天立的flag233333 当时磕了【k个连通块】就表示,磕主旋律…………于是肝了几天,被坐在右边颓废的jq挂起来裱233原创 2016-12-20 21:08:51 · 1076 阅读 · 0 评论 -
BZOJ 3343: 教主的魔法【分块基础题
……应该是第一次好好写分块的题2333333好暴力23333……总觉得写的好丑23333【以后分块就用yjq和laekov这两个变量名了,感觉稳得不行#include#include#include#include#include#define MAXN 1000005using namespace std; int n,m;inline int read(){ regis原创 2017-01-16 21:55:03 · 489 阅读 · 0 评论 -
BZOJ 4559: [JLoi2016]成绩比较【计数dp,容斥,组合数
听说王队长的题解特别妙【摔好吧的确挺♂妙先yy出求每个人相对排名不同的方案数(用f来记录)因为是有顺序的……所以不能直接容斥……就用 f[i] 表示 有刚好 i 个人被碾压的方案数 , 再用 至少 i 个人被碾压的方案数 减掉不合法的看代码吧,还是挺好懂的,或者前两篇题解也写的很稳【王队长的题解啊exciting然后求在每种排名下 分数不同的方案数……自原创 2017-01-12 18:00:47 · 1174 阅读 · 0 评论 -
BZOJ 2120: 数颜色 && 2453: 维护队列 【带修莫队版题【也可以学黄学长分块
……学莫队QwQ 好神啊QwQ复杂度什么的xjb讨论一下感觉好像挺对的23333加个修改就相当于变成三维的查询……直接用三个指针,维护当前记录的左端点右端点和时间,先把询问按照 第一关键字:左端点所在的块 第二关键字:右端点所在的块 第三关键字:前一个修改操作的时间分块,yy一下可以证明……块大小是N^(2/3)的时候最优 于是就这么写咯……和原创 2017-01-18 15:33:56 · 631 阅读 · 1 评论 -
BZOJ 4709: [Jsoi2011]柠檬【斜率优化
发现……每一段的开头结尾应该是同一个颜色才会最优于是……就是个naive的斜率优化dp了,斜率单增,对于每种颜色,点的横坐标也有序,要最大化截距…于是…单调栈……#include#define MAXN 100005#define MAXS 10004using namespace std ; int n ;const double eps = 1e-7 ;const原创 2017-02-28 09:47:51 · 1934 阅读 · 1 评论 -
BZOJ 3672 [Noi2014]购票【点分+斜率优化
先扔到序列上看看……dp式子写出来一眼斜率优化……dp[i] = ……因为有个l……所以决策看起来好像不单调啊……斜率也不单调……cdq啊稳啊分块之后先处理前面那段,然后用前面的结果更新后面的;反正都分治了,就把需要被更新的点按照 dis[i] - l[i] 从大到小排个序,然后把左边用来更新的dp值……从右往左把可以用来更新的值加进去,维护个凸包;【第一次原创 2017-02-20 15:31:08 · 978 阅读 · 0 评论 -
BZOJ 1070 [SCOI2007]修车【费用流
建图看hzwer的blog吧QAQ讲得超好第一次写zkw费用流……为了学这个专门去看了KM…………WA了一年……zkw倒是一边写对了然而n,m写反,调了一年……真的……不想承认……我费用流建边写错了……反向边……的费用……我……写的是……零………………mdzz,看来要退役了#include#define INF 0x3f3f3f3f#de原创 2016-10-03 00:22:04 · 424 阅读 · 0 评论 -
BZOJ 3864: Hero meet devil【dp套dp
把LCS当成子串 看样例看了一年这几天特别颓废啊【滑稽…先考虑LCS的求法,以及给出的字符串长度,显然是需要状压的对于求LCS的时候用的数组 dp[i][j] 把dp[i]差分之后,差分数组里只会有0和1,显然可以把这个东西状压了然后又发现,对于每个 i ,dp数组只与dp[i-1]有关于是可以用trans[s][ch] 表示在s状态的dp数组后原创 2016-12-25 21:36:57 · 866 阅读 · 0 评论 -
BZOJ 3083: 遥远的国度(codevs 4804)【链剖序+线段树
……喵的WA了两把,第一把是……倍增查询是否为lca的时候……忘记赋值anc[i][0] = father[i]了………………第二把……………………我……INF开小了…………GGGGGGG#include#define MAXN 100005#define INF INT_MAXusing namespace std; int n,m;inline int read(){ cha原创 2016-11-22 19:38:51 · 549 阅读 · 0 评论 -
BZOJ 2683: 简单题【CDQ分治 + 树状数组
……今天终于学了CDQ分治……感觉挺有趣T+WA*2T:强行把nlog^2 写成 n^2log,2333WA1:按照x和y排序的时候,忘了x相同的应该是先修改再询问WA2(不白,不膜,不清真(?)):………………我…………排序…………数组从1开始的,然而sort(tmp,tmp+cnt_tmp,cmp);………………没看出来2333……顺便吐槽 这个题解原创 2016-12-05 23:04:36 · 406 阅读 · 0 评论 -
BZOJ 1071: [SCOI2007]组队【单调性扫一遍
……显然可以枚举minh和minv,然后扫一扫,n^3的T的起飞考虑扫的时候可以考虑单调性,复制一遍队员数据,一个按照a*h+b*v+c升序排列,另一个按照h升序排列计算的时候两个队列分别扫,外层循环枚举v,内层枚举h(按照升序),显然在h递增的时候对于两个序列上,合法区间都在单调右移,于是可以用两个指针分别扫,对于v不合法的就不进行计算(不入&&不出)考虑会不会有没有入队就直原创 2016-11-23 21:15:10 · 757 阅读 · 0 评论 -
BZOJ 3831 [Poi2014]Little Bird【单调队列优化dp
显然每次转移最多+1,于是单调队列维护一下前面的答案就好, f[i] 单增,如果 f 相同,则比较 h 的大小【正确性显然【看第一句话】#include#define MAXN 1000005using namespace std; int n,q,k;inline int read(){ register char ch = getchar(); register int原创 2016-11-24 20:06:47 · 550 阅读 · 0 评论 -
BZOJ 4726: [POI2017]Sabota?【树形dp
…………我……手贱………………特么……忘了……我的队列…………下标是从……0开始的…………拍了……5k组…………没出错…………………………出题人造数据辛苦了233333显然最坏情况是 初始节点在叶子上 然后直接xjbdp一下#include#define MAXN 700005using namespace std; int n , k;inline int read(原创 2016-12-07 15:09:49 · 435 阅读 · 0 评论 -
BZOJ 3531: [Sdoi2014]旅行【树剖+动态开点线段树【听说有人写平衡树?【滑稽
刚开始看成了子树/链修改……想了一年23333然后……手贱打错变量名,调了一年…………发现…………是1A【233333对于每个宗教开一棵树 就好了删除直接赋值为0,反正不卡空间【滑稽#pragma GCC optimize(3)#include#define MAXV 4000005#define MAXN 100005using namespace std;原创 2016-11-26 20:27:31 · 444 阅读 · 0 评论 -
BZOJ 1047 [HAOI2007]理想的正方形【单调队列
显然就是扫一下所有n*n的矩阵的最大值和最小值只差取min,单调队列横着扫一遍竖着扫一遍就好了好好取名字,少用ctrl+C ctrl+V【因为这个我调了一年233333#include#define MAXN 1006using namespace std; int n,m,k;inline int read(){ register char ch = getchar();原创 2016-12-14 16:29:57 · 381 阅读 · 0 评论 -
BZOJ 1975: [Sdoi2010]魔法猪学院【K短路,A*
就用dijkspfa这种玄学东西啊……看题显然就是从最短路开始从小往大选择,于是就是求前k短路考虑对于一个节点i,维护dis[i]表示从i到n的最短路长度,d1[i]表示从1到i当前走过的路径长度,用priority_queue维护这两个的和,每次取最小的显然最优…………谁说priority_queue要卡空间啊……明明没卡嘛QAQ,辣鸡flaze xjb写了个配对堆MLE了一年233原创 2016-12-15 09:56:43 · 516 阅读 · 0 评论 -
BZOJ 2434: [Noi2011]阿狸的打字机【AC自动机,fail树.dfs序,树状数组
……我……嗯……建trie写成了n^2,T了一年这题……本来觉得后面那一堆会调一年,然而万万没想到是跪在了建trie上询问x串在y串中出现过多少次,等价于查询在【以AC自动机的根节点为根】的fail树上,x串终止节点的子树中出现过多少个y串中字符对应的节点于是用树状数组维护fail树的DFS序,遍历trie树(也就是给出的字符串),并将当前在stack中的节点的值++,原创 2016-11-12 17:46:10 · 408 阅读 · 0 评论