自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 HDU5883 The Best Path(欧拉回路 | 通路下求XOR的最大值)

本文链接:http://www.cnblogs.com/Ash-ly/p/5932748.html题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5883思路:  先判断原图是否是欧拉回路或者欧拉通路.是的话如果一个点的度数除以2是奇数则可以产生一个XOR贡献值.之后如果是欧拉通路, 则答案是固定的,起点和终点需要多产生一次贡献值...

2016-10-05 20:06:00 137

转载 Codeforces 722C(并查集 + 思维)

本文链接:http://www.cnblogs.com/Ash-ly/p/5932712.html题目链接:http://codeforces.com/problemset/problem/722/C思路:  题目给的操作数从第 1 个到第 N 个数是删除原数组中的一个数, 那么反过来从后往前就是增加原数组中的一个数, 每增加一个值, 那么就有四种情况: 第一种和前后都不连续...

2016-10-05 19:46:00 223

转载 Floyd 算法求多源最短路径

本文链接:http://www.cnblogs.com/Ash-ly/p/5920953.htmlFloyd算法:  Floyd算法用来找出每对顶点之间的最短距离,它对图的要求是,既可以是无向图也可以是有向图,边权可以为负,但是不能存在负环(可根据最小环的正负来判定).基本算法:  Floyd算法基于动态规划的思想,以 u 到 v 的最短路径至少经过前 k 个点为转移状态...

2016-09-29 19:00:00 147

转载 vim 配置

1 set tabstop=4 2 set shiftwidth=4 3 set autoindent 4 set smartindent 5 set number 6 set softtabstop=4 7 set cindent 8 syntax enable 9 set t_Co=25610 let g:solarized_termcol...

2016-09-27 16:47:00 80

转载 STL容器 -- Vector

核心:Vector 是 STL 里的一个向量容器,可以像数组那样进行随机访问,能在尾部插入元素,对于元素的删除和插入可以动态管理内存.头文件: #include <vector>构造函数:vector<int> v; //构造一个存储 int 型变量的 vectorvector<int> v(n, value) //构造一个初...

2016-09-20 19:31:00 93

转载 STL容器 -- Bitset

核心内容:Bitset 是 STL 中的二进制容器, 存放的时 bit 位元素, 每一位只占一个 bit 位, 取值 0 或者 1, 可以像整形元素一样按位与或非, 并且大大优化了时间和空间复杂度.头文件: #include <bitset>构造方法:1 bitset<length> b //b为bitset对象,它能容纳length个bit位,...

2016-09-20 19:01:00 76

转载 HDU 5707 Combine String(动态规划)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5707题意:给你三个字符串 S1, S2, S3, 让你判断 S3 是否恰好由字符串 S1 和 S2组成, S1 为 S3 的子串, S2 也为 S3 的子串, 可以不连续.思路:设 dp[i][j] 表示字符串 S3 的前 i + j 位是否可以由字符串 S1 的前 i 位以...

2016-09-16 20:03:00 93

转载 HDU 5876 Sparse Graph(补图上BFS)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5876题意:  有一个 n 个点无向图,再给你 m 对顶点, 代表着这 m 对顶点之间没有边, 除此之外每两个点之间都有一条边, 且权值为 1.然后还有一个源点 S, 让你计算源点到其他各点之间的最短距离,如果不存在则输出 -1.也就是说让你在所给的图的补图上求源点到其他各点的最短路径...

2016-09-16 12:04:00 95

转载 STL容器 -- Set

核心: set 是一个数学含义上的集合-----保证了每个数的确定性, 互异性, 不仅如此, set 中的元素还是有序的.头文件: #include <set>拓展:由于 set 内的元素是唯一的, 即不会出现相同值的元素,所以无法存储重复值.如果要想存储重复值那么可以用multiset.构造方法:set<int> s1; //定义一个 in...

2016-09-15 17:22:00 82

转载 STL容器 -- Map

核心描述: map 就是从键(key) 到 值(value) 的一个映射.且键值不可重复,内部按照键值排序.头文件: #include <map>拓展:multimap 是一个多重映照容器,键值可以重复.unordered_set 是一个内部不排序的映射容器,需包含头文件<unordered_map>构造方法:map<int, str...

2016-09-15 14:57:00 55

转载 STL容器 -- Priority_Queue

核心:和队列相似,但优先队列中的 “下一个元素” 指的是 “优先级最高” 的元素.头文件:#include<queue>普通类型的构造方法:priority_queue<int> maxQu; //构造一个包含 int 型元素的优先队列,默认优先级为 int 元素的值越大则优先级越高priority_qu...

2016-09-15 11:46:00 73

转载 STL容器 -- Queue

