上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 30 下一页
摘要: 118EBertownroads题目:把无向图指定边的方向,使得原图变成有向图,问能否任意两点之间互达分析:显然如果没有桥的话,存在满足题意的方案。输出答案时任意从一个点出发遍历一遍即可。求桥的话,利用tarjan算法的low和dfn值判断一下即可。#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;typedef unsigned long long 阅读全文
posted @ 2013-09-09 15:55 yejinru 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 样例说明:n(城市数目) m(工程队数目)每个工程队上交的税收 val[i]k(k个工程)xi yi ci costi , 工程队ci承包由xi到yi,政府的补贴为costi注意:如果聘用了工程队c,则所有与工程队c的项目政府都得补贴,并且所有与c相关的工程队也得参与建设(政府补贴)。这里的有关系是指:工程队c,d承包的项目 xc yc , xd yd中yc==xd。感觉题意好难理解。理解之后就好办了,这不就是裸的最大权闭合子图吗?不懂请看Amber的《论文最小割模型在信息学竞赛中的应用》。政府最大获利 = 实际上总的税收-实际上政府的补贴 = 雇佣的公司的税收-雇佣的公司的补贴 = 总税.. 阅读全文
posted @ 2013-09-09 15:43 yejinru 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 发现今天没怎么做题,于是随便写了今天杭电热身赛的一题。题目:给出一棵树,删边和添边的费用都是1,问如何删掉一些树边添加一些树边,使得树变成一个环。分析:统计树的分支数。大概有两种做法:1.直接dfs,由底向上统计,对于叶子节点,返回1。对于父节点,统计子节点的返回值的和(sum),如果大于1,说明存在两个子链或以上,所以这里需要sum-1个分支,返回0。如果小于等于1,返回1。画个图就知道了。。。图中发现:节点返回值和为sum>1时,需要sum-1个分支。某节点返回值和sum=3,则需要2个分支;一个返回值和为sum=2,则需要1个;如果返回值为1,说明可以跟上面某个父节点组成一条链。加 阅读全文
posted @ 2013-09-08 22:52 yejinru 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 题目:给出n*kk的矩阵,格子a[i][k]表示第i个客户需要第k种货物a[i][k]单位。给出m*kk的矩阵,格子b[j][k]表示第j个供应商可以提供第k种货物b[j][k]单位。再给出k个n*m的矩阵,格子c[k][i][j]表示第k种货物由j供应商提供给客户i的话,每单位运费为c[k][i][j]。问最小费用。分析: 刚开始时,虽然考虑到每种货物其实是不相关的,但是想到在跑费用流时应该没多大影响,所以直接建图,跑最小费用流,TLE了。。。 后来对于每种货物单独来考虑,即建图之后跑一次最小费用流,进行k次求费用流之后,判断总流是否等于需求的货物数量。这样建图,节点数明显减少了很多,实.. 阅读全文
posted @ 2013-09-05 20:27 yejinru 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 题目:给出一个图,问最少删除多少个点,使得从点1到点n经过的点数超过k个。分析: 上网搜了一下,发现很多人用网络流做的,发现我不会。再后来看到这篇说网络流的做法是错的,囧。 后来发现点数有点少,直接上爆搜。每次搜索前先跑一遍最短路,判断是否满足,如果满足更新答案,退出。 否则,在求最短路时记录一下路径,然后枚举删除最短路上的点,继续搜。 第一次写时,记录路径用的是全局变量,每次搜下一层的时候就会变,发现居然也A了。。。 我试了一下,发现n不会等于1。。。#include #include #include #include #include #include #include #in... 阅读全文
posted @ 2013-09-05 16:16 yejinru 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 题目:给出n*n的方格矩阵,现在从左上方走m次到右下方,问m次能够获得的最大价值和。分析:最大费用流。拆点进行限制每个格子只取一次,假设点x拆成 x,xx,右边(假设有)y,yy,下方(假设有)z,zz 点 点 流量 费用 则:x , xx , 1 , -a[i][j] x , xx , m , 0 xx, y , m , 0 xx , z , m , 0 用最小费用流增广m次即可#include #include #include #include #include #include #include #include #include #include #in... 阅读全文
posted @ 2013-09-05 14:43 yejinru 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 今天再做一天树的题目,明天要开始专攻图论了。做图论十几天之后再把字符串搞搞,区域赛前再把计几看看。3083: 遥远的国度Time Limit:10 SecMemory Limit:128 MBSubmit:400Solved:89[Submit][Status]Description描述zcwwzdjn在追杀十分sb的zhx,而zhx逃入了一个遥远的国度。当zcwwzdjn准备进入遥远的国度继续追杀时,守护神RapiD阻拦了zcwwzdjn的去路,他需要zcwwzdjn完成任务后才能进入遥远的国度继续追杀。问题是这样的:遥远的国度有n个城市,这些城市之间由一些路连接且这些城市构成了一颗树。这个 阅读全文
posted @ 2013-09-04 11:39 yejinru 阅读(904) 评论(1) 推荐(0) 编辑
摘要: 支持:1.添加边 x,y2.删边 x,y3.对于路径x,y上的所有节点的值加上w4.询问路径x,y上的所有节点的最大权值分析:裸的lct...rev忘了清零死循环了两小时。。。1:就是link操作2:就是cut操作3:维护多一个mx域,mx[x]表示在splay中以节点x为根的子树的最大点权,每次修改时,把x置为splay的根,打通y到x的路径,把y splay到根,那么,直接对y节点的lazy标记加上为w即可。4:同3操作,把x置为splay的根,打通y到x的路径,把y splay到根,那么,y子树所对应的节点就是路径x到y的所有节点。另外,题目貌似描述有点问题,不光是询问非法输出-1,是指 阅读全文
posted @ 2013-09-03 23:58 yejinru 阅读(276) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2013-09-03 18:37 yejinru 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 题目:p条路,连接n个节点,现在需要从节点1到节点n,不重复走过一条路且走t次,最小化这t次中连接两个节点最长的那条路的值。分析:二分答案,对于#include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;typedef unsigned long long ull;#define debug puts("here")#define rep(i,n) for( 阅读全文
posted @ 2013-09-02 15:51 yejinru 阅读(181) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 30 下一页