![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
51nod
Chester_King
虽千万人,吾往矣。
展开
-
【51nod】1674 区间的价值 V2 状态压缩
题目传送门woc……woc……woc……(重要的事情说三遍)这题TMD是一道有概率AC的题目!!!(博主980ms卡常过去的……)首先我们都知道前缀或者后缀的and和or值的变化是log级别的。证明:把每一位的权值转化成二进制,and的值只可能递减,or的值只可能递增。然后我们可以枚举区间的and的值,移动端点,根据每个区间的or值统计答案。p.s.Manchery大佬太强啦,原创 2017-09-06 20:57:08 · 353 阅读 · 2 评论 -
【51nod】1407 与与与与 DP+容斥
题目传送门好难懂的一道题啊……%%%sillyf先把题目转化一下,答案就等于所有组合-and值不为零的组合。定义f[x]f[x]为ai&x==xa_i\&x==x的aia_i的个数,g[x]g[x]为xx转化为二进制后1的个数。f[x]f[x]的求解方法见上一篇blog。容斥一下求and不为零的组合情况: ans=∑x=11000000(−1)g[x]−1×(2f[x]−1)a原创 2018-01-12 20:55:17 · 398 阅读 · 0 评论 -
【51nod】1406 与查询 DP
题目传送门考虑一个数num&x==xnum\&x==x,说明xx在二进制下为1的位置上numnum也为1。定义f[x]f[x]为ai&x==xa_i\&x==x的aia_i的个数。如果y&x==xy\&x==x,即yy是xx的一个子集,那么f[y]f[y]一定对f[x]f[x]产生贡献。这样就可以枚举子集转移了,但是可能会有重复计算,于是从高位向低位转移。p.s.输入输出数据量原创 2018-01-12 20:54:45 · 231 阅读 · 0 评论 -
【51nod】1052 最大M子段和 DP
题目传送门好吧,好像是我ZZ了,原来连续的一段数可以当做许多段数来看的……(突然掀桌,气得我都变成简笔画了!害得我WA了6发!)其实这题就是一道非常水的DP题,定义f[i][j][0/1]f[i][j][0/1]表示前ii个数选了jj段,第三维表示当前的数是否被选在第jj段数内。然后直接进行状态转移就行了。突然发现这样开数组会MLEMLE,又发现好像第ii个数的状态只和第i−1i-1个数的状态有关,原创 2017-10-17 16:05:55 · 270 阅读 · 0 评论 -
【51nod】1461 稳定桌 扫描线+线段树
题目传送门感觉这题的套路要比“【51nod】1494 选举拉票”那题要简单啊……大雾在这题把每一条腿的长度看成线段,从小到大枚举一个长度ii,长度大于ii的所有腿必须要取,如果剩下的腿中长度为ii的腿的数量没有严格超过半数,那么就取长度小于ii的腿的权值前num−size∗2+1num-size*2+1小。然而我TMD线段树打错了,query(lt,l,mid,w)query(lt,l,mid,w)原创 2017-10-26 07:26:23 · 342 阅读 · 0 评论 -
【51nod】1040 最大公约数之和 欧拉函数
题目传送门我连这种水题都不会做啦……感觉要炸啊……nn的最大公约数必定是nn的因数xx,如果有gg个数和nn的最大公约数为xx,那么这gg个数对答案的贡献显然为x∗gx*g。那么问题就转化成了如何快速求出和nn的最大公约数为xx的个数gg。观察等式gcd(n,i)=xgcd(n,i)=x,可以转化成gcd(n/x,i/x=1gcd(n/x,i/x=1,后者显然可以用欧拉函数求出符合条件的ii的个数g原创 2017-10-16 19:03:03 · 187 阅读 · 0 评论 -
【51nod】1199 Money out of Thin Air 线段树
题目传送门做题的时候头脑一定要清晰,我这种蒟蒻就不要妄想能在10min之内敲出这种代码了……当然,如果敲出来了,那么必定漏洞百出。对于这题,直接对于给出的树的先序遍历序列建立线段树并维护即可。但是!我用一个数组来存每个点的权值和S操作修改的权值。这个显然是错的,因为我没有考虑区间修改经过这个点的情况的贡献……然后就是不停的WA……捂脸.jpg附上AC代码:#include <cstdio>#def原创 2017-10-24 21:16:55 · 809 阅读 · 0 评论 -
【51nod】1022 石子归并V2 区间DP
题目传送门以前一直对四边形不等式优化望洋兴叹,今天终于鼓起勇气去学了一发。大佬传送门,这位大佬讲的比较清楚、明白,我就不再在博客里多做赘述了。总之,四边形不等式优化就是原来时间复杂度为O(n3)O(n^3)的状态转移方程优化到O(n2)O(n^2),前提是转移的额外费用需要满足“区间包含的单调性”和“四边形不等式”两个性质。回到这题,考虑把环拆成数列,直接把数组复制一份跟在后面就行了,之后就直接四边原创 2017-10-15 20:19:27 · 248 阅读 · 0 评论 -
【51nod】1494 选举拉票 扫描线+线段树
题目传送门扫描线是什么鬼啊……为什么我好像什么都不会啊QwQ……以上的图片来自sillyf大佬的博客,大佬传送门把所有的候选人拥有的票数看做一条线段,枚举当前自己拥有的票数为ii,所有票数大于等于自己的票数的人必须要去py(逃)收买投票的人如果把当前必须买的部分全买完了票数还是不够,就需要去挑着买的部分选一些便宜的买来,这个可以用权值线段树实现。附上AC代码:#include <cstdio>#i原创 2017-10-19 16:21:37 · 515 阅读 · 0 评论 -
【51nod】1486 大大走格子 DP+组合数学
题目传送门很久以前就考过的题目了……但是为什么我一直都不会……考虑两个障碍物之间的转移,方案数就是Cx2−x1x2−x1+y2−y1C^{x2-x1}_{x2-x1+y2-y1}。把起点和终点加到障碍物里一起转移,先按坐标升序排序。然后定义f[i]f[i]表示前ii个障碍物只经过第ii个的方案数,f[i]=Cxi−1xi+yi−2+∑jij=1f[j]×Cxi−xjxi−xj+yi原创 2018-01-12 21:14:22 · 254 阅读 · 0 评论