核心:先进先出, FIFO.头文件: #include <queue>常用的构造方法:queue<int> qu1; //构造一个空的存放 int 型的队列 queue<int> qu2(qu1);...

2016-09-15 11:25:00 73

转载 STL容器 -- Stack

核心:后进后出, LIFO.头文件: #include <stack>常用的构造方法:stack<int> st1; //构造一个空的存放 int 型的栈 stack<int> st2(st1); ...

2016-09-15 11:19:00 111

转载 Codeforces 713A. Sonya and Queries

题目链接:http://codeforces.com/problemset/problem/713/A题意:Sonya 有一个可放置重复元素的集合multiset, 初始状态为空, 现给予三种类型的操作:  + ai : 把 ai 加入到集合 multiset 中, 可能出现重复元素.  - aj : 把aj 从集合 multiset 中删除, 保证集合中一定存在这...

2016-09-15 09:29:00 75

转载 Codeforces 714B. Filya and Homework

题目链接:http://codeforces.com/problemset/problem/714/B题意:  给你一个含有 n 个数的数组, 问你是否存在一个 x, 使得这个数组中的某些数加上 x, 某些数减去 x 后所有数都相等.思路:  如果这个数组里面不相等的数大于 3 个那么 x 就不可能存在. 否则如果这个数组里仅有三个数不一样且设为 a, b, c(a &l...

2016-09-15 08:58:00 88

转载 Codeforces 714A. Meeting of Old Friends

题目链接:http://codeforces.com/problemset/problem/714/A题意:  一个猫头鹰可以在时间段 l1 到 r1 处于清醒状态, 且需要在 k 时为自己化妆,在 l2 到 r2 时间段去访问自己的朋友, 问它能和自己的朋友在一起待多久时间.思路:  设呆在一起的时间为 anst, 则 anst = min(r1, r2) - max(...

2016-09-15 08:46:00 99

转载 Codeforces 708B. Recover the String

题目链接:http://codeforces.com/problemset/problem/708/B题意:  给你四个数 a00, a01, a10, a11, 让你构造一个“01”字符串满足其中恰好有 a00 个 “00” 子串, a01 个 “01” 子串,a10 个 “10” 子串, a11 个 “11” 子串.如果不存在这样的字符串输出 “Impossible”....

2016-09-14 17:24:00 89

转载 Codeforces 712C. Memory and De-Evolution

题目链接:http://codeforces.com/problemset/problem/712/C题意:  给你两个值 a 和 b (a > b), 代表这里有两个等边三角形, 边长分别为 a 和 b, 你可以对边长为 a 的三角形进行变换, 每次变化你可以选择一条边, 并为其重新指定一个长度, 当然变换完成后还能组成一个三角形.问最少经过多少次变换可以把等边三角形的三...

2016-09-11 12:07:00 100

转载 Codeforces 712B. Memory and Trident

题目链接:http://codeforces.com/problemset/problem/712/B题意:  一个人站在坐标原点处,他可以往上(U), 下(D), 左(L), 右(R), 四个方向移动,现给你一个移动序列,为了使他最后仍然能回到原点,你需要对这个序列做一些改变,每次可以改变其中一个字母,问最少的改变次数.思路:  如果这个序列的长度是奇数,那么肯定不可能...

2016-09-11 11:34:00 86

转载 Codeforces 712A. Memory and Crow

题目链接:http://codeforces.com/problemset/problem/712/A题意:  有两个序列 ai 和 bi, 长度都为 n, 对于序列 ai 满足 ai = bi - bi + 1 + bi + 2 - bi + 3 ...(i < n).现给你 ai, 让你求出 bi.思路:  ai = bi - bi + 1 + bi + 2 -...

2016-09-11 11:23:00 118

转载 Codeforces 295A. Greg and Array

题目链接:http://codeforces.com/problemset/problem/295/A题意:  给你一个含有 n 个数的数组, 以及 m 个形如 ( l, r, v) 的操作,代表把这个数组从第 l 个到第 r 个全部加 v; 然后再给 k 个形如 ( l, r) 的操作,代表对于这 m 个操作, 分别执行第 a 个操作到第 b 个操作各一次.思路: ...

2016-09-10 10:28:00 92

转载 背包问题之零一背包

注:参考文献《背包九讲》.零一背包问题一:题目描述  有 N 件物品和一个容量为 V 的背包.放入第 i 件物品耗用的费用为Ci(即所占用背包的体积),得到的价值是 Wi.求将哪些物品装入背包所得到的总价值最大.二:基本思路  01背包是最基础的背包问题,这道题的特点是每种物品仅有一件,可以选择放或不放,且不要求背包必须被放满,只要求最后的总价值最大.  用子问题...

