自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qkoqhh

什么都没有

  • 博客(24)
  • 收藏
  • 关注

原创 hdu5117(状压DP)

被X^3卡成傻逼。。令X=x1+x2+x3+..+xn     其中xi表示i灯有没有开。。然后将X^3展开后得ΣΣΣxixjxk,因此,枚举i、j、k,求出令xixjxk为1的方案数即可。。这个可以先暴力枚举,然后设d[i][j]表示扫到第i个开关,状态为j的方案数(j为xixjxk是否为1的情况)然后直接转移即可。。复杂度O(8*n^3m)   /** * ...

2018-09-30 21:54:09 219

原创 bzoj1061(k可重区间集)

上次的做法是线性规划:https://blog.csdn.net/qkoqhh/article/details/81844977然而还是不能够很好地理解线性规划,因此再看了一下发现其实是k可重区间集问题。。那么建图方向就有了。。然而这个题比较特殊,只有下界没有上界,想跑上下界也不行了。。因此可以把容量取反,下界就变成上界了。。然后由于网络流只接受正数流,因此要把取反之后的容量加上inf...

2018-09-29 13:44:12 204

原创 焦作网络赛F(k可重区间集问题)

这个在网络流24题中出现过的(然而窝并没有想起来)显然先将区间离散化再说然后建图方式是从i到i+1连容量为k费用为0的边,对每个区间[l,r]从l-1到r连容量为1费用为该区间价值的边(看做这个区间是从l-1的点接过来),然后跑最大费用流即可。。    /** *        ┏┓    ┏┓ *        ┏┛┗━━━━━━━┛┗━━━┓ *      ...

2018-09-27 19:10:59 142

原创 codevs5429(单调队列优化多重背包)

其实这个知识点并不是很难。。只是觉得并不会这么极限卡log就没去管他。。直到今天差点被卡TAT稍微推导一下设d[i][j]为前i种物品体积为j的最大价值此时令,,有此时即然后考虑到枚举k的时候k一定为整数,所以直接就行。。然后发现这就是划窗。。所以枚举q后枚举k,然后直接单调队列维护最值即可。。然后时间复杂度降成了O(nm)而且好像并不比二进制压缩复杂多少。...

2018-09-23 15:11:05 326

原创 bzoj4182(点分治+树背包DP)

首先根据xy之间的点必取可以得到取的点必定是联通块上的点,那么就变成了联通块上的树背包DP,可以用点分治做。。然后这个可以借鉴hdu6268的做法,把背包转给子树然后自己去往外延伸,得到的就是包含根的联通块,然后再用点分治去处理不包含联通块的部分即可。。。转移给子树的时候需要注意到由于这个背包是经过二进制压缩后的,被分成若干个物品,所以转移的时候不能简单地赋值什么的。。应该是可以叠加地转移,即...

2018-09-23 11:29:52 498

原创 hdu5977(点分治+状压DP+树形背包DP)

找点对数很容易想到点分治,k<10很容易想到状压,那么就维护根为x向下的有对应颜色状态的方案数有多少,可以用树背包DP维护即可。。然后统计的时候可以借用树分治的套路,在边dfs的时候和已统计出来的树链合并就可以了。。   #include<bits/stdc++.h>using namespace std;#define inc(i,l,r) for(int...

2018-09-22 19:02:18 418

原创 bzoj4897(思维+树形DP+背包DP)

这个需要注意到一个显然的结论。。就是这k个点一定是连在一起的。。然后这道题就变成了在相邻k个点中跑欧拉路径的最小值 。。。然后转移的时候假设一定经过点x,那么可以发现最多允许不回来2次,那么可以这样转移,设d[i][j][k]为经过i点,经过j个点,且不返回路径数为k的最小代价。。其中k=0,1,2然后直接树背包转移即可。。。   /** *        ┏┓  ...

2018-09-21 17:28:59 191

原创 naq2016F(数位DP)

题意:给定P,求P=A+B的对数并输出前5000项,其中A、B、P的数位两两不同这个数位DP比较奇特。。难度还是比较大的。。过的人除了窝貌似都是该oj前10名首先可以枚举A的数位和B的数位,然后根据这些数位做数位DP,这个数位DP的特殊之处在于这是2个数同时进行数位DP(其实枚举A的数位之后B的数位就只剩下2种情况了,从某种意义上讲也是单个数的数位DP),然后维护第几位,需不需要进位(毕竟...

2018-09-20 01:30:40 303

原创 cf77C(树形DP)

这个和上次那个结论+状压的题挺像的。。考虑2个点,如果2个点的点权都很大那么在这2个点之间来回跑这个决策是绝对不能放过的。。可是会发现如果一开始来回跑会比较吃亏,亏的是一个子树,所以得先跑完子树在和儿子来回跑,那么又有一个问题,儿子和其子节点来回跑和自己跟儿子来回跑谁会更优。其实显然是前者,因为一个点的父亲只有一个而其儿子却可以有多个。。所以最终方案就是,先跑完子树,再从下到上进行来回...

2018-09-15 02:57:49 834

原创 SPOJ OPTM(最小割)

这个首先是可以安位考虑的,按位拆完之后变成01,那么有贡献的边必定是01边,这个符合割边的定义,那么就转化成求最小割了。。由于确定的点不能改变,所以他们按照01分别向S和T连容量为无穷大的边,原图的无向边拆成2个有向边,容量为1,这样就能求最小值了。。然后对方案的要求是点权和最小,那么就是在同取1和0的情况下要取0。。这个。。直接把原图的流量扩容,然后往1代表的点集连一个容量为1的边,这样...

2018-09-15 02:49:30 168

原创 bzoj5072(树形背包DP)

树DP可以维护有没有黑点数为y的联通块,但不能保证点数,所以多一维肯定是炸了。。然而有个显然的结论是,如果点数为x的黑点数最小为min,最大为max,那么[min,max]这个区间的黑点数一定存在所以只需要维护点数为x的最小黑点和最大黑点就可以了。。然后树背包dp随便转移,复杂度O(n^2)    /** *        ┏┓    ┏┓ *        ┏┛...

2018-09-12 17:21:41 220

原创 bzoj4033(树形DP)

由于黑点数目已经固定,所以对一条边如果一边的黑点数确定那么这条边的贡献也就可以确定。。因此状态可以这么设,设d[i][j]为i为子树,有j个黑点的最大贡献,然后每次转移处理一下根到子树的边的贡献,这样就变成背包问题了。。背包可以直接暴力转移。。复杂度是O(n^2),证明类似https://blog.csdn.net/qkoqhh/article/details/82659832  ...

2018-09-12 15:59:45 269

原创 bzoj4753(分数规划+树形DP+背包DP+复杂度分析)

把0看做一个需要取的点,那么通过题目给的约束条件这就变成了一个树形背包DP。。然而这个比率貌似不好决策。。于是用分数规划,这样权值改变之后就变成常规树DP然后一个显然的做法是在已取根节点的前提下把子树的背包合并到根上面去,可是会发现合并背包的代价非常大,合并一次的复杂度能达到O(n^2),好像会炸(然后就一直不敢写事实上背包里面的无用状态非常多,只要用有效状态进行转移的话复杂度可以变得...

2018-09-12 13:05:46 689

原创 PE432(玄学数论递推)

按照超哥的套路做就可以了。。令p为n的最小素因子    /** *        ┏┓    ┏┓ *        ┏┛┗━━━━━━━┛┗━━━┓ *        ┃       ┃   *        ┃   ━    ┃ *        ┃ >   < ┃ *        ┃       ┃ *        ┃... ⌒ ...  ┃ *...

2018-09-11 17:02:43 140

原创 徐州网络赛D(莫比乌斯函数+玄学递推+杜教筛)

智商差距,超哥还是强orz显然n包含平方因子答案为0,那么只考虑n无平方因子的情况设所求为F(n,m),设p为n的最小素因子,根据i能否被p整除,可得因为n无平方因子,所以其素因子最多只有12个(把前12个素数乘起来是8e12),然后直接递归下去就可以了,可以用map存。。然后递归的终点是m=0和n=1的时候,m=0时F=0,n=1时是莫比乌斯函数的前缀和,可以用杜教筛求。。...

2018-09-10 19:49:18 279

原创 bzoj4289(神建图+最短路)

再学一个建图姿势。。可以把边看成点,然后有公共点的边相互连边,跑最短路就可以了。。然而菊花图会退化成m^2,需要再优化。。把无向边拆成2个有向边,对每个点存入边和出边,然后出边之间做个差分,即对出边的边权排序,然后相邻边之间连边,小边向大边连权值为2边权值之差的边,大边向小边连权值为0的边,这样入边只需向他的对应边连一个权值为原边权的边即可达到去最大值的效果。然后剩下起点和终点就直...

2018-09-10 18:22:50 546

原创 2018沈阳网络赛C(莫比乌斯函数+容斥)

题目链接:https://nanti.jisuanke.com/t/31444涉及到平方因子就要想到莫比乌斯辣。。然后用μ的平方来判定有无平方因子,可以得到然后就是对这2个求和就可以了,想用杜教筛?上次南京网络赛告诉我们是不行的。。而是要用容斥,枚举素数平方因子,然后做一个容斥,而莫比乌斯函数刚好是他的容斥系数,所以可以得到右边的合式类似,所以最终要求然后sqrt(n)...

2018-09-08 21:07:43 789 2

原创 cf1038E(暴力DP/bfs)

一个块可以看做是无向图上的边,然后就变成了在无向图上跑欧拉路径。。4个点应该是可以随便暴力了。。不过边比较多。。如果考虑哪些边不走,能注意到2条重边可以构成一个简单环。。所以如果不走肯定是亏的。。所以对重边来说,最多只能不经过一条边。。而本质不同的边其实也就8条。。拆出来就变成16条。。然后暴力bfs/DP或者直接爆搜应该就可以了。。。   #include&lt...

2018-09-08 09:41:38 453

原创 hdu5534(DP+思维)

一道相当有思维性的背包。。(为什么每次遇到背包总是死首先考虑到一棵树的度数和为2n-2,所以问题就是把这2n-2个度数分配到n个点上去,而不必考虑树的形态什么的。。然后相当于把一些体积为1..n-1的物品装进容量为n的背包里面,求只有n个物品的最大价值。。由于既有n个物品的限制,又有n种物品,所以直接背包是O(n^3)然后考验思维的地方就出现了。。只要将每一个物品的体积减1,就相当...

2018-09-06 13:03:05 217

原创 南京网络赛J(莫比乌斯函数+分块+容斥)

题目链接:https://nanti.jisuanke.com/t/30999这个线性筛O(n)能过,然而有更快的做法。。对每个数d,如果d有平方因子,则μ(d)为0,这样,然后接下来就是求的前缀和了。。然而好像没有什么好的函数和他做卷积。。。所以杜教筛也用不了了。。但是这个前缀和其实可以用容斥求的。。这个前缀和求的是1..n非平方因子的个数,枚举平方因子做容斥,于是有...

2018-09-04 14:07:10 236

原创 hdu5520(费用流)

这个题可以看作用一些路径对网格进行覆盖,那么建图的思路也就有了。。像最小路径覆盖一样拆成出点和入点,然后把原图的边加上去,考虑到奇数只进不出,偶数只出不进,那么把S连向奇数点,把偶数点连向T,配对的问题就解决了。。然后还有用环覆盖的问题。。由于环上的点和路径上的点一样有入有出,所以只要把空点的入点和出点,分别连向S和T就可以了。。   /** *         ┏┓  ...

2018-09-04 14:04:51 213

原创 hiho1259(数位DP)

这个题主要是在看规律。。打表出来发现f(x)是先将x转化成二进制然后将这个二进制数看成三进制数的结果比如x=5,转成二进制为101,而三进制下101为10,故f(5)=10然后就直接记录余数就行了,每次在最高位加一个数去找余数为0的,因为3和k(除了3)都是互质的,所以这样加下去是能把0..k-1给额外加上去的。。对3的情况特判一下,而且发现3的情况就只要看x的奇偶性就能够判断其余数。...

2018-09-03 18:06:10 117

原创 hdu6363(组合数学+容斥+欧拉降幂)

这个题其实不难。。只是当时不会数学吧。。首先这个题目比较绕。。要先化简一波。。首先是这个可以这样考虑,像2^n-1这个形式化成二进制就是n个1,那么他们取gcd就会形成gcd个1(gcd个1可以通过左移,即乘若干个2把每个数逐一除掉),因此然后枚举gcd(设枚举的值为k),可以发现n必须被分成若干个k放进书架,因此看成将n/k本书随机放进k个书架就可以了。。然后将n本书放进k个...

2018-09-02 14:55:24 323

原创 51nod1238(杜教筛)

这个题暴露出杜教筛还是没掌握好。。然后就是讨论一个常见的求和然后原式就能化简成然后窝就天真的吧这个和式拿去做杜教筛了。。。然而这个和式的一个问题是函数也是个和式,其卷积实在是难求,所以推到一半推不下去,参考别人的题解转化了下思路,枚举一下倍数,就变成。。。然后令,F(n)为其前缀和,即求再求f(n)的卷积故最终貌似要求好多个F(n)实际上都是...

2018-09-01 00:59:13 476

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除