自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(134)
  • 收藏
  • 关注

转载 BZOJ4152 [AMPPZ2014]The Captain[最短路]

你们都说这题简单可是我想了好久,唉可能还是太菜,泪,拉了下来(悲)┭┮﹏┭┮由于这题网上全部是一句话题解,我并不能理解个中原因,向hkk神仙请教被以“很显然的做法”驳回。。神仙做题全都是显然吗?最后自己yy出了一种新做法应该叫新的科学严谨的理解方法,不知道是不是一种正确思路首先尝试优化建边,对于一个点对,他们连一条$\min(\Delta x,\Delta y)$的边,有没有...

2019-09-29 20:13:00 135

转载 BZOJ2763 [JLOI2011]飞行路线[最短路]

显然分层图裸题,做这题纯粹是为了填坑,不解释。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<cmath> 6 #include<queue>...

2019-09-29 11:56:00 117

转载 BZOJ2118 墨墨的等式[同余类最短路]

声明:关于这题的$O(mn)$尚且未深入理解,虽然之前有跟这位神仙聊过做法但并没太懂。。可能要等我问一波yql。。。$O(mnlogm)$同余最短路做法:首先不妨抽出最小的$a_i=m$,那么剩余的$a$如果可以表示出$x$,那么$x+km$的所有数都可以表出。所以对于$m$的同一个同余类$i\in[0,m)$,我们希望求出$f_i=\min\{h|h\mod=i\}$其中$...

2019-09-29 09:56:00 147

转载 poj1734 Sightseeing trip[最小环]

一个最小环裸题。最小环的两种求法dijkstra和Floyd直接参见这里我就是从这里学的,不想写了。注意这里最重要的一个点是利用了Floyd的dp过程中路径上点不超过$k$这一性质,来枚举环上最大编号并枚举连边,这样另外枚举的两个点的最短路肯定不会经过和$k$连的边。坑点:平常inf都开0x3f3f3f3f,这题没注意,在求环那里如果三个inf一加,就爆掉了。。所以要改小...

2019-09-28 20:26:00 81

转载 BZOJ1922 [Sdoi2010]大陆争霸[最短路]

orz极速暴切此题的hkk。如果没有保护限制,直接跑最短路,现在到达某些点要先经过保护点,那么在跑dijkstra时候每一轮可以先减少这些点保护数量,如果有恰好点没有保护了,说明这个点就可以走了,且这个点$dis$应当是走完所有保护点时间和走到他本身时间的$max$,把他压入堆。这样之后,如果又有其他点可以松弛他,就继续更新$dis$并压入堆。这样可以保证这种点$dis$取出来最...

2019-09-28 20:26:00 70

转载 BZOJ5056 OI游戏[最短路树]

有生以来做过的bzoj比A+B还简单的最水的题。(确信)不解释。UPD:据说这题正解应当是矩阵树定理?有生之年会补的。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #includ...

2019-09-28 20:26:00 91

转载 BZOJ1491 [NOI2007]社交网络[最短路计数]

$n$非常的小,结合题目计算式可以想到$O(n^3)$暴枚$s,t,v$,看$v$在不在$s\to t$最短路上($dis_{s,v}+dis_{v,t}=dis_{s,v}$是$v$在两点最短路上的充要条件——很好证),在则统计$\frac{cnt_{s,v}\times cnt_{v,t}}{cnt_{s,t}}$,这个$cnt$就是最短路条数。可以用dij,但是从代码简洁性的角度和...

2019-09-28 20:26:00 78

转载 luogu1261 服务器储存信息问题[最短路]

首先$O(n^2\log n)$暴力很好想,直接每个点出发跑一遍最短路,排$dis$统计一下即可。考虑怎么优化。发现$rank$很小,考虑从$rank$入手。换一种统计方法,看每个点$x$如果作为别的点的兴趣点,可能产生多少贡献。那么别的点$i$到他的最短距离设为$dis_i$,$i$到所有$rank_x+1$的点里面最短的距离是$f_{i,rank_x+1}$,那么肯定只有$dis_i...

2019-09-28 20:26:00 115

转载 loj2314 「NOIP2017」小凯的疑惑[同余最短路or数论]

这题以前就被灌输了“打表找规律”的思想,所以一直没有好好想这道题,过了一年还不太会qwq。虽然好像确实很简单,但是还是带着感觉会被嘲讽的心态写这个题解。。。而且还有一个log做法不会。。。法1:(一开始没看懂,后由hkk神仙教导ORZ)因为$ax+by=k$如果无视$\{x,y\}$非负整数解的条件的话,显然由于$gcd(a,b)=1$,所以所有$k$都可以表出。那么依题意如果有...

