E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Roads
UVALive 2197 Paint the
Roads
(费用流)
n个点m条边的带权有向图,现在要将某些边涂上颜色,使得每个点恰好在k个有颜色的环上。每个点都在k各环中,说明每个点的入度=出度=k。用费用流搞,增加源汇点s,t,将每个点拆成两个点,u跟u+n,一个代表出度,一个代表入度。从s向每个u连的边,从每个u+n向t连的边,分别代表入度跟出度的上限。然后对于原图中的有向边,从u向v+n连一条的边。这样求s->t的最小费用最大流。如果能漫流,答案就是最小费用
diary_yang
·
2013-11-14 11:00
(kruscal12.1.1)POJ 2421 Constructing
Roads
(使用kruscal算法来生成最小生成树&&计算最小带权路径和)
/* *POJ_2421.cpp * *Createdon:2013年11月8日 *Author:Administrator */ #include #include #include #include usingnamespacestd; structedge{ intbegin; intend; intweight; }; constintmaxn=110; intfather[m
caihongshijie6
·
2013-11-08 11:00
SDUT 2493 Constructing
Roads
最短路
题目链接:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2493题意:给定一个无向图,N个点,M条边,有一个天使可以让其中的一条边的权值减半。求最短路。解题思路:用两次最短路算法,dis1和dis2存储的分别为s和e到其他点的权值未减半前的最短路。然后枚举每条边就可以了。Min_Cost=Min(Min
u012161037
·
2013-11-08 10:00
10308 -
Roads
in the North (树形dp)
ProblemIRoadsintheNorthInput: standardinputOutput: standardoutputTimeLimit: 2secondsMemoryLimit: 32MB BuildingandmaintainingroadsamongcommunitiesinthefarNorthisanexpensivebusiness.Withthisinmind,thero
u011217342
·
2013-11-06 17:00
uva 10308 -
Roads
in the North(dfs)
题目链接:uva10308-RoadsintheNorth题目大意:给出一个无环无向图,求任意两点间的最大距离。输入空行问该组测试输入结束。解题思路:输入比较恶心,因为这个WA了一次,这题可以用dfs去做,任意选一个节点作为根节点,然后遍历与它相连的所有点,维护最大值就可以了,因为任意两点可以看成是以父亲节点而相连的。#include #include #include #definemax(a,
u011328934
·
2013-11-04 20:00
poj 2421 Constructing
Roads
(kruskal) runtime error
链接:http://poj.org/problem?id=2421 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define maxn 210 #define maxm (210*210) using names
ren_hui
·
2013-10-30 21:00
图论
kruskal
一些简单优化
POJ - 2631
Roads
in the North
题意:求树上最远的距离,两次的DFS就行了,保存的是邻接边的信息,还要判断不存在环,不然会RE#include #include #include #include usingnamespacestd; constintMAXN=10110; structnode{ intto; intlen; intnext; }eg[2*MAXN]; inthead[MAXN]; intidx,nd,Max
u011345136
·
2013-10-19 01:00
UVA - 10308
Roads
in the North
题意:在一棵二叉树里找最远的两个点的距离,题目的输入和树的构建的看了好久,保存邻接边的信息,每次将一个节点加进树里,因为每次输入都要有输出,即:每次都要更新最大值,所以DFS一次就可以了,判断是否存在环,不然会RE#include #include #include usingnamespacestd; constintMAXN=10100; longlongans=0; intp[MAXN],
u011345136
·
2013-10-18 21:00
贪心-poj-2437-Muddy
roads
题目链接:http://poj.org/problem?id=2437题目意思:给n个区间,每次可以用长度为L的棒A去覆盖,求将所有区间覆盖至少需要几次。给的区间不覆盖。解题思路:简单贪心。先将区间按从大到小排序,然后依次放棒A,如果A在该区间有多的,且覆盖到了后面一个区间,则下一个区间可以该棒后面一位置开始覆盖。代码:#include #include #include #include #in
cc_again
·
2013-10-12 20:00
贪心
hdu 3721 Building
Roads
树的直径
题意,移动一条边,使得树的直径最小。首先枚举拆掉的边, 拆掉边后,原图变成2颗树,然后重新连接两颗子树的某两个结点,那么,此时答案(新树的直径)只有可能有3种情况。1、直径完全在1子树中。2、直径完全在2子树中。3、直径经过了重新建立的那条边,也就是贯穿了2颗子树。用这3种的最大值更新ans。求树的直径的方法可以通过dfs或者bfs,O(n)时间求出。现在的问题在于,如何求第3种。假设1子树存在
t1019256391
·
2013-10-12 20:00
树形dp-hdu-3721-Building
Roads
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3721题目意思:给一颗树,求移动一条边(边权值不变)到另外的位置,还是一棵树。求最小的树的直径。解题思路:充分利用树的直径的性质。任何点的最远距离一定是树直径上的一个端点。枚举每条边,分成两颗子树后,求出两颗子树的直径d1,d2,以及两颗树的任意点A的最大距离的最小值p1,p2.显然由树的直径的性质,知
cc_again
·
2013-10-10 22:00
动态规划
poj 1947 Rebuilding
Roads
(树形DP)
RebuildingRoadsTimeLimit: 1000MS MemoryLimit: 30000KTotalSubmissions: 8227 Accepted: 3672DescriptionThecowshavereconstructedFarmerJohn'sfarm,withitsNbarns(1 #include #include usingnamespacestd; consti
y5885922
·
2013-10-06 17:00
c
算法
ACM
POJ:2421 Constructing
Roads
与这个题基本一样。http://blog.csdn.net/kkkwjx/article/details/12316701 最小生成树的题要搞清楚点的个数,边的个数,不要混了。 #include #include #include #include #include #defineMAXN10005 usingnamespacestd; structEdge { inta,b,weight; };
kkkwjx
·
2013-10-06 13:00
最小生成树
POJ:1251 Jungle
Roads
题意:给你一些村庄和到相连村庄的距离,让你求最小连通所有村庄的路径长度。思路:最小生成树。我在这里用map建立了一个村庄名到连续数字的映射,由于映射对应关系,这样就需要连续数字从1开始。#include #include #include #include #include #include #defineMAXN1000 usingnamespacestd; structEdge { inta,
kkkwjx
·
2013-10-05 22:00
最小生成树
POJ 1251 Jungle
Roads
(最小生成树水题) - from lanshui_Yang
最小生成树模板题,不再敖述。 代码如下:#include #include #include #include #include #include #include #include #include #definemem(a,b)memset(a,b,sizeof(a)) usingnamespacestd; constintMAXN=1000; intn; structEdge
lanshui_Yang
·
2013-09-27 21:00
最小生成树水题
HDU-1102 Constructing
Roads
这题很水,但一直没看见题目说输入多组数据,添上一下子就过了。 ConstructingRoadsTimeLimit:2000/1000MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):11452 AcceptedSubmission(s):4295ProblemD
·
2013-09-11 21:00
struct
uva11631 - Dark
roads
#include #include #include usingnamespacestd; constintN=200010; intid[N],u[N],v[N],w[N]; intm,n; intp[N]; intcmp(constvoid*a,constvoid*b); intfind(intx); intUnion(inte); intmain()
wuli2496
·
2013-09-08 20:00
ZOJ-2342
Roads
二分图最小权值覆盖
题意:给定N个点,M条边,M >= N-1。已知M条边都有一个权值,已知前N-1边能构成一颗N个节点生成树,现问通过修改这些边的权值使得最小生成树为前N条边的最小改动总和为多少? 分析:由于计算的最小改动且为最小生成树则显然前N-1条边肯定权值都减少,后面的边权值都增加。由于选择的边为前N-1得到最小生成树,因此首先将N-1条边构图,然后对后面的每一条边,那么这条边所构成的环中,有任意一条
·
2013-09-07 21:00
二分图
Bertown
roads
题意:有N个点,M条无向边,决定每条边的方向,使得图中任何一个点都能到达其他点。起先想着如何去决定每条边的方向,无果,最后发现其实只要dfs一次就可以,挺有意思的一道题。#include #include #include #include #include #include #include #include #include usingnamespacestd; typedeflonglon
shiqi_614
·
2013-09-04 10:00
POJ 1724
ROADS
(bfs最短路)
n个点m条边的有向图,每条边有距离跟花费两个参数,求1->n花费在K以内的最短路。直接优先队列bfs暴力搞就行了,100*10000个状态而已。节点扩充的时候,dp[i][j]表示到达第i点花费为j时的最短路。没加优化16ms过,不知道discuss里面说bfs超时是怎么回事。。。。#include #include #include #include #include #include #inc
diary_yang
·
2013-09-03 19:00
poj 1947 Rebuilding
Roads
(树形背包dp)
本文出自 http://blog.csdn.net/shuangde800题目链接: poj-1947题意 给一棵树,问最少删掉几条边.使得剩下的子树中有节点个数为p个的思路 几天前就看了这题, 但是没什么想法,之后每天都有去想一下,直到今天,在我对自己方法还有怀疑 的情况下,竟然AC了.. f(i,j)表示子树i,保留j个节点的最少删边次数,注意,这里保留的j个节点的子树,是指根节点
shuangde800
·
2013-08-22 00:00
poj
树形DP
poj 1947 Rebuilding
Roads
(树形背包dp)
本文出自 http://blog.csdn.net/shuangde800 题目链接: poj-1947 题意 给一棵树,问最少删掉几条边.使得剩下的子树中有节点个数为p个的 思路 几天前就看了这题,但是没什么想法,之后每天都有去想一下, 直到今天, 在我对自己方法还有怀疑 的情况下,竟然AC了.. f(i, j) 表示子树i,保留j个节点
king_tt
·
2013-08-22 00:00
Build
[CF 191C]Fools and
Roads
[LCA Tarjan算法][LCA 与 RMQ问题的转化][LCA ST算法]
参考:1.郭华阳-算法合集之《RMQ与LCA问题》.讲得很清楚!2.http://www.cnblogs.com/lazycal/archive/2012/08/11/2633486.html3.代码来源yejinru题意:有一棵树,按照顺序给出每条边,再给出若干对点,这两点之间的唯一的路(Simplepath)上边权加1.当所有对点处理完后,按照边的输入顺序输出每条边的权.思路:LCA问题.最近
zhangliang011258
·
2013-08-18 16:00
POJ 2749 - Building
roads
构图2-sat..注意!POJ爆WA也有可能是数组越界!
题意: 有N个牛棚...相互中间没有路..现在准备在两处建立中转站..每个牛棚向其中一个中转站建立路径...有些牛是相互敌对的..不能连在同一个中转站上..有些牛是相互友好的..是必须要在同一个中转站的...请找出一种建路方案..使得牛棚间的距离最大的最短...注意..牛棚只能通过中转站走..两个中转站间有路径...路径长度为各点的哈夫曼距离.. 题解
kk303
·
2013-08-14 17:00
POJ 1251 Jungle
Roads
JungleRoadsTimeLimit: 1000MS MemoryLimit: 10000KTotalSubmissions: 17586 Accepted: 7937DescriptionTheHeadElderofthetropicalislandofLagrishanhasaproblem.Aburstofforeignaidmoneywasspentonextraroadsbetwee
SIOFive
·
2013-08-14 13:00
最小生成树
Constructing
Roads
这题叙述的有点小问题,两个村庄无论经过几个其他的村庄只要相连即可。所有已这是最小生成树问题,已建成的距离设为0;ThereareNvillages,whicharenumberedfrom1toN,andyoushouldbuildsomeroadssuchthateverytwovillagescanconnecttoeachother.WesaytwovillageAandBareconnec
透骨寒冰
·
2013-08-14 10:27
并查集
hdu 1301 Jungle
Roads
(最小生成树)
********************************************************************/ /* hdu Jungle
Roads
·
2013-08-11 15:00
最小生成树
hdu Constructing
Roads
(最小生成树)
**************************************************************/ /* hdu Constructing
Roads
·
2013-08-09 13:00
struct
zoj 1406 jungle
roads
题意就是要求最小生成树,用的kruskal#include #include intp[30],n,x1; structedge { intu,v,w; }ed[100]; intget(intx) { if(p[x]==x) returnx; else returnp[x]=get(p[x]); } voiduni(intx,inty) { intp1,p2; p1=get(x); p2=
KIDGIN7439
·
2013-08-09 10:00
POJ1947:Rebuilding
Roads
(树形DP)
DescriptionThecowshavereconstructedFarmerJohn'sfarm,withitsNbarns(1 #include #include usingnamespacestd; intn,p,root; intdp[155][155]; intfather[155],son[155],brother[155]; voiddfs(introot)
libin56842
·
2013-08-08 12:00
poj
树形DP
HDU 1102/POJ 2421 Constructing
Roads
(MST&Prim优化)
ConstructingRoadshttp://acm.hdu.edu.cn/showproblem.php?pid=1102http://poj.org/problem?id=2421DescriptionThereareNvillages,whicharenumberedfrom1toN,andyoushouldbuildsomeroadssuchthateverytwovillagescan
synapse7
·
2013-08-06 15:00
ACM
Prim
MST
HDU 1025 Constructing
Roads
In JGShining's Kingdom
思路: 仔细考虑就是求最长公共子序列问题 最长公共子序列的算法: (1)通过dp求,好理解O(n*n);(此题不能用DP会超时) (2)通过二分法求O(n*lgn); 过程如下:假设存在一个序列d[1..9]=215364897,可以看出来它的LIS长度为5。下面一步一步试着找出它。我们定义一个序列B,然后令i=1to9逐个考察
Job_yi
·
2013-07-31 09:00
HDU1025:Constructing
Roads
In JGShining's Kingdom(LIS)
ProblemDescriptionJGShining'skingdomconsistsof2n(nisnomorethan500,000)smallcitieswhicharelocatedintwoparallellines.Halfofthesecitiesarerichinresource(wecallthemrichcities)whiletheothersareshortofresou
libin56842
·
2013-07-30 17:00
HDU
二分
LIS
HDU1025 Constructing
Roads
In JGShining's Kingdom
ConstructingRoadsInJGShining'sKingdomTimeLimit:2000/1000MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):11914 AcceptedSubmission(s):3393Proble
lsh670660992
·
2013-07-28 20:00
模拟
数组
动态规划
栈
POJ-1251-Jungle
Roads
比较简单的最小生成树题~代码:#include #include #include usingnamespacestd; constintmaxn=27; intn,map[maxn][maxn],dist[maxn]; intPrim() { intans=0; for(inti=0;i
z309241990
·
2013-07-27 22:00
最小生成树
hdu1301 Jungle
Roads
JungleRoadsTimeLimit:2000/1000MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):3546 AcceptedSubmission(s):2551ProblemDescriptionTheHeadElderofthetropicalislandofLagrishanh
guodongxiaren
·
2013-07-26 16:00
kruskal
MST
hdu1301
Constructing
Roads
*
ConstructingRoadsTimeLimit:2000/1000MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):10700 AcceptedSubmission(s):3989ProblemDescriptionThereareNvillages,whicharenumberedfr
guodongxiaren
·
2013-07-25 21:00
Prim
MST
hdu1102
CDOJ 1635 Building
Roads
Problem:http://www.acm.uestc.edu.cn/problem.php?pid=1635最大最小生成树,但由于本题中的边权值比较特别,有十分简单地做法。最小树:按人口排序,然后依次连通相邻的城市即可最大数:先把人口最少的城市A和最多的B连起来,然后对于其他城市,看人口与与AB中的那个相差更大就连哪个#include #include usingnamespacestd;
zu_xu
·
2013-07-25 18:00
规律
HDU 3721 Building
Roads
(2010 Asia Tianjin Regional Contest) - from lanshui_Yang
感慨一下,区域赛的题目果然很费脑啊!!不过确实是一道不可多得的好题目!! 题目大意:给你一棵有n个节点的树,让你移动树中一条边的位置,即将这条边连接到任意两个顶点(边的大小不变),要求使得到的新树的直径最小。 解题思路:此题先求出原始树的直径maxr1,并记录直径上的各个节点。很容易想到要移动的边一定是直径上的边,只有这样才有可能使树的直径减小!!接着就是枚举直径上的每条边,并
lanshui_Yang
·
2013-07-24 21:00
枚举
+
树的直径
+找树的中点
poj 3411 Paid
Roads
简单的dfs
每个点有2种到法,一种是直接过去,一种是事先经过了c点,然后再去b点就可以交少一点钱。所以说,不能简单的标记一个点去了没去,而应该标记为去了几次,如果一个点重复去了n次,那就肯定是没必要的。#include #include #include #include #include #include usingnamespacestd; structnode { inta,b,c,p,r; }road
t1019256391
·
2013-07-22 22:00
POJ 1947 Rebuilding
Roads
RebuildingRoadsTimeLimit:1000MS MemoryLimit:30000KTotalSubmissions:7940 Accepted:3534DescriptionThecowshavereconstructedFarmerJohn'sfarm,withitsNbarns(1 #include #include usingnamespacestd; #defineM
Magic____
·
2013-07-21 13:00
POJ 1947 - Rebuilding
Roads
树型DP(泛化背包转移)..
dp[x][y]表示以x为根的子树要变成有y个点..最少需要减去的边树...最终ans=max(dp[i][P]+t) 更新的时候分为两种情况..一种是要从其这个孩子转移过来...枚举做01背包..更新出每个状态的最小值..或者说直接砍掉这个孩子..那么只需将所有的状态多加个砍边... 这里的枚举做01背包..意思是由于叶子节点要放多少进去不确定..叶子节点要放的大小以及本节
kk303
·
2013-07-20 11:00
poj 1947 Rebuilding
Roads
树形dp
给一颗标准的树(规定好了子父节点),让你剪掉任意条边,得到一颗独立的子树,使得这颗子树的结点数等于p,求最少剪掉几条边。一开始的想法是先求出每个点的孩子结点数,然后枚举剪掉的边,求最小值,然后发现变成了一个排列组合的问题,复杂度是指数级。。。然后看了网上的思路%&*$*……/*dp[i][j]表示以i为结点生成j个结点的子树需要减掉的最少次数*/ /*dp[i][j]=min(dp[i.son][
t1019256391
·
2013-07-19 05:00
POJ 1947 Rebuilding
Roads
树形DP
题意:给你一颗树,问最少要去掉多少边才能得到一颗节点数为p的树把节点1当做根节点,对于每一个节点,dp[u][i]表示节点u保留i个点最少去边数,我是把子树一颗颗地加进去,所以初始的dp[u][1]=0,以前我也做过,不过是令dp[u][1]=节点儿子数+1,根节点的话=儿子数,因为根节点不需要去父亲的边了,这应该是通常的做法吧。#include #include #defineINF111111
u010710717
·
2013-07-18 22:00
树形DP
hdu1301 Jungle
Roads
(prim)
#include #defineINF0x7ffffff #defineMAX50 //最小生成树,prim算法 intmap[MAX][MAX]; intvisit[MAX],dist[MAX]; intprim(intn) { inti,j,min,u,sum=0; for(i=1;imap[u][j]) dist[j]=map[u][j]; } returnsum; } intmain(
lezong2011
·
2013-07-13 13:00
hdu1102 Constructing
Roads
#include #include //最小生成树,或并查集 #defineMAX0x7ffffff #defineLEN105 intdist[LEN]; intmap[LEN][LEN]; intisvisited[LEN]; //prim算法 intprim(intn){ inti,j,min,pos; intsum=0; memset(isvisited,0,sizeof(isvisit
lezong2011
·
2013-07-08 21:00
poj 1742
roads
/* C:
ROADS
查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 Ncitiesnamedwithnumbers1...Nareconnectedwithone-wayroads.Eachroadhastwoparametersassociatedwithit
locusxt
·
2013-06-07 23:00
poj
cpp
Ilya and
Roads
(区间类动态规划)
题目大意 一条直线上有n(1≤n≤300)个点可以用来修洞,有m(1≤m≤105)个建筑公司,每个建筑公司i(1≤i≤m)需要ci(1≤ci≤109)的价钱修理包含于区间[Li,Ri](1≤Li≤Ri≤n)中的一段连续的洞。问至少修建k(1≤k≤n)个洞需要花费的最小价钱 做法分析 初一看像是求最大流,但是仔细一想,如果是网络流的话,建好的网络太大,绝对TLE,而且貌似这还不好建图果断放弃,想想
jianzhang.zj
·
2013-06-05 13:00
HDU 1102 Constructing
Roads
(最小生成树 之 Prim 或 Kruskal)
Constructing
Roads
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536
hefeijack
·
2013-06-03 22:00
c
HDU 1301-Jungle
Roads
prime算法的典型应用
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1301参考代码:#include #include #include usingnamespacestd; #defineINF0x7ffffff #defineMAXN105 intmap[MAXN][MAXN],lowcost[MAXN]; boolvisit[MAXN]; intn,sum; i
xianglunxi
·
2013-06-03 20:00
最小生成树
模板
Prime算法
上一页
17
18
19
20
21
22
23
24
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他