自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hdu 4370(最短路)

题意:给了一个n*n的矩阵,我们需要构造另一个矩阵满足以下要求1.X 12+X 13+...X 1n=1 2.X 1n+X 2n+...X n-1n=1 3.for each i (1<i<n), satisfies ∑X ki (1<=k<=n)=∑X ij (1<=j<=n). For example, if n=4,we can get the follo...

2018-03-22 23:11:17 441

原创 poj 1502 (最短路)

题意:给n个点,边的关系呈一下下三角的形状给出,求第一个处理器到其他处理器最短的时间思路:裸的最短路,直接用Dijkstra即可#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <queue>using name...

2018-03-22 22:16:35 443

原创 POJ 2184 (01背包)

题意:给出了n头牛的智力值和幽默值,要求智力值和幽默值和的最大值;思路:这是一个01背包问题,要么选要么不选,但由于智力值和幽默值都存在负值,那么问题就是怎么处理负值。我们只需要把数组延长一倍即可。dp[i]代表智力为i时幽默值的最大值。dp[j] = max(dp[j],dp[j-a[i]]+b[i]);需要注意的是在处理负数的时候要从0开始循环;代码:#include <iostream...

2018-03-20 11:07:33 291

原创 POJ 1236 (Tarjan+缩点)

题意:对于一个DAG,至少要选多少个点才能从这个点到所有点,至少要添加多少条边才能从任意一点到所有点。思路:对于第一问,用Tarjan求出强联通分量,缩点后求出入度为0的点就是答案。对于第二问,在缩点后求出入度为0,初度为0的个数,取最大值就是所要添加边的条数。注意对强联通分量只有一个时的特判。#include <iostream>#include <cstring>#...

2018-03-15 22:23:50 206

原创 POJ 3180 (Tarjan)

题意:给n给点,m条边,求连通分量>=2的强联通分量数;思路:直接上模板即可scc_cnt为SCC的计数器,sccno[i]为i所在的SCC编号。#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>#include <vector&gt...

2018-03-15 21:20:17 268

原创 POJ 2186 (Kosaraju)

题意:每头牛都想成为牛群中的红人,现在又N头牛和M个有序对(A,B)。(A,B)表示牛A认为牛B是红人。该关系具有传递性,所以如果A认为B是红人,B认为C是红人,则A认为C是红人。求被其他所有牛认为是红人的牛的总数。思路:假设有两头牛A和B都被其他所有牛认为是红人。那么显然,A被B认为是红人,B也被A认为是红人,即存在一个包含A,B两个顶点的圈,或者说A,B属于同一个强联通分量。反之,如果一头牛被...

2018-03-15 19:46:22 229

原创 POJ 3074(DLX)

同样是数独的题,不同于poj 2676和2918,这题给的空白格很多,直接用dfs会超时,需要进一步的优化。自己剪了半天的枝还是超时,搜了题解,发现了一种新的算法Dancing Link X(DLX),关于这个算法,推荐一篇博客https://www.cnblogs.com/grenet/p/3145800.html,这篇博客里写的很清楚了。这样,我们就能把求解数独转换为精确覆盖问题。关键在于如何...

2018-03-15 15:41:05 296

原创 POJ 2676 (dfs)

题意:给一个9*9的数独,其中已经填了一些数了,需要填上剩下的空,如有多解随意输出一解即可。思路:由于这题初始给的数很多,所以直接dfs不用剪枝也可以过。数独需要每一行每一列,9个3*3的区域内不能有重复的数字。对于每一行每一列的判断很容易,关键在于子网格的判断。参考了大佬的思路,设子网格的编号为0-8,设一个小格(i,j)(0<i<9,0<j<9)的编号为k则3*(i/3...

2018-03-14 22:53:13 327

原创 HDU4099(Trie)

题意:输入一个数,这个数是斐波那契数列的前缀,求满足这个前缀的最小的下标。给出的数不超过40位,若满足这个前缀的最小下标超过100000则输出-1。思路:将斐波那契的前缀放到字典树中,由于两数相加有可能会进位,我们把斐波那契的前60位放到字典树中,这样就不会因为进位而产生误差。#include <iostream>#include <cstring>#include &...

2018-03-13 17:37:18 226

原创 hdu 1247 (Trie)

题意:给一些单词,问哪些单词能有另外两个单词组成思路:先去找一个单词的前缀,去除前缀后再去找单词的后缀#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;struct node{ int co...

2018-03-12 23:12:35 150

原创 hdu 1251

题目:Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). Input输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串. 注意:...

2018-03-12 21:51:21 147

原创 UVA11732 (Trie)

题意:给n个字符串,让他们两两比较,求比较的次数。如strcmp("than","that"),strcmp("there","the")各需要7次比较。思路:简单的模拟肯定不行,所以建立字典树。val数组代表经过该节点的单词书。添加一个isEnd数组来处理两个单词相同时的情况。#include <iostream>#include <cstring>#include

2018-03-12 19:39:58 160

空空如也

空空如也

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

TA关注的人

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