Icefox的博客

生活不止眼前的苟且,还有诗和远方。

bzoj2393 Cirno的完美算数教室(容斥原理+dfs)

和bzoj1853基本一模一样,因为是2和9还更少了些合法数字… #include <bits/stdc++.h> using namespace std; #define ll long long #define inf 0x3f3f3f3f #de...

2018-06-22 16:25:00

阅读数:65

评论数:0

bzoj1853 [Scoi2010]幸运数字(容斥原理+dfs)

我们发现纯幸运数字只有2046个,而去掉倍数之后只剩了943个。 我们直接容斥,暴力枚举就好了qaq 注意剪枝,从大到小枚举,求lcm避免爆ll等玄学技巧就好了qaq #include <bits/stdc++.h> using namespace...

2018-06-22 16:21:25

阅读数:73

评论数:0

bzoj1327/poj2286 The Rotation Game(IDA*)

迭代加深A*搜索qaq 就是每次设一个目标深度,把当前局面在最理想状况下还需多少步当做估价函数。如果当前深度+估价函数>目标深度则剪枝。 #include <bits/stdc++.h> using na...

2018-06-13 13:27:37

阅读数:35

评论数:0

bzoj2574 [Poi1999]Store-Keeper(bfs+点双)

和bzoj5138基本一样qaq #include <bits/stdc++.h> using namespace std; #define ll long long #define inf 0x3f3f3f3f #define N 1...

2018-05-31 22:26:32

阅读数:66

评论数:0

bzoj5138 [Usaco2017 Dec]Push a Box(bfs+点双)

推箱子owo 考虑bfs出所有可以到达的状态,O(1)回答询问。 用f[x][y][i]f[x][y][i]f[x][y][i]表示箱子在(x,y),人在箱子的i方向。(人不在箱子旁时没啥用,所以可以压缩状态) 两种决策: 1、推箱子,很好转移。 2、箱子不动,人换方向。需要判断两个点是...

2018-05-31 22:16:49

阅读数:101

评论数:0

bzoj4997 [Usaco2017 Feb]Why Did the Cow Cross the Road III(bfs)

枚举每一个起点,bfs能访问到几头牛即可。复杂度O(n3)O(n^3)

2018-04-24 11:33:13

阅读数:22

评论数:0

bzoj4945 [Noi2017]游戏(2-sat+枚举)