2019-09-27 20:55:00 209

转载 luogu4366 [Code+#4]最短路[优化建边最短路]

显然这里的$n^2$级别的边数不能全建出来,于是盯住xor这个关键点去 瞎猜 探究有没有什么特殊性质可以使得一些边没有必要建出来。发现一个点经过一次xor $x$,花费$x$这么多代价(先不看$C$),到达另一个点$u\text{xor}x$。结合异或性质,发现其实这个过程完全可以通过把$x$拆成一位一位去分别xor上$u$,也就是说,任何一个点到达另一个点只需要不断走$2^i$...

2019-09-26 22:12:00 115

转载 luogu3720 [AHOI2017初中组]guide[最短路]

初中组。。唉题意有点误解,当前在x点走一步,gps产生代价条件是沿非x到n的最短路走。直接倒着跑两遍$i\sim n$的两种最短路,然后枚举每条边走的时候是否可以在两种最短路上,不是就产生1个代价,然后以这个代价重新建图正着跑一遍最短路即可。 1 #include<iostream> 2 #include<cstdio> 3 #incl...

2019-09-26 22:12:00 100

转载 loj2613 「NOIP2013」华容道[最短路]

感觉和以前做过的一个推箱子很像,都是可以用bfs解决的,而且都是手玩出结论。因为起始棋子肯定是要和空格交换的,所以第一件事是先把空格移到棋子旁边。然后讨论怎么设计搜索状态。由于和推箱子实在太像了,所以直接借鉴,发现空格总是要贴着棋子走的要不然就是换个贴的方向继续走(这里的走就是指交换)。于是绑定两者,设计状态$f_{i,j,dir}$表示在棋子在某个格子,空格在上下左右四方位时候的最...

2019-09-26 22:12:00 83

转载 BZOJ3589 动态树[树剖/暴力/容斥]

操作0,显然直接线段树解决。操作1,瓶颈在于重叠的链只算一次。在线段树上来看,如果一个区间被覆盖了,那么只算这个区间,子树里面也就不管了。考虑对节点打标记来表示是否覆盖。但是,如果统一打完之后,并不方便计算打上标记的点的和。明确目标,现在希望能覆盖很多小区间的一个大区间被打上标记之后用他来更新答案。`````可以对每一个点维护$acc_i$表示这个点子树内被覆盖的区间的和。那...

2019-09-26 10:07:00 138

转载 loj2425 「NOIP2015」运输计划[二分答案+树上差分]

看到题意最小化最长路径,显然二分答案,枚举链长度不超过$\text{mid}$,然后尝试检验。`````检验是否存在这样一个边置为0后,全部链长$\le\text{mid}$,其最终目标就是、要让所有$>\text{mid}$的链长通过找出一个为0的公共边减掉而全部变为$\le\text{mid}$的。那么,统计出这$tot$条超出$\text{mid}$的链的路径上覆盖的...

2019-09-26 10:07:00 108

转载 BZOJ2238 Mst[最小生成树+树剖+线段树]

跑一遍mst。对于非mst上的边,显然删掉不影响。如果删边在树上,相当于这时剩下两个连通块。可以证明要重新构成mst只需要再加一条连接两个连通块的最小边,不会证,yy一下,因为原来连通块连的边权和已经最小化了,就不要动,如果换用两条以上的边,肯定不会更优。所以问题就是断掉树边,找最小联通边。可以LCT。`````这种一颗树断成两截找联通边的题有一个常用思路,要使得联通,必须得...

2019-09-26 10:07:00 102

转载 李超线段树 学习笔记

昨天做到了这个题:BZOJ4515 [SDOI2016]游戏。发现自己根本不会做,这线段树怎么维护啊。然后才知道有这么个李超线段树。。标记永久化李超线段树里面有一个标记永久化的思想,但是我没写过这种题。。大概看了一下。树套树以及主席树里,区间操作打标记会显得十分的麻烦可以将lazytag固定,不下传,不pushup的做法是标记永久化具体可以参考下面那个网址个人...

2019-09-23 20:57:00 171

转载 BZOJ4353 Play with tree[树剖]

复习几乎考不到的树剖。维护min以及min个数,打set和add标记即可,注意set优先级优于add。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<cmat...

2019-09-23 18:11:00 107

转载 BZOJ2144 跳跳棋[建模+LCA]

思维题,思路比较神仙。个人思路过程:个人只想到了只要中间棋子开始向外跳了,以后就不应该向内跳了,这样很蠢。所以应该要么先向内跳一会,要么直接开始中间的向外跳。不知道怎么处理,就卡住了。20pts:暴力BFS。事实上,这题的解题关键就在于一次只允许跳过1颗棋子,这表明向内跳只能是距离中间棋子近的那个向内跳,跳法唯一。再看向外跳是有两种的,中间的子越过左子,或者越过右子。发现...

2019-09-23 11:00:00 116

转载 20190922 CSP-S/NOI模拟

1 CSP-S模拟显然CSP-J难度。。这个是USACO 2019 JAN Gold的原题,可能因为过于水,所以我即使八点多才开始做也提前ak。。。来写一篇题解。。A. Cow Poetry显然押同一韵的行只需要最后一个词属于一个韵部,前面长度$K-s_i$随便排,DP一下长度$i$的有多少种,类似于背包转移,只是把物品放在内层,容量放在外层枚举,这样保证顺序不同时有不...

2019-09-22 10:56:00 141

转载 poj3417 Network/闇の連鎖[树上差分]

首先隔断一条树边,不计附加边这个树肯定是断成两块了,然后就看附加边有没有连着的两个点在不同的块内。方法1:BIT乱搞(个人思路)假设考虑到$x$节点隔断和他父亲的边,要看$x$子树内有没有点连着附加边到子树外的。如果没有,则随便割,有1个,有唯一割法,否则没有。这个可以用dfs序处理好序列后,直接将与一个点附加边牵连的另一个点在BIT里+1,类似晋升者计数那题一样的思路用BIT求...

2019-09-21 17:40:00 380

转载 poj3280 Cheapest Palindrome[区间DP]

poj我怎么一天到晚做的全是普及组CSP-J类的题目啊发现回文中心肯定是在串内部的。而一个串两端如果不一样,肯定是要动的。也就是说$S_{i...j}$只要动一端,看剩下来部分minvalue。于是这是一个基于区间的字符串DP。设$f_{i,j}$表示区间为回文串的最小代价,如果一个串两头不同,则从$f_{i+1,j}+del_i/add_i和f_{i,j-1}+del_j/...

2019-09-20 20:52:00 48

转载 poj3691 DNA repair[DP+AC自动机]

$给定 n 个模式串,和一个长度为 m 的原串 s,求至少修改原串中的几个字符可以使得原串中不包含任一个模式串。模式串总长度 ≤ 1000,m ≤ 1000。$先建出模式串的AC自动机,然后考虑怎么求最优解。考虑AC自动机上DP,设$f_{i,j}$走了$i$步之后在$j$节点时候的最少修改次数。标记处所有不能走到的点(即走到就匹配了的点,即后缀为某一模式串的所有点),走点的...

2019-09-20 18:01:00 68

转载 BZOJ1030 [JSOI2007]文本生成器[DP+AC自动机]

我学到现在才是初三学弟的水平。。哭这里相当于求长度为$m$的,字符集$\{A...Z\}$的且不包含任一模式串的文本串个数。这是一个典型的AC自动机匹配计数问题。设$f_{i,j}$表示在AC自动机上面走了$i$步在$j$点的方案数。注意由于不能包含任一模式串,也就是说任意时刻都不能项后缀含有模式串的点上走,也就是fail树上所有以模式串结尾点为根的子树上的点。这个可以在...

2019-09-20 16:50:00 81

转载 loj2424 「NOIP2015」子串[字符串DP]

给定字符串 A,B,要求从 A 中取出互不重叠的 k 个非空子串,按照出现顺序拼起来后等于 B。求方案数。n ≤ 1000,m ≤ 200。主要是状态的转移。先设计出$f_{i,j,k}$表长度$B_j$分了$k$段很好想,但是发现并不容易转移。主要瓶颈在于当枚举了状态$f_{i,j,k}$ 的时候加入可以匹配($A_i=B_j$),怎么从前面$A_1\sim A_{i-1}...

2019-09-20 12:11:00 101

转载 poj1038 Bugs Integrated, Inc.[状压DP]

改变了我对铺砖问题的认识。首先根据之前的理解,要表示这一行当前的铺设情况,注意到由于竖着摆砖是3层的,所以要保存两行的状态,也就是对于$a[i][j]和a[i-1][j]$的铺设状态。1.如何设计状态无非4种情况。$s_{i,j}=s{i-1,j}=0$,两格都没铺。可用$0$表示$s_{i,j}=0,s{i-1,j}=1$,用$1$表示$s_{i,j}=1,s{...

2019-09-18 16:53:00 123

转载 loj2318 「NOIP2017」宝藏[状压DP]

附带其他做法参考:随机化(模拟退火、爬山等等等)配合搜索剪枝食用。首先题意相当于在图上找一颗生成树并确定根,使得每个点与父亲的连边的权乘以各自深度的总和最小。即$\sum\limits_{i}depth_i\times value_{i→fa}$。看数据范围想状压,固定好一个点为根,然后每个点选没选看做状态$0/1$压位,于是朴素思想是$f[S][S_0][d]$表示已经选了...

2019-09-18 08:19:00 77

转载 BZOJ3329 Xorequ[数位DP+递推矩阵快速幂]

数 位 D P 开 long long首先第一问是转化。于是就可以二进制下DP了。第二问是递推,假设最后$n-1$个01位的填法设为$f[i-1]$(方案包括0),于是有fib数列递推关系(很好推),然后矩阵快速幂即可。一开始思路有点乱,导致边界初始化屡次出错。WA1:见标题赤字。WA2:初始化写错了。。。 1 ...

2019-09-17 18:00:00 79

转载 P1879 [USACO06NOV]玉米田Corn Fields[轮廓线DP]

状压暴力显然可做。但是数据出的再大一点就要稳T了。理论$O(n4^m)$,只不过实际跑不满。考虑用轮廓线DP,设$f(i,j,S)$为处理到$(i,j)$时候(这格还不确定)的轮廓线为$S$的情况(相当于把$(i,1\sim j-1)$和$(i-1,j\sim m)$的$m$个数用$S$压起来)下有多少种合法方案,然后考虑$(i,j)$这个格子填什么。不管怎么样,这格都可以填0,...

2019-09-17 18:00:00 94

转载 hdu4352 XHXJ's LIS[数位DP套状压DP+LIS$O(nlogn)$]

统计$[L,R]$内LIS长度为$k$的数的个数,$Q \le 10000,L,R < 2^{63}-1,k \le 10$。首先肯定是数位DP。然后考虑怎么做这个dp。如果把$k$记录到状态里没有用。需要找到有效方法统一的表示前面填好的数的特点方便之后的填数。回顾LIS过程,当前数结尾的LIS是前面比他小的数的LIS中的max+1,但是没有办法记录下来,因为如果记录下...

2019-09-17 18:00:00 99

转载 poj1015 Jury Compromise[背包]

每一件物品有两个属性。朴素思想是把这两种属性都设计到状态里,但空间爆炸。又因为这两个属性相互间存在制约关系(差的绝对值最小),不妨把答案设计入状态中,设$f[i][j]$选$i$个人,两者之差$j$。这样dp。于是$O(NM^3)$暴力背包即可,记录转移,也就是$g[i][j][k]$来表示当前到这个人$i$的时候选了$j$人,是怎么转移的,如果由$j-1$转移,说明这个人$i$选了。...

2019-09-17 18:00:00 87

转载 hdu4507 吉哥系列故事——恨7不成妻[数位DP]

这题面什么垃圾玩意儿首先看到问题格式想到数位DP,但是求的是平方和。尝试用数位DP推出。先尝试拼出和。设$f[len][sum][mod]$表示填到$len$位,已填位置数位和$sum$,数字取余为$mod$时候的方案数,$g[len][sum][mod]$表示在这种情况下的所有满足要求的数的和(指的是后面剩余空位部分的数的和,前面填好的是不算的)。那么枚举所填的数$i$...

2019-09-17 18:00:00 61

转载 【鸽】poj3311 Hie with the Pie[状压DP+Floyd]

题解网上一搜一大坨的,不用复述了吧。只是觉得网上dp方程没多大问题,但是状态的表示含义模糊。不同于正常哈密顿路径求解,状态表示应当改一下。首先定义一次移动为从一个点经过若干个点到达另一个点,则$f[S][i]$个人认为应当表示经过若干次移动,每次移动的终点状态记为$1$,由此构成的集合$S$,也就是说,每次移动的中间路过点都不算在内。$i$是最后一次移动的终点。下面重点解决两...

2019-09-17 18:00:00 69

转载 hdu3586 Information Disturbing[二分答案+树形DP]

给定 n 个节点的树,边有权值。1 号点是根,除了 1 号点外的度数为 1 的节点是叶子。要求切断所有叶子和 1 号点之间的联系,切断一条边要花费这条边上权值对应的代价,要求总的代价不超过 m。在满足这个前提下要求切断的边权的最大值最小,求出这个最小值。$n ≤ 10^5$首先这个最大值肯定二分答案,然后树形DP限制割掉的边不能超过这个二分的边权,设$f[i]$表示在这个限制下该...

2019-09-12 11:40:00 117

转载 BZOJ4247 挂饰[背包]

这道题写的时候迷迷糊糊很困。。所以我也不知道我为什么过了QWQ一开始思路不太好,设$f[i]$表示还剩$i$个挂钩,发现边界很难处理,但是发现物品不能一样一样按顺序枚举,需要先把挂钩$> 0$价值$\ge 0$的全挂上去,然后挂钩$=0$价值$\le 0$的扔掉。只剩下两种:价值$>0$挂钩$=0$的和价值$<0$挂钩$>1$的。如果这时候现有的挂钩可以把...

2019-09-12 08:28:00 86

转载 BZOJ3620 似乎在梦中见过的样子[KMP]

吐槽迷惑行为大赏。。。想好的$O(n^2)$暴力没敢写,结果正解就是15000卡常过$O(n^2)$。。还耗了我一节课想SA的$O(n\text{log}n)$做法没想出来。。。这题其实和动物园差不多,所谓$A+B+A$形式其实就是对于$i,j$,$\exists x \in [i,j]$使得$s[i...x]=s[j-(x-i),j]$且$x< j-(x-i)...

2019-09-11 15:50:00 140

转载 BZOJ3670 [Noi2014]动物园[KMP]

这是noi题吗。。为什么我这种菜鸡都会做。。表示质疑。求一个串$S$的每一个前缀$i$的不重叠的既为前缀又为后缀(下简称:前后缀)的子串数量$num$。模仿KMP,假设当前在求$i$的$next$数组,同时希望求出$num$,那也就是看前缀$i-1$中是前后缀且不重叠的所有子串和第$i$位的匹配数量。那么可以从最长的一个不超过$\lfloor i/2 \rfloor$的前后缀...

2019-09-11 10:35:00 51

转载 BZOJ3555 [Ctsc2014]企鹅QQ[暴力+字符串hash]

菜到自闭,一道省选小水题都能给我做繁。要求有一位不同,则对每个串每一位暴力枚举把这一位删掉,放一个分隔符,算一下hash,插表,相似的都应该会被插入同一个桶。最后把hash统计一下即可。复杂度$O(nL)$。但是除了我以外的所有人全是把hash算好丢数组里排序,然后相似的串hash必连在一起。复杂度$O(nLlognL)$,吊打前者。 1 #include<io...

2019-09-11 08:14:00 88

转载 BZOJ4641 基因改造[KMP]

这道题以前好像模拟的时候做过,当时不会做,于是用hash水过去了。。正解是KMP,还是用当前字符与上一次相同字符位置的距离表示数组,于是数值相等时就代表相似。第一次出现用INF代替。然后要匹配有多少个。暴力匹配的话是:匹配到$s_i,t_{j+1}$时,若$s_i=t_{j+1}$或者是$s_i>j$且$t_{j+1}>j$。这表示距离相同或者第一次出现时的匹配。...

2019-09-10 16:40:00 114

转载 BZOJ4004 [JLOI2015]装备购买[贪心+线性基+高消]

一个物品可以被其他物品表出,说明另外的每个物品看成矩阵的一个行向量可以表出该物品代表的行向量。于是构造矩阵,求最多选多少个物品,就是尽可能用已有的物品去表示,相当于去消去一些没必要物品,类似于xor的线性基,这里是实数的线性基。通过高斯消元不断消除,看消出几行全是零的即可。也就是看这个线性空间基底的维数或者说矩阵的秩。但是本题还要选的东西花费最少。可以考虑每次消元时,选择...

2019-09-09 23:57:00 113

转载 poj1222 EXTENDED LIGHTS OUT[高斯消元]

点灯问题。和上一篇差不多,只不过这次是一个方阵,一个灯被操作了一次之后四方取反。目标是求最少点多少次。上篇忘说了,一个灯只有操作一次或零次是有意义的,两次相当于取了两次xor。这不废话吗。把上一篇的影响内容改一改,然后求解的话,对于每个系数不为零的方程,第一个有系数的地方是主元,主元后面的有系数的都是自由元,不妨贪心全取0,那主元取0还是1就看等号右边了。记录每个灯的操作,系数全...

2019-09-09 19:02:00 88

空空如也

空空如也

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

TA关注的人

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