自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Noooooorth的专栏

Two steps from heaven.

  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 SCU 4531 Cruel War II(DFS)

题目链接:点击打开链接 题目大意:选出若干个点,每个点会覆盖连接该点的边,使用不大于10切最小的点覆盖整张图。 解题思路: 题目是一般图最小点覆盖问题,直接搞的话。。。我不会。但是这道题要求了如果点数大于10,就输出字符串。所以就可以进行暴力DFS,对于某条没有点覆盖的边,选中左边或选中右边,进行下一次DFS,成熟最多也只有10层,也就是2^10。所以直接暴力DFS枚举点。 #in

2016-07-26 01:27:45 554

原创 SCU 4529 An Easy Problem(强连通分量+缩点+最小路径覆盖+剪枝)

题目链接:点击打开链接 题目大意:有向有环图,求最小路径覆盖,点可以重复使用 解题思路: 题目有1000个点,直接闭包传递可能会超时,所以可以先把每个强连通分量缩点,然后再使用floyd进行闭包传递,最后再求最小路径覆盖。在闭包传递的时候要进行一个剪枝,不然会被卡常数。 #include #include #include #include #include #inclu

2016-07-26 01:20:25 588

原创 SCU 4526 最短路(dijkstra+枚举+BFS)

题目链接:点击打开链接 题目大意:给定n个点,m条有向边,求互不重叠的从起点到终点的最短路条数,点可以重复使用。 解题思路: 首先我们要找出所有的最短路使用的边。可以想到:对于一条边,如果从起点到它的一端的最短距离加上终点到它另一端的最短距离再加上边的长度等于起点到终点的最短距离,那么这条边必定是某一条最短路上的一条边。所以,使用两次dij求对于起点和终点的单源最短路,然后枚举边,就可以判断

2016-07-26 01:13:19 496

原创 SCU 4525 meixiuxiu学图论(kruskal)

题目链接:点击打开链接 题目大意:输出一个图的所有环上边权最大值的最小值。 解题思路: 可以利用树无环的性质,使用kruskal按照边权值从小到大逐条添加边,当第一次添加失败,也就是当向树上添加这条边后将会形成环,那么这个边就是形成的环上权值最大的边,同时也是权值最小的使形成环的边, #include #include #include #include #include

2016-07-26 00:59:34 458

原创 SCU 4524 Division(强连通分量+缩点+最小路径覆盖)

题目链接:点击打开链接 题目大意:n点m边分成若干组,若u,v可相互到达,则u,v必须一组,对于组内任意两点u,v,必须保证u可以到v或者v可以到u。 解题思路: 对于可相互到达的点对,必须分在同一组。那么可以相互到达的一个集合也必须放在同一组,也就是一个强连通分量必须放在同一组。缩点之后,就可以把一个强连通分量视为一个点,原图就可以转化成DAG模型。然后就是分组的问题了。 对于组内任意两

2016-07-26 00:50:30 666

原创 SCU 4522 寻找fly真迹(二分图染色)

题目链接:点击打开链接 题目大意:一个点可能为a、b、c三个值,字典序相邻的点之间必须有一条边,给出一些点组成的图,判定这个图是否合法。 解题思路:从反面考虑,没有连边的点对,一定是一个为a、一个为c,所以问题就转化成了二分图判定。但是要注意,染色之后,颜色相同的点之间必须有边,颜色不同的点之间不能有边。 #include #include #include #include

2016-07-26 00:36:54 636

原创 SGU 149 Computer Network(树形DP)

题目链接:点击打开链接 题目大意:给出从2~n号节点的父节点与其和父节点的距离,输出每个节点到树中节点的最大距离。 解题思路:第一遍DFS,用deep[i][0]记录节点i到其子节点的最大距离,deep[i][1]保存次大距离。 第二遍DFS,deep[i][0]的意义变成了节点i到树中节点的最大距离,deep[i][1]为次大距离。由于根节点1的deep[1][0]表示的就是距离树中节点的

2016-07-21 01:36:10 606

原创 Codeforces Round #363 (Div. 2) D. Fix a Tree(并查集)

题目链接:点击打开链接 题目大意:给出一个可能有环的图的父节点序列,要求修改最少的边使其变成一棵树,输出改变次数和改变后的父节点序列。 解题思路:定义一个root,表示变换后的树根。在输入的同时,如果一个点的父节点是其本身,那么把root更新为该点。然后向图中逐条加边,如果出现环 1.若此时root已经存在,那么直接把i连向root 一个栗子: 变换后 2.若此时root不

2016-07-21 01:01:42 413

