forezxl的博客

ZJ蒟蒻OIer

BZOJ1012: [JSOI2008]最大数maxnumber(洛谷P1198)

线段树 BZOJ题目传送门 洛谷题目传送门 这道题做法很多,这里采用线段树。 先建一颗200000大小的线段树。插入时就相当于单点修改,查询时直接查就好了。 代码(洛谷加了读优最后一个点会T掉我也不知道为什么): #include #include #include #include ...

2018-01-27 21:10:35

阅读数:138

评论数:0

BZOJ1003: [ZJOI2006]物流运输(洛谷P1772)

最短路 DP BZOJ题目传送门 洛谷题目传送门 首先spfa预处理从i'>iii到j'>jjj天用同一路线的最短路,记为w[i][j]'>w[i][j]w[i][j]w[i][j]。 dp[i]'>dp[i]dp[i]dp[i]表示前i'>iii天的最小代价...

2018-01-27 17:30:57

阅读数:131

评论数:0

洛谷P1074 靶形数独(NOIp2009)

DLX 题目传送门 常规方法是DFS+一些剪枝。但是因为这是数独,可以用DLX求出数独的所有解,取分数最大的那个即可。 不会DLX的小伙伴看这里 代码: #include #include #include #define N 81*9 #define M 81*4 using na...

2018-01-27 11:00:20

阅读数:91

评论数:0

hihocoder1321 搜索五·数独

DLX 题目传送门 DLX的一个经典应用。 首先我们需要把这个数独问题转化为一个精确覆盖问题。 根据数独的规则,我们有如下几个限制: 1.每个数字在每一行只能出现一次。限制编号1~81 2.每个数字在每一列只能出现一次。限制编号82~162 3.每个数字在每一个...

2018-01-25 20:33:33

阅读数:247

评论数:0

DLX 简介(hihocoder1317)

问题简介 精确覆盖问题:给定一个01矩阵,从中选出若干行,使得每一列恰好有一个1。求一个方案。 算法实现 搜索 每次选择一行,然后把这一行有1的列,在同一列中也有1的其它行,以及这一行本身从矩阵中除去。然后又变成了一个小的矩阵,一直递归至只剩一行。如果这一行全是1,则返回有解并输出...

2018-01-23 21:14:14

阅读数:101

评论数:0

BZOJ1001: [BeiJing2006]狼抓兔子(洛谷P4001)

平面图最小割->对偶图最短路 BZOJ题目传送门 洛谷题目传送门 比较经典的一道平面图最小割转对偶图最短路的题。 推荐这个 我的对偶图标号方法: 注意特判n==1||m==1的情况 代码: #include #include #include #include #incl...

2018-01-21 12:02:44

阅读数:124

评论数:0

BZOJ4458: GTY的OJ

贪心 ST表 堆 题目传送门 树上的超级钢琴,我们只需要建树上的ST表即可,稍微复杂了点。 代码: #include #include #include #include #include #include #define N 500005 #define lg 19 #define ...

2018-01-20 16:08:48

阅读数:157

评论数:0

BZOJ2006: [NOI2010]超级钢琴(洛谷P2048)

贪心 ST表 堆 BZOJ题目传送门 洛谷题目传送门 貌似这是一类题目啊。。。 题意:给定一个序列,求长度在[l,r][l,r]范围内的前k大子段和,不能重复。 最暴力的方法当然是把所有子段搞出来排个序,但是当r−l+1r-l+1 足够大时,显然会爆炸。 考虑到k不大,我们可以换个...

2018-01-19 20:43:26

阅读数:142

评论数:0

洛谷P3825 [NOI2017]游戏(BZOJ4945)

2-SAT DFS 洛谷题目传送门 BZOJ题目传送门 每张地图都只有两种车能使用且只能用一辆车,这样的限制满足2-SAT。 设每种地图能使用的两辆车为id[x]和id[x]^1。 先假设没有x地图存在,那么对于一个限制(x,p,y,q)(x,p,y,q)(x,p,y,q),我们可以进行...