2016-09-08 19:42:00 105

转载 Codeforces 189A. Cut Ribbon

题目链接:http://codeforces.com/problemset/problem/189/A题意:  给你一个长度为 N 的布条, 再给你三个长度 a, b , c.你可以用剪刀去剪这些布条, 但是每次剪完后, 布条的长度必须是 a 或者 b 或者 c, 问按照这个规则, 最多可以把这个布条剪成几段.思路:  上述问题可以换一种说法, 这里有无线个长度为 a, ...

2016-09-06 20:17:00 99

转载 Codeforces 180C. Letter

题目链接:http://codeforces.com/problemset/problem/180/C题意:  给你一个仅包含大写字母和小写字母的字符串,你可以将让小写字母转化为大写字母,大写字母转化为小写字母,求最好的操作步数使得最后的字符串左边全是大写字母,右边全是小写字母.思路:有点像是树状DP,把每个字母看成一个节点,后一个字母为前一个字母的父节点.给予每个节点两...

2016-09-06 19:23:00 166

转载 Codeforces 691D. Swaps in Permutation

题目链接:http://codeforces.com/problemset/problem/691/D题意:  给你一个含有 N 个不重复数的序列, 以及 M 对形如 (ai, bj) 的数, (ai ,bj) 代表着可以把第 ai 个数可以和第 bj 个数进行交换, 问如何交换才能使得变换后的字典序最大,每个变化可选可不选,也可选多次.思路:  可以想到, 如果 a 可...

2016-09-03 16:59:00 87

转载 Codeforces 691C. Exponential notation

题目链接:http://codeforces.com/problemset/problem/691/C题意:  给你一个浮点数,让你把这个数转化为 aEb 的形式,含义为 a * 10b, 其中 a 只能为一个不小于 1.0 且不大于等于10.0的小数, b 为一个不为0 的整数.具体样例参考原题的输入输出.思路:  直接模拟就好,感觉写的好复杂,分了许多情况,需要注意许多特...

2016-09-03 16:40:00 88

转载 Codeforces 691B. s-palindrome

题目链接:http://codeforces.com/problemset/problem/691/B题意:给你一个字符串,需要让你判断这个字符串是否为镜像串,即关于中心轴对称.思路:常量数组的运用,需要注意的是当字符串包含奇数个字符时最中间的那个字符不要忘记判断.代码: 1 #include <bits/stdc++.h> 2 3 us...

2016-09-03 16:27:00 82

转载 Codeforces 691A. Fashion in Berland

题目链接:http://codeforces.com/problemset/problem/691/A题意:  有一个夹克上有 n 个扣子,能扣紧这个夹克的要求是恰好有 n - 1 个扣子是扣着的,如果这个夹克恰有一个扣子,那么这个扣子应该是扣着的,用 “1” 代表扣着,用 “0” 代表开着,问这个夹克能否扣紧.(原题意比较难翻译!!!!)代码: 1 #include...

2016-09-03 16:23:00 86

转载 Codeforces 707C. Pythagorean Triples

题目链接:http://codeforces.com/problemset/problem/707/C题意:给你直角三角形其中一条边的长度,让你输出另外两条边的长度.思路:直接构造勾股数即可,构造勾股数的方法:  当 a 为大于 1 的奇数 2 * n+1 时, b = 2 * n * n + 2 * n, c = 2 * n * n + 2 * n + 1.  ...

2016-09-01 09:06:00 81

转载 Codeforces 707B. Bakery

题目链接:http://codeforces.com/problemset/problem/707/B题意:  给你一个含有 n 个点, m 条边的无向带权图,以及 k 个点, 这 n 个点代表着 n 个城市, 边和权值代表着两个城市之间的路以及距离, k 个点代表着 n 个城市中有 k 个城市有面包店, 某人站在没有面包店的某个城市, 问你他到具有面包店的城市的最短距离.思...

2016-09-01 08:51:00 108

转载 Codeforces 707A. Brain's Photos

题目链接:http://codeforces.com/problemset/problem/707/A题意:  给你一个 n * m 的照片, 让你判断这个照片是否是黑白的,其中如果一个照片仅由"W", "B", "G"组成, 那么就可以说它是黑白的.代码: 1 #include <bits/stdc++.h> 2 3 using namespa...

2016-09-01 08:34:00 85

转载 Codeforces 711B. Chris and Magic Square

题目链接:http://codeforces.com/problemset/problem/711/B题意:  给你一个n * n 的矩阵, 其中除了含有一个 ”0“ 以外, 都是正整数, 问你是否存在一个大于 0 的数, 使得这个数取代 ”0“ 的位置后, 这个矩阵每行, 每列, 主副对角线上的数加起来全部都相等.思路:把这个矩阵的每行每列还有主副对角线的数全部加起来存...

