自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Y390d的博客

ACM复习笔记

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

原创 POJ - 2983 Is the Information Reliable 【spfa解决差分约束问题】

题目链接:http://poj.org/problem?id=2983原理在上篇博客已经讲过了,这里把要注意的讲下。1,因为差分约束问题都是不等式约束,以不等式为基础给题目建图,但是如果题目给出的约束条件是 d[u] - d[v] == w,怎么处理?w <= d[u] - d[v] <=w,这样就能表示d[u] - d[v] == w这个条件,一条正向正权值,一条反向负...

2019-02-28 15:17:11 109

原创 POJ - 2019 Cornfields 【二维线段树】

题目链接:https://vjudge.net/problem/POJ-2019我写的这个二维线段树没什么技巧,就是直接开一个 node[cur][cure],cur代表的是x轴的一维线段树,cure代表的是y轴的一维线段树。初始化:先从x轴开始做线段树的操作,当x轴到达叶节点时,再对y轴做线段树的操作,x轴返回到父节点时,一样要对y轴从1到N重头做一次线段树的操作,这是初始化的过程,...

2019-02-27 20:53:46 164

原创 Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 2) Toy Train 【贪心】

题目链接:http://codeforces.com/contest/1130/problem/D2贪心的策略还算比较容易找的,但是会比较难写。贪心策略是每次都取离当前车站最远的一颗糖,这样能多经过几个车站多取几颗糖,省时间。但是写起来特别麻烦。但是如果你能把这道题的问题写成一个公式,那么会简单很多。假设5个车站,只有一个车站有3颗糖,并且这3颗糖都不是当前车站的。这个时候我们...

2019-02-26 18:46:14 297

原创 POJ - 1201 Intervals 【spfa解决差分约束问题】

题目链接:http://poj.org/problem?id=1201题目的意思是一个序列在数字上满足约束条件,值在a和b之间的数至少出现c个不同的数,输出满足条件的最短长度。可以先参考下这个博客:https://blog.csdn.net/godleaf/article/details/87907527首先要注意的是给出的a和b中,a要-1,为什么?因为 [ a, a ] 可以出...

2019-02-25 22:51:29 108

原创 POJ - 3169 Layout 【spfa解决差分约束问题】

题目链接:http://poj.org/problem?id=3169根据给出的样例,我们能得到下面几个不等式。(d表示离点1的距离)d[2] - d[3] <= 10d[4] - d[2] <= 20d[3] - d[2] >= 3第三个不等式通过移项能得到 d[2] - d[3] <= -3 再来看看spfa的松弛不等式 d[v] > d[...

2019-02-24 21:54:33 275

原创 POJ - 3255 Roadblocks 【次短路】

题目链接:http://poj.org/problem?id=3255如果是求最短路,直接套模板就能AC,但是次短路怎么求。其实仔细分析一下就能知道,如果我每一个路径都保证是最优的走法,那么得到的就是最短路径,但是如果我有一步走错了,后面又继续走最优的走法,那么得到的路径就会比最短路长,当然如果走错两步,总路径也一定比最短路径长,但是只要我走错之后又继续走最优的走法,那么走错两步的情况一定...

2019-02-23 17:41:40 136

原创 Codeforces Round #539 (Div. 2) Sasha and a Bit of Relax 【DP】

题目链接:http://codeforces.com/contest/1113/problem/C这道题的难点不在DP而在等式。这个等式我当时有想到,但是给我自己给推掉了。题目要求的是   a(l) ^ a(l+1)^.... == a(mid+1)^...^a(r) 这种情况的个数有多少。这个等式要结合异或 xor的运算法则才能做。首先是   A^B^C^D == A^B^(...

2019-02-18 17:09:05 115

原创 HDU - 3001 Travelling 【三进制状态压缩+BFS】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3001状压DP也能做,这里用的是BFS从搜索的思路来看,这道题的难点就是状态重复访问的情况比较多,到现在我也没明白会有哪些重复访问的状态。首先题目给出的是10个城市,每个城市都只能被访问两次,所以每一个城市可能访问的次数有0,1,2,三种,所以所有的状态数是3^10,这个数不会很大,而且起点...

2019-02-16 17:16:43 298

