自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

linkfqy

                          ——A link to FQY.

  • 博客(266)
  • 资源 (1)
  • 收藏
  • 关注

原创 【期望DP】LOJ#6178. 「美团 CodeM 初赛 Round B」景区路线规划

题面在这里这题一定要倒着处理!!!定义fi,jf_{i,j}表示时间为i,位置是j,走到不能走的期望为什么要这样倒着定义呢?因为只有这样才能保证默认当前状态的概率是1正着做就比较烦了然后……fi,j→fi+wi,kf_{i,j}\rightarrow f_{i+w_i,k}示例程序:

2017-10-15 15:55:27 878

原创 【状压DP】LOJ#6177. 「美团 CodeM 初赛 Round B」送外卖2

题面在这里其实很简单的DP……定义fi,sf_{i,s}表示当前在i,状态是s的最小时间其中s是一个3进制数,每一位0/1/2表示该外卖没有接单/接单了未送达/已送达然后轻松转移就好了示例程序:

2017-10-15 15:46:53 1127

原创 【乱搞】BZOJ3751(UOJ#20)[NOIP2014]解方程

题面在这里还可以双倍经验本题其实利用了这样一个显然的事实: f(x)=0⇒f(x) mod p=0f(x)=0 \Rightarrow f(x)\space mod \space p=0 但是反过来不一定成立那么多取几个质数,如果对于所有的质数都成立就假装成立好了示例程序:

2017-10-12 21:08:09 727

原创 【二分+LCA差分乱搞】BZOJ4326(UOJ150) NOIP2015 运输计划

题面在这里还可以双倍经验其实就是要让用时最长的那条边最短容易想到二分答案。将所有长度大于答案的路径取交集,显然只能在这些边中选择一条来建造虫洞当然是选择最长的那条边然后差分乱搞一下就得到边集了非常方便,不用打树链剖分示例程序:

2017-10-11 19:52:11 853

原创 【数位DP】HDU2089 不要62

题面在这里没什么好说的,直接搞就是了示例程序:

2017-10-09 17:57:21 583

原创 【数位DP入门】HDU3555 Bomb

题面在这里最简单的数位DP……dfs(step,last,less)dfs(step,last,less)表示当前第step位,更高一位是last,当前是否小于给定范围然后无脑乱搞就好了注意使用记忆化搜索示例程序:

2017-10-09 17:56:48 770

原创 【矩阵乘法优化DP】Codeforces 717D Dexterina’s Lab

题面在这里首先要知道Nim游戏的结论:当前局面所有堆的异或和为0则先手必败其实就是要求异或和不为0的概率fi,jf_{i,j}表示前i堆,异或和为j的概率转移矩阵非常优美:Ti,j=p(i⊕j)T_{i,j}=p(i\oplus j)注意异或和有可能大于x,为此WA了一发……好不爽示例程序:

2017-10-08 20:23:26 919

原创 【矩阵乘法优化DP】BZOJ1875 [SDOI2009]HH去散步

题面在这里典型的矩阵乘法优化DP重点在于如何避免走回头路如果记点为状态的话肯定不好搞所以定义fi,jf_{i,j}表示 走了i步,走到j这条边的终点 的方案数若边i的终点与边j的起点相同,则ft,if_{t,i}可以转移到ft+1,jf_{t+1,j}由此构造转移矩阵示例程序:

2017-10-07 21:08:58 602 1

原创 【背包+阈值优化】51Nod 1597 有限背包计数问题

题面在这里显然,对于小于n√\sqrt n的物品可以直接对每个背包大小记前缀和对于大于n√\sqrt n的物品直接改定义为“选了i个物品,背包大小为j”即可很好转移吧……示例程序:

2017-10-07 19:21:20 610

原创 【DP】BZOJ4300 绝世好题

题面在这里一个简单的DP。fif_i表示b序列最后一个数第i位为1的最长长度然后XJB更新一下就好了示例程序:

2017-10-06 18:45:49 490

原创 【整体二分+树状数组区间加区间和】BZOJ3110 [Zjoi2013]K大数查询

题面在这里同样是整体二分的经典应用:K大数但是有修改操作。其实也差不多。对于divide(L,R,S)divide(L,R,S),将S中所有操作按顺序排列由于查询第K大的,所以只需要知道有多少数比答案大即可如果操作是1:如果c≤midc\le mid说明只可能对答案在[L,mid][L,mid]的查询有贡献,放入S1S_1,否则放入S2S_2另外,把放入S2S_2中的操作加到树状数组里面如果操作

2017-10-06 18:11:32 437

原创 整体二分小结

最近做了一些整体二分的题目,对此有一些体会,在此小结。一般的二分答案算法每次只能处理一个询问而整体二分是同时对所有询问进行二分的算法。一般来说,整体二分的思想如下:定义divide(L,R,S)divide(L,R,S)表示答案在[L,R][L,R]范围内的询问集合为SS往往会有一些事件对答案产生贡献考虑[L,mid][L,mid]中所有事件对每个询问的影响然后根据询问的限制,将所有询问分至S1,S

2017-10-06 14:00:42 712

原创 【整体二分+二维树状数组】BZOJ2738 矩阵乘法

题面在这里整体二分的经典应用:K大数查询对询问的答案整体二分。对于每个询问,如果对应子矩阵中值属于[L,mid][L,mid]的元素个数大于k,则该询问的答案一定小于mid具体实现可以将原矩阵内所有元素排序每次找到(二分一下)值属于[L,mid][L,mid]的所有元素,在对应位置+1用树状数组维护区间和就好了示例程序:

2017-10-06 11:17:00 704

原创 【线段树+Hash】Codeforces 452F Permutation

题面在这里按顺序枚举i,则ai±ka_i\pm k必须在同一侧(即同时出现或同时不出现)维护权值线段树其实就是[ai−k,ai][a_i-k,a_i]和[ai,ai+k][a_i,a_i+k]对称线段树维护正反两个hash值就好了示例程序:

2017-10-05 21:25:48 646

原创 【整体二分+树状数组】BZOJ2527 [Poi2011]Meteors

题面在这里整体二分裸题……没什么好说的,对流星雨二分,每个国家的轨道用vector存一下就好了需要注意一下边界可能爆long long中间break掉就好了示例程序:

2017-10-04 21:34:24 809

原创 【Tarjan】BZOJ1051 [HAOI2006]受欢迎的牛

题目在这里很显然,缩点后无出度的强连通分量就是答案示例程序:

2017-10-01 09:57:07 784

原创 【DFS序+线段树】BZOJ1103 [POI2007]大都市meg

题面在这里很显然可以用DFS序把树上问题转化为区间问题修改一条边只影响了下面那棵子树中所有点的答案线段树维护区间加,单点询问就好了示例程序:

2017-09-30 08:05:09 700

原创 【二维树状数组】BZOJ1452 [JSOI2009]Count

题面在这里二维树状数组裸题……不解释了,直接上代码示例程序:

2017-09-29 20:02:38 732

原创 【BFS+链表】BZOJ1098 [POI2007]办公楼biu

题面在这里显然是求补图的联通块个数……考虑每次找一个点扩展,那么已经遍历过的点就可以无视了因为每个点只能属于一个联通块。用链表来实现点的删除,这样就可以只访问未删除的点了由于每个点只被遍历一次,所以总复杂度为O(n+m)O(n+m)示例程序:

2017-09-29 15:26:05 757

原创 【主席树】BZOJ3524 [Poi2014]Couriers

题面在这里主席树裸题……每次找到最多的那个值就好了如果最多的都没有超过r−l+12r-l+1 \over 2,就是0了示例程序:

2017-09-28 10:56:28 696

原创 【斜率优化DP】BZOJ1911 [Apio2010]特别行动队

题面在这里又是一道最简单的斜率优化……如下推导: fi=Max{fj+a(Si−Sj)2+b(Si−Sj)+c}fi=Max{fj+aS2j−bSj−2aSiSj}+c+aS2i−bSj设k=2aSi,x=Sj,y=fj+aS2j−bSj 则:b=y−kxy=kx+bf_i=Max\{ f_j+a(S_i-S_j)^2+b(S_i-S_j)+c \} \\f_i=Max\{ f_j+aS_j^

2017-09-27 21:40:59 697

原创 【暴力讨论+主席树】Codeforces 853C Boredom

题面在这里按照每次询问的子矩阵,把整个矩阵分为9块:1 2 34 5 67 8 9(块5是询问的子矩阵)那么块1与块5,6,8,9中的点有贡献,累计sum(1)∗sum(5+6+8+9)sum(1)*sum(5+6+8+9)(sum表示这个块里点的个数)……以此类推,暴力讨论每个块的贡献就好了怎么求sum?由于每一列有且只有1个点其实就是求一个序列的指定区间中值属于某个范围的个数用主席树维护就好

2017-09-27 18:00:31 579

原创 【贪心+并查集】Codeforces 853A Planning

题面在这里这题其实非常水……只需要按照(Ci,i)(C_i,i)的优先级顺序对每个航班取能取的最早的时刻这个贪心很显然吧……示例程序:

2017-09-27 17:47:22 701

原创 【大胆乱搞】HDU5762 Teacher Bo

题面在这里可以发现曼哈顿距离最多有2×1052\times 10^5种根据鸽笼原理,暴枚点对,判断每个曼哈顿距离是否出现过即可示例程序:

2017-09-26 19:56:07 648

原创 【差分+费用流|单纯形】BZOJ3112 [Zjoi2013]防守战线

题面在这里这道题和BZOJ1061是一样的只是需要先对等式差分一下接下来就一模一样了注:此题须用ZKW费用流才能过示例程序:#include<cstdio>

2017-09-25 21:24:20 708

原创 【费用流|单纯形】BZOJ1061 [Noi2008]志愿者招募

题面在这里这道题大佬一看就是裸的单纯形,但是也可以用费用流求解为了锻炼思维,Manchery神犇多次强调要打费用流于是……参考这篇博客:主要思想就是列出每一天第i种志愿者雇佣人数XiX_i与需求人数AiA_i的关系并加/减一个Yi(Yi>0)Y_i(Y_i\gt 0)使其变为等式然后处理一下得到Xi,Yi,AiX_i,Y_i,A_i的关系因为AiA_i是已知量,Xi,Yi,AiX_i,Y_i,A_i

2017-09-25 18:38:11 1215

原创 【二分+乱搞】Codeforces 743E Vladik and cards

题面在这里发现子序列的长度是单调的,所以可以直接二分答案如果答案确定了,那么每个数字(1~8)(1\text{~}8)只能取⌊mid8⌋\lfloor \frac {mid} 8 \rfloor或⌊mid8⌋+1\lfloor \frac {mid} 8 \rfloor+1再8!8!暴力枚举一下8个数字出现的顺序然后直接乱搞就可以验证答案是否符合题意复杂度:由于加了很多剪枝,复杂度远小于O(nlog

2017-09-24 15:08:39 579

原创 【分治计数】BZOJ4237 稻草人

题面在这里二维的分治计数……其实思路还是一样的,将当前区间分为上下两部分然后对两个部分分别按x排序考虑上面的每个点,只有当xi<xj且yi<yjx_i \lt x_j \text{且} y_i<y_j时,点i能够约束点j的矩阵那么用递增的单调栈维护前面第一个y值比i小的点对于下面的每个点,同理因此维护递减的单调栈,使上面任意点都可以与其形成合法矩阵考虑上面的每个点i对答案的贡献显然在单调栈中前一个与

2017-09-23 10:08:49 684

原创 【分治计数|单调栈】51Nod 1215 数组的宽度

题面在这里用单调栈分别维护maxmax和minmin的”势力范围”显然很好做其实分治的话就更简单了只需要记录mxmx和mnmn以及它们的前缀和就好了分类讨论一下,这是分治计数的核心示例程序:分治计数:

2017-09-21 21:50:34 611

原创 【分治计数】BZOJ3745 [Coci2015]Norma

题面在这里分治计数的经典题目……对midmid右边的每个位置维护以下量:i−midi-mid的前缀和前缀maxmax和minmin前缀maxmax和minmin的前缀和mxmx和mnmnmx⋅mnmx\cdot mn的前缀和mx⋅mn(i−mid)mx\cdot mn (i-mid)的前缀和mx(i−mid)mx(i-mid)和mn(i−mid)mn(i-mid)的前缀和然后JXB讨论一下就好了示

2017-09-21 21:43:58 721

原创 【堆+贪心】BZOJ1150 [CTSC2007]数据备份Backup

题面在这里先把整个数组差分一下,问题就转化成了:从n个元素中选择各不相邻的k个,使得其加和最小用堆来维护。每次中堆中取出权值最小的一个元素xx,计入答案然后将其与相邻的两个元素l,rl,r合并为一个新的元素,权值为l+r−xl+r-x将新元素放入堆中如此k次即可。可以用双向链表维护元素的相邻关系。此方法的正确性在于:当从堆顶取得一个新元素时,就相当于撤销了xx,改为取ll和rr这样取的次数仍然等于取

2017-09-20 21:36:08 724

原创 【置换群】51Nod 1125交换机器的最小代价

题面在这里ZZK说这是傻逼题但是我觉得好难啊显然,要使最终归为有序,必定构成若干个置换群对于每个置换群有两种方案:找群里最小的点,交换一圈群里最小点与群外最小点交换,交换一圈,再换回来然后就没有然后了示例程序:

2017-09-19 20:59:17 824

原创 关于高斯消元

其实是很简单的一个算法,之前一直不会……主要思想如下:我们现在有n个关于未知数xi,(1≤i≤n)x_i,(1\le i\le n)的方程: ∑j=1na1,jxj=a1,n+1∑j=1na2,jxj=a2,n+1…∑j=1nan,jxj=an,n+1\sum_{j=1}^n a_{1,j}x_j=a_{1,n+1} \\\sum_{j=1}^n a_{2,j}x_j=a_{2,n+1} \\

2017-09-19 19:26:08 967 1

原创 【高斯消元】BZOJ1013 [JSOI2008]球形空间产生器sphere

题面在这里高斯消元裸题,把球心的坐标设出来,再搞一搞把二次项消掉就好了示例程序:

2017-09-19 19:09:59 509

原创 【数学乱搞】HDU1568 Fibonacci

题面在这里Lynstery大佬说这是傻逼题……首先考虑斐波那契的通项公式: Fn=15√⎡⎣(1+5√2)n−(1−5√2)n⎤⎦=15√(1+5√2)n⎡⎣1−(1−5√1+5√)n⎤⎦log10(Fn)=log10(15√)+n⋅log10(1+5√2)+log10⎡⎣1−(1−5√1+5√)n⎤⎦F_n=\frac 1 {\sqrt 5} \left[ \left(\frac {1+\sq

2017-09-17 20:41:01 792

原创 【斐波那契数列】51Nod 1350 斐波那契表示

题面在这里一道神奇的数学题……首先需要了解:将一个数每次减去最大可减的斐波那契数,一定是最优的方案之一以下用fif_i表示斐波那契数列的第i项则有: Gfi−1=Gfi−1−1+Gfi−fi−1−1+fi−fi−1⇒Gfi−1=Gfi−1−1+Gfi−2−1+fi−2G_{f_i-1}=G_{f_{i-1}-1}+G_{f_i-f_{i-1}-1}+f_i-f_{i-1} \\\Rightar

2017-09-13 21:18:55 829

原创 【数学结论】51Nod 1674 区间的价值 V2

题面在这里很容易发现,一个序列的前缀and/or值可分为log(V)log(V)块其中V是序列中元素的最大值然后这题就很好做了枚举区间的右端点i,同时维护每一个块的范围和值显然有and块和or块两种分开维护那么i往后推一个,其实就是把每个块的值and/or上当前位置,再加上单点i然后合并相邻且值相等的块扫一波统计答案即可示例程序:

2017-09-10 15:31:02 709

原创 【反序表+DP】51Nod 1020 逆序排列

题面在这里科普一下关于反序表的知识:一个1到n的排列的反序表第 ii 位表示排列中 ii 的左边有几个比 ii 大的。反序表每位的取值范围:[0,0],[0,1],[0,2],[0,3]...,[0,n−1][0,0],[0,1],[0,2],[0,3]...,[0,n-1]排列和反序表是一一对应的关系。反序表每位相互独立。然后这题就是傻逼DP了示例程序:

2017-09-10 15:21:47 683

原创 【数论+搜索】BZOJ3629 [JLOI2014]聪明的燕姿

题面在这里通过数论知识可以得到:若x=∏ti=1pkiix=\prod_{i=1}^t p_i^{k_i},则xx的约数个数为∏ti=1(1+ki)\prod_{i=1}^t (1+k_i)类似地,xx的约数之和为∏ti=1∑kij=0pji\prod_{i=1}^t \sum_{j=0}^{k_i} p_i^j所以暴搜S的每个素因子取几次方就可以了示例程序:

2017-09-10 15:14:11 646

原创 【数论乱搞】BZOJ1041 [HAOI2008]圆上的整点

题面在这里其实就是乱搞题首先只要考虑第一象限的整点就可以了,答案可以很快由此得到考虑如下: r2=x2+y2⇒y2=(r−x)(r+x)r^2=x^2+y^2 \\\Rightarrow y^2=(r-x)(r+x) \\ 设(r−x)(r-x)和(r+x)(r+x)的最大公约数为dd,则有: ⇒y2=d2(r−x)d(r+x)d\Rightarrow y^2=d^2 \frac {

2017-09-10 14:49:49 880

周东《浅析最大最小定理在信息学竞赛中的应用》

周东大神关于s-t平面图与对偶图的转化PPT 可以快速求解s-t平面图中的最大流问题 解释很详细,很有帮助

2017-05-30

空空如也

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

TA关注的人

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