2018-01-19 14:35:53

阅读数:92

评论数:0

BZOJ1997: [Hnoi2010]Planar(洛谷P3209)

2-SAT 平面图 BZOJ题目传送门 洛谷题目传送门 首先根据平面图的性质,如果m>n∗3−6m>n*3-6,那么这个图一定不是平面图。这样我们就可以把边数缩至nn级别的了。 因为存在哈密顿回路,那么对于连接相同的两点的边,最多只能有两条(除了哈密顿回路的边),一条在环的里面...

2018-01-17 19:30:59

阅读数:79

评论数:0

2-SAT(POJ3683)

前置技能 Tarjan 定义 K-SAT:给你许多个集合,每个集合都有k个元素。同时又有一些限制(如取x则不能取y),你必须在所有集合中取且仅能取一个元素,求合法方案。 2-SAT:当K取2时的情况。 为什么只考虑K=2的情况呢? 因为当K>2时,已经被证明是一个NPC问题。...

2018-01-16 20:01:29

阅读数:97

评论数:0

HDU1814 Peaceful Commission

2-SAT 题目传送门 入坑2-SAT qwq 2-SAT经典题,但因为求最小字典序,所以只能暴力判断。(要有信仰O(nm)O(nm)是过得去的) 代码: #include #include #include #include #define N 16001 #define M 40...

2018-01-14 20:42:25

阅读数:72

评论数:0

BZOJ2957: 楼房重建

线段树 题目传送门 当修改某一个建筑的高度时,只会对后面的答案产生影响。 线段树建好后,对于一个节点有两种情况: 1.这个节点中最大的斜率≤修改的斜率(斜率相等的时候也算看不见)。这时这个节点对答案的贡献没有贡献。 2.否则如果其左子树的最大斜率>修改...

2018-01-14 19:50:05

阅读数:158

评论数:0

BZOJ2843: 极地旅行社

LCT 题目传送门 继续划水打模板 代码: #include #include #include #include #define N 30005 #define il inline #define iv il void using namespace std; struct node{ ...

2018-01-10 20:07:29

阅读数:124

评论数:0

BZOJ2049: [Sdoi2008]Cave 洞穴勘测(洛谷P2147)

LCT BZOJ题目传送门 洛谷题目传送门 简单的LCT应用。 每个询问其实就是询问他们的祖先是否相等。只需要access(x),splay(x),再不断往左走到最底就是x的祖先了。 LCT不会? 丑陋的代码: #include #include #include #include ...

2018-01-10 18:54:58

阅读数:96

评论数:0

BZOJ2002: [Hnoi2010]Bounce 弹飞绵羊(洛谷P3203)

LCT BZOJ题目传送门 洛谷题目传送门 新增一个点n+1表示弹飞的点。 刚开始把i和i+ki接起来,查询时直接把x到n+1的路径拎出来,答案就是节点个数-1。改值时把x和x+ki断开,再把x和x+y接起来。注意对n+1取min。 代码: #include #include #inc...

2018-01-07 21:11:26

阅读数:117

评论数:0

LCT(动态树)(洛谷P3690)(BZOJ3282)

推荐这篇论文 前置技能 Splay和树链剖分 简介 动态树问题, 简称LCT,近几年在OI中兴起的一种新型问题,是一类要求维护一个有根树森林,支持对树的分割, 合并等操作的问题。 算法用途 比如维护一个数据结构,有如下操作: 1.查询路径权值和。 2.查询LCA。 3...

2018-01-07 19:44:00

阅读数:181

评论数:0

树套树之线段树套线段树(BZOJ3110、洛谷P3332)

线段树可以维护一个序列。当需要维护一个矩阵(即二维平面)内的数值,或者有什么奇怪的区间操作时,就需要用到二维线段树,也就是线段树“套上”线段树。

2018-01-03 20:22:51

阅读数:286

评论数:0

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