原创 HDU - 2102 A计划 【BFS】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2102有两个要注意的地方1,走到传送门是强制传送的。2,如果传送到另一层又是一个传送门,会死循环,直接排除掉这个点。#include <iostream>#include <queue>#include <cstring>#include &l...

2019-02-15 18:08:50 102 1

原创 HDU - 1067 Gap 【BFS+字符串压缩状态】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1067一开始看题目的时候,最苦恼的就是题目存在的状态数太多,空格可能存放的数字有28个,那么可能的状态就有 28!种,这个数目显然很大,所以不知道如何做。但事实上并不用都遍历一遍,虽然我知道,只要四个空格左边的数都是个位数为7的数,那么就可以肯定无解,这样能减少不少耗时,但是我没想到能减这么多。...

2019-02-15 17:05:16 202

原创 ZOJ - 2477 Magic Cube 【迭代加深+模拟】

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2477从接触acm到现在,一直很抵触ZOJ的题目,我做过的很多ZOJ的题目大部分题意都很模糊,阐述不清楚。这道题的难点不在搜索,光看题目的问法都应该知道是用迭代加深,但是真正让人崩溃的是什么地方?首先是立方的展开图,如果没指名哪一面是正面或者背面,对应的...

2019-02-13 19:15:58 355

原创 HDU - 1560 DNA sequence 【迭代加深】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1560关于迭代加深,可以参考这篇博客 https://blog.csdn.net/hzaukotete/article/details/81226556迭代加深是在dfs的基础上,枚举深搜的深度 dep。比如说 我一开始规定 dep == 1,当dfs深搜到深度为 1的时候就回溯,如果dep...

2019-02-12 18:42:06 183

原创 HDU - 3533 Escape 【BFS】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3533需要注意的点:1,人不能去有城堡的地方2,子弹不能穿过城堡,遇到城堡子弹不会继续向前射,即使城堡在途中也不行,比如说子弹从(0, 0) 向 (0, 3)射,如果(0, 1)有城堡,子弹会消失。3,子弹是从时间 t 开始射击的,不是从0开始。思路就是人先走,然后遍历每一个城堡的射...

2019-02-12 14:28:19 138

原创 HDU - 3567 Eight II 【bfs打表+映射+康托展开】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3567这道题比较容易想到的就是双向bfs,在时间上是比较理想的,但是在内存上就比较紧张。网上看到有人用映射的技巧做这题。假设我知道起点是 12345678x这个状态到其他状态的所有路径。对于所有起点是 ********x这个状态到其他状态的所有路径我也能够知道。假设我知道12x34567...

2019-02-11 13:31:31 276

原创 Educational Codeforces Round 59 (Rated for Div. 2) D Compression 【dp】

题目链接:http://codeforces.com/contest/1107/problem/D这道题只要把主要问题找出来就有思路了。题目的矩阵是 n*n的,要想压缩成 n/x *n/x 的矩阵需要满足一个条件,假设x == 2,那么这个矩阵将会被分成4小块矩阵,如果这四个小矩阵每一块要么全是1要么全是0,那这个矩阵就能压缩成n/2 *n/2的矩阵。因为题目给的n比较大,如果暴力求小...

2019-02-10 15:10:47 262

原创 HDU - 1043 Eight 【反向BFS打表】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1043因为状态不多,在样例不多的情况下,直接bfs也是能过的(POJ),但是对于样例多的HDU,需要把所有可能的结果都预处理一遍存起来,要的时候直接输出结果,就能快很多。网上很多代码都有用康托展开做空间优化,不用康托展开优化,用一个map存结果,也是能过的,下面写了两个。要注意的是,你bfs...

2019-02-09 17:30:12 235

原创 康托展开原理

康托展开结合组合数学会比较容易理解。假设有 {1, 2, 3} 这三个数,那么全部的排列组合有 6种,按从小到大的顺序有 123, 132,213, 231, 312, 321。而康托展开能以n^2的时间复杂度求出比某个排序组合小的个数。比如说 比 213 小的数有2个,比312小的数有4个。原理:假设有 {1,2, 3, 4} 这4个数,根据组合数学的知识,一共有 4*3*2*1...

2019-02-09 17:13:37 878

空空如也

空空如也

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

TA关注的人

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