如果没有x那就是很标准的2-sat模型。 每个点两种选择,上第一种车或第二种,要求i,oi,j,oi就建边i,oi->j,oj,建边j,oj^!->i,oi^1那对于x怎么办呢?这是3-sat呀qaq还好x的很少,我们可以枚举他为不能上A或不能上B(可以发现,不用枚举...

2018-04-24 10:29:23

阅读数:107

评论数:0

bzoj4032 [HEOI2015]最短不公共子串(SAM+序列自动机+bfs)

序列自动机就是可以识别所有子序列的自动机,点数O(n)O(n),边数O(26n)O(26n) 每个点的par就是这个点代表的字母上一次出现的位置,因此要记录last[i],表示字母i上一次出现在哪,然后每一个点的儿子i指向他后面出现的第一个字母i的位置。求A最短的子串/子序列不是B的子串/子序列...

2018-04-23 11:02:49

阅读数:89

评论数:0

bzoj1194 [HNOI2006]潘多拉的盒子(自动机+bfs+tarjan+拓扑序dp)

我们枚举每一对自动机A,B,看A能识别的所有串能否被B全都识别。如果能就建边A->B.那么我们tarjan缩点+拓扑序dp求最长链即可。 考虑如何判断能否全都识别:bfs,同时扩展两个自动机,如果某一个串在A自动机走到了结束节点而B自动机不是结束节点,那么就不能全部识别。以A,B自动机分别...

2018-04-23 09:50:12

阅读数:68

评论数:0

bzoj1064 [Noi2008]假面舞会(图论+dfs)

图论神题orz如果这个图有环,那么最大的就是所有环长的gcd。这里有环不仅仅指有向图上的环,一些边反向后可以成环的也算(因为这种相当于两条收尾相同的链,它隐含着一个长度为两条链的长度的差的环)。为了方便,我们把有向边x->y,拆成正向边x->y,1和反向边y->x,-1。这样环长...

2018-04-19 11:05:52

阅读数:41

评论数:0

bzoj4756 [Usaco2017 Jan]Promotion Counting(dfs+BIT)

dfs+树状数组即可。子树内的贡献就是进子树前存一个,出子树存一个,差就是子树内的贡献。

2018-04-12 16:25:47

阅读数:62

评论数:0

bzoj3027 [Ceoi2004]Sweet(生成函数+组合数学+爆搜)

首先我们可以写出每一种糖果的生成函数,然后写成闭形式,乘起来,就得到了 ∏i=1n(1−xmi+1)(1−x)n\frac{\prod\limits_{i=1}^n(1-x^{m_i+1})}{(1-x)^n} 答案就是xa...xbx^a...x^b的系数和。 上式的分子部分我们可以O(2...

2018-04-11 09:50:37

阅读数:69

评论数:0

bzoj1054 [HAOI2008]移动玩具(状压+bfs)

一共就16个位置,不是1就是0,显然想到状压。 一共2162^{16}种状态,bfs即可。复杂度大概O(216∗16∗4)O(2^{16}*16*4)

2018-04-10 09:42:48

阅读数:72

评论数:0

bzoj1053 [HAOI2007]反素数ant(数论+搜索)

求一段区间内最大的反质数,其实就是求一段区间内约数个数最大的数,如果有多个取最小的。我们知道 x=∑i=1kpaiix=\sum\limits_{i=1}^kp_i^{a_i} 则约数个数为∏i=1k(ai+1)\prod\limits_{i=1}^k(a_i+1) 因此我们不难发现我们一定...

2018-04-10 09:15:24

阅读数:65

评论数:0

bzoj1086 [SCOI2005]王室联邦(树分块,dfs)

嗯,很好的向你证明了树上分块,每一块大小都可以控制在B~3B之间。

2018-04-06 21:38:47

阅读数:47

评论数:0

bzoj1085 [SCOI2005]骑士精神(A*搜索)

估值函数为:当前棋盘与目标棋盘不同的位置数量-1易知一个棋盘最少需要这么多的步数才能达成目标棋盘若当前步数+估值函数大于最大深度 则剪枝

2018-04-06 20:46:45

阅读数:30

评论数:0

bzoj1024 [SCOI2009]生日快乐(爆搜)

每次枚举这一刀切在哪里即可。

2018-03-29 13:12:29

阅读数:63

评论数:0

bzoj1017 [JSOI2008]魔兽地图DotR(树形dp+背包dp+剪枝)

真神orz 给出的关系显然是一棵树,我们可以先处理出每个点的单价和最多购买数量。令f[x][i][j],表示在点x的子树中,恰花费i,上缴j个x的最大获利。考虑背包转移,令g[i][j]表示前几个子树的恰花费i,上缴j个的最大获利,现在做到儿子y,则f[x][i+ii][j]可以由g[i][j]...

2018-03-28 20:33:10

阅读数:76

评论数:0

bzoj3629 [JLOI2014]聪明的燕姿(数论+dfs)

首先我们有约数和公式: 若x=∏i=1npqiix=\prod\limits_{i=1}^np_i^{q_i} 则x的约数和d(x)=∏i=1n∑j=0qipjid(x)=\prod\limits_{i=1}^n\sum\limits_{j=0}^{q_i}p_i^j 于是我们可以枚举质因子...

2018-03-17 18:12:31

阅读数:108

评论数:0

poj1419 Graph Coloring(一般图最大点独立集)

就是求一般图的最大点独立集,也就是求补图的最大团。 此题最大团直接爆搜求解即可。

2018-03-17 16:21:54

阅读数:226

评论数:0

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