2016-08-30 08:58:00 85

转载 Codeforces 711A. Bus to Udayland

题目链接:http://codeforces.com/problemset/problem/711/A题意:  有一个公交车有 N 行座位,每行座位又分别有四个座位,其中”1“ 号和”2“号相邻, ”3“号和 ”4“号相邻,中间(”2“号和”3“号)由过道分开.车上 ”O“ 代表空座位, "X"代表有人, "|" 代表过道, 有两个人要乘车, 问是否有座位使得他们两相邻.代码...

2016-08-30 08:40:00 85

转载 SPFA解决单源最短路径

SPFA(Shortest Path Faster Algorithm):一:基本算法  在求解单源最短路径的时候,最经典的是 Dijkstra 算法,但是这个算法对于含有负权的图就无能为力了,而 Bellman - Ford 算法的复杂度又过于高,这时 SPFA就应运而生了. SPFA 在 Bellman - Ford 算法的基础上进行了改进,使其能够在计算带有负权的图的单源最...

2016-08-22 18:08:00 193

转载 Bellman - Ford 算法解决最短路径问题

Bellman - Ford 算法:一:基本算法  对于单源最短路径问题,上一篇文章中介绍了 Dijkstra 算法,但是由于 Dijkstra 算法局限于解决非负权的最短路径问题,对于带负权的图就力不从心了,而Bellman - Ford算法可以解决这种问题.  Bellman - Ford 算法可以处理路径权值为负数时的单源最短路径问题.设想可以从图中找到一个环路且这个环...

2016-08-20 20:52:00 282

转载 最短路径中的松弛技术

松弛(relaxation):指对于图 G = (V, E) 中 每个顶点v ∈ V,都设置一个属性dist[v],用来描述从源点s到v的最短路径上权值的上界.在开始进行一个最短路径算法时,只知道图中边和权值.随着算法的进行,逐渐得到各对顶点的最短路径的信息.算法会逐渐更新这些信息,每步都会检查是否可以找到一条路径比当前给定路径更短.这一过程通常称为松弛.下面这两张图即为对边<...

2016-08-20 10:11:00 904

转载 Dijkstra算法解决单源最短路径

单源最短路径问题:给定一个带权有向图 G = (V, E), 其中每条边的权是一个实数.另外,还给定 V 中的一个顶点,称为源.现在要计算从源到其他所有各顶点的最短路径长度.这里的长度是指路上各边权之和.这个问题通常称为单源最短路径问题.Dijkstra算法:一:基本算法将图 G 中所有的顶点 V 分成两个顶点集合 VA 和 VB.如果源点 S 到 u 的最短路径已经确定,则...

2016-08-19 17:03:00 507

转载 树形DP求树的最小支配集,最小点覆盖,最大独立集

一:最小支配集考虑最小支配集,每个点有两种状态,即属于支配集合或者不属于支配集合,其中不属于支配集合时此点还需要被覆盖,被覆盖也有两种状态,即被子节点覆盖或者被父节点覆盖.总结起来就是三种状态,现对这三种状态定义如下:1):dp[i][0],表示点 i 属于支配集合,并且以点 i 为根的子树都被覆盖了的情况下支配集中所包含最少点的个数.2):dp[i][1],表示点 i 不属...

2016-08-18 14:46:00 95

转载 贪心法求树的最小支配集,最小点覆盖,最大独立集

定义:最小支配集:对于图G = (V, E) 来说,最小支配集指的是从 V 中取尽量少的点组成一个集合, 使得 V 中剩余的点都与取出来的点有边相连.也就是说,设 V' 是图的一个支配集,则对于图中的任意一个顶点 u ,要么属于集合 V', 要么与 V' 中的顶点相邻. 在 V' 中除去任何元素后 V' 不再是支配集, 则支配集 V' 是极小支配集.称G 的所有支配集中顶点个数最少的...

2016-08-16 12:05:00 336

转载 树上两点的最近公共祖先问题(Least Common Ancestors)

概念:  对于有根树T的两个节点u,v,最近公共祖先LCA(T, u, v)表示一个节点 x, 满足 x 是 u , v 的祖先且 x 的深度尽可能的大.即从 u 到 v 的路径一定经过点 x.算法:  解决LCA问题比较经典的是Tarjan - LCA 离线算法,还有另外一种方法,是经过一系列处理将LCA问题转化为和数据结构有关的RMQ问题加以解决.这里只阐述下Tarjan...

2016-08-13 14:05:00 180

空空如也

空空如也

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

TA关注的人

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