原创 HDU 5726 GCD(RMQ+二分)

题目链接:点击打开链接 题目大意:n个数,q次查询,每次查询输入l和r,输出区间GCD等于区间[l,r]的GCD的区间数。 解题思路:n的范围为1e5,可以先用ST预处理出所有区间的GCD,时间复杂度为O(nlogn)处理过之后,对于任意区间都可以实现O(1)的查询了。 然后就是计数的问题了,我们先定义一个map,map[key]表示GCD为key的区间个数。对于任意左端点固定的区间,随着右

2016-07-21 00:34:49 393

原创 HDU 5724 Chess(状态压缩+组合博弈)

题目链接:点击打开链接 题目大意:一共n行20列,每行若干个棋子,对每个棋子,可以移动到右边距离最近的空格。两个人轮流移动,不能移动者输,问先手是否可以胜利 解题思路:每行20格,我们可以把状态压缩到一个int变量state里,对于每一个状态,求出下一个状态做上标记,SG[state]就是mex,也就是vis数组中第一个为false的下标。然后再把n行的SG函数进行异或,为0则必败,否则必胜。

2016-07-21 00:12:59 478

原创 HDU 5723 Abandoned country(DFS+kruskal)

题目链接:点击打开链接 题目大意:给出n个点和m条边,每条边的权值都不相同,求使得n个点连通最少需要的边的权值,以及随机选2个点作为起点和终点的路径长度的期望(题面说是最小权值和最小期望,但是m条边权值各不相同,所以每个权值对应一个期望,求出最小生成树的时候,期望也一定是最小的) n的规模是1e5,所以求最小生成树使用的是O(nlogn)的kruskal。问题是怎么求期望。 首先,每两个点被

2016-07-20 02:07:02 434

原创 HDU 4686 Arc of Dream(矩阵快速幂)

题目链接:点击打开链接 计算如下 其中 a0 = A0 ai = ai-1*AX+AY b0 = B0 bi = bi-1*BX+BY 构造出原始矩阵A为 矩阵B为 这时矩阵A左乘矩阵B就可以得到下一个状态的矩阵表示 还要注意输入为0的时候要特判,输出0。 #include #include #include #inc

2016-07-19 00:24:15 316

原创 HDU 2448 Mining Station on the Sea(floyd+KM)

题目链接:点击打开链接 题目大意:在m个采矿站中有n只船,这n只船要回到n个港口,每个港口只能停留有一只船。给出距离,求这n只船全部回到港口要走的总路程的最小值。 先用floyd求出m个采矿站到n个港口的最短路程。题目中有这么一句话:“Notice that once the ship entered the port, it will not come out!”使用floyd的时候要注意港

2016-07-19 00:09:33 354

原创 Codeforces Round #341 (Div. 2) E. Wet Shark and Blocks(DP+矩阵快速幂)

题目链接:Problem - 621E - Codeforces 一共b位数字,给出1~9出现的次数,从1~9中选,求模x等于b的数字的个数 DP[i][j]表示i位数字,模x等于j的数字个数,状态转移方程是dp[k][(i*10+j)%x] += dp[k-1][i]*cnt[j]。 观察可以发现dp[k][]的状态只与dp[k-1][]有关,所以直接递推就可以得到正确答案。但是这道题目的

2016-07-15 00:20:56 421

原创 POJ 1077 Eight & HDU 1043 Eight(康托展开+BFS)

题目链接:1077 -- Eight Problem - 1043 两个题目几乎完全一致。不同的是,HDU的八数码这道题需要一次bfs,起点为123456789X,遍历完所有状态,同时用pre数组记录上一个状态,然后每次输入只需要一个while进行O(1)的查询。 方法没有什么特殊的,我用的是普通的bfs。这道题和其他的搜索题目不一样的一点是,9个格子,太大没有办法标记。这时可以利用康托展开。

2016-07-13 01:04:35 358

原创 POJ 2226 Muddy Fields(二分图匹配)

题目链接:2226 -- Muddy Fields 这道题与POJ 3041非常相似,POJ 3041的意思是找到最少的板子将“X”点全部盖上,这道题与3041唯一的不同就是3041可以盖空的点,而这道题不能。 比如下面一组样例 1 2 *.* 正确的输出应该是2,而按照3041的做法得到的答案是1. 所以这道题正确的做法是将同一行、同一列的点分散到不同的行和列上。 比如样例

2016-07-12 00:12:01 563

McAfee官方卸载工具 MCPR

McAfee官方卸载工具,双击直接运行即可完全卸载McAfee

2016-06-16

空空如也

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

TA关注的人

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