题意: rt 解析: 我用的第二种方法... s向所有的边连权值为1的边 所有的点向t连权值为mid的边 如果存在u -  > v  则边向u和v分别连一条权值为INF的边 二分mid 用dfs从s 顺着边走标记点 然后输出1 - n种被标记的点即可 #include <iostream> #include <cstdio> #include <sstream> #include <cstring> #include <map> #incl…
裸题.输入一个无向图,输出最大密度子图(输出子图结点数和升序编号). 看了<最小割模型在信息学竞赛中的应用——胡伯涛>的一部分,感觉01分数规划问题又是个大坑.暂时还看不懂. 参考http://blog.csdn.net/power721/article/details/6781518 构图: 把原图中的无向边转换成两条有向边,容量为1. 设一源点,连接所有点,容量为U(取m). 设一汇点,所有点连接汇点,容量为 U+2g-dv . 二分枚举最大密度g,其中dv为v的度. 判断(U*n-Max…
晕,m=0是要输出1(弄的我还找管理员要数据,但明显题意是叫我们输出0呀) 最大密度子图,把边转换成点,然后二分答案,跑最大权闭合子图判定是否可行. #include <cstdio> #include <cstring> #include <vector> #include <algorithm> #define N 1110 #define oo 0x3f3f3f3f using namespace std; struct Edge { int u, v…
思路: 这个还是看的胡伯涛的论文<最小割在信息学竞赛中的应用>.是将最大密度子图问题转化为了01分数规划和最小割问题. 直接上代码: #include <iostream> #include <stdio.h> #include <string.h> #include <algorithm> #include <vector> #define Maxn 6010 #define Maxm 200000 #define LL doubl…
  题意:最大密度子图 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; ,M=,INF=1e9; ; inline int read(){ ,f=; ; c=getchar();} +c-'; c=getchar();} return x*f; } int n,m,u[N],…
求最大密度子图 记得在最后一次寻找的时候记得将进入的边放大那么一点点,这样有利于当每条边都满流的情况下会选择点 #include <iostream> #include <algorithm> #include <string.h> #include <cstdio> #include <vector> #include <queue> #include <cmath> using namespace std; ; con…
http://poj.org/problem?id=3155 最大密度子图和最大权闭合图性质很相近(大概可以这么说吧),一个是取最多的边一个是取最多有正贡献的点,而且都是有选一种必须选另一种的限制,一个是选边必须选其两边的点,一个是选正权点必须选其相邻的负权点. 那么就可以把最大密度子图用最大权闭合图相近的方式写,二分+网络流就可以了,网络流建图方法可以参考我上一篇博客. https://blog.csdn.net/power721/article/details/6781518 也就是该博客的…
点边都带权的最大密度子图,且会有必须选的点. 求\(\frac{\sum w_e}{k*(2n-k)}\)的最大值,其中k为子图点数 设\[h(g) = \sum w_e - g*(2nk-k^2)\] 假设最优解为\(g*\),则当\(g<g*\)时,\(h(g)>0\);\(g>g*时,h(g)<0\),以此判断条件二分搜索. 但是\((2nk-k^2)\)不能直接转化为点权,需要做点改变. \[\sum w_e - g*2nk+g*k^2 = \sum w_e + \frac…
题意:给一段子序列,定义密度:子序列中的逆序对数/子序列的长度 求这个序列的对大密度. 分析:将序列中的每个位置视作点,逆序对\(<i,j>\)之间表示点i与点j之间有一条无向边.所以就转化为了最大密度子图的模型. #include<bits/stdc++.h> using namespace std; #define eps 1e-7 #define INF 0x3f3f3f3f const int MAXN=1010;//点数的最大值 const int MAXM=400010…
Hard Life Time Limit: 8000MS   Memory Limit: 65536K Total Submissions: 9012   Accepted: 2614 Case Time Limit: 2000MS   Special Judge Description John is a Chief Executive Officer at a privately owned medium size company. The owner of the company has…
TK在大多数 Unix平台.Windows平台和Macintosh系统都是预装好的,TKinter 模块是 Tk GUI 套件的标准Python接口.可实现Python的GUI编程. Tkinter模块("Tk 接口")是python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中.(百度百科) 一般的环境里直接import…
题目链接 题意 给出n个点,每个点有一个值,现在要选择一些点的集合,使得(选择的点生成的逆序对数目)/(选择的点的数量)的比率最大. 思路 点与点之间生成一个逆序对可以看做是得到一个边,那么就是分数规划问题|E|/|V|,即求最大密度子图. 先处理出所有的逆序对,然后把这些逆序对看作边. 二分枚举 h(g) = |E| - g * |V|中的g,h(g)为递减函数,把g看做点权,转化为最大权闭合图处理,当 h(g) 为0时,得到最优解,这时候的g就是答案. #include <bits/stdc…
题目链接 题意 给出n个人,和m对有冲突的人.要裁掉一些人,使得冲突率最高,冲突率为存在的冲突数/人数. 思路 题意可以转化为,求出一些边,使得|E|/|V|最大,这种分数规划叫做最大密度子图. 学习 建图 对于每个边,依赖于点,可以转化为最大权闭合子图来求解. 最大密度子图: max(|E|/|V|) 分数规划 k = |E|/|V| h(g) = E - V * g 边依赖于点 转化为最大权闭合图 二分点权即g h(g)为递减函数 当h(g) < 0,不合法,要减小g 当h(g) > 0,…
You have a long drive by car ahead. You have a tape recorder, but unfortunately your best music is onCDs. You need to have it on tapes so the problem to solve is: you have a tape N minutes long. Howto choose tracks from CD to get most out of tape spa…
当前区间f(i, j)分两种情况,一种是s[i]于s[j]符合要求,那么可以转移到f[i + 1][j - 1] 这样答案只会更小或者相等 第二种是直接分成两个部分, 即f[i][j] = f[i][k] + f[k + 1][j],这个时候要取min 同时要注意第一种情况未必是最优的,要从一二两种情况里面取最优值 然后输出方面,按照答案反推,如果当前状态刚好等于其中一种情况,那么就递归下去,边界是 一个字符的时候输出两个字符. 另外学会用fgets,不用gets.fgets头文件cstdio,…
论文出处:最小割模型在信息学竞赛终的应用 #include <iostream> #include <cstdio> #include <cstring> #include <queue> #include <algorithm> using namespace std; ; const int inf = 0x3f3f3f3f; + ; + ; struct edge{ int to, next; double w; } ed[maxe*];…
J.Symmys Time Limit: 1000 MS Memory Limit: 262144 K Total Submit: 50 (13 users) Total Accepted: 2 (2 users) Special Judge: No Description ClearY is not good at English. He often fails in his English test. To help him study English, his English teache…
BZOJ 最大密度子图. 二分答案\(x\),转为求是否存在方案满足:\(边数-x*点数\geq 0\). 选一条边就必须选两个点,所以可以转成最大权闭合子图.边有\(1\)的正权,点有\(x\)的负权.判断\(边数-最小割\)是否非负即可. 有一个结论是,任意两个密度子图,它们的密度差不超过\(\frac{1}{n^2}\). 所以拿eps=1e-7或者更小做二分边界不对... 必须是\(while(l+1.0/n/n<=r)\). 还要注意精度的问题.. m=0要输出1. //1300kb…
最短路问题此类问题类型不多,变形较少 POJ 2449 Remmarguts' Date(中等)http://acm.pku.edu.cn/JudgeOnline/problem?id=2449题意:经典问题:K短路解法:dijkstra+A*(rec),方法很多相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144该题亦放在搜索推荐题中 POJ 3013 - Big Christmas Tree(基础)http://ac…
POJ图论分类[转] 一个很不错的图论分类,非常感谢原版的作者!!!在这里分享给大家,爱好图论的ACMer不寂寞了... (很抱歉没有找到此题集整理的原创作者,感谢知情的朋友给个原创链接) POJ:http://poj.org/ 1062* 昂贵的聘礼 枚举等级限制+dijkstra 1087* A Plug for UNIX 2分匹配 1094 Sorting It All Out floyd 或 拓扑 1112* Team Them Up! 2分图染色+DP 1125 Stockbroker…
题面 Description ADN公司内部共 n个员工,员工之间可能曾经因为小事有了过节,总是闹矛盾.若员工u和员工 v有矛盾,用边(u, v)表示,共 m个矛盾.最近,ADN公司内部越来越不团结,Amber决定裁员.Amber想得到一个被裁人员的清单,使得被裁人员间的不团结率最高.不团结率定义为被裁人员间的矛盾总数与被裁人员数的比值(不团结率=被裁人员之间的矛盾总数/被裁人员数). 在上图这个例子中1, 2, 4和5,4个人中都有5对矛盾,则不团结率为\(\frac 45\).如果我们添加3…
重要链接 基础部分链接 : 二分图 & 网络流初步 zzz大佬博客链接 : 网络流学习笔记 重点内容:最小割二元关系新解(lyd's ppt) 题目:网络流相关题目 lyd神犇课件链接 : 网络流模型设计lyd(提取码:m5sd) 国家集训队2007胡伯涛论文 : 算法合集之<最小割模型在信息学竞赛中的应用> 最详细(也可能现在不是了)网络流建模基础 对于网络流的基础部分以及其在二分图方面的应用,详见上面的第一个链接. 先 Copy 下重点: 最小割 最大流等于最小割. 如何找到最小割…
模型要点: 1.一般适用于二取一问题或者01规划. 2.利用最小割=最大流,转化为最大流求之. 建议阅读胡伯涛的论文 <<最小割模型在信息学竞赛的应用>>,有精彩有序的证明和各种模型,不过我大概花了2个星期才把它弄懂...最小密度路径的改进算法那一块的推导前面部分有些问题,但后面是对的,结论也是对的,蛋疼了好久.. 相关题目: 1.太空飞行计划(网络流24题) 题目大意: 有一些实验和仪器,做每个实验有相应的报酬,但是需要买好相应的仪器(多个实验可以共用),仪器需要相应的钱.求最大…
忘写题解了,经典的最大密度子图 可以类似分数规划的做,二分密度,然后转化为最大权闭合子图做,判断是否大于0 注意方案的输出 const eps=1e-6; lim=1e-12; inf=; type node=record po,next:longint; flow:double; end; ..] of node; numh,h,cur,pre,p,x,y:..] of longint; v:..] of boolean; d:..] of double; len,i,n,m,t,ans:lo…
转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并查集======================================[HDU]1213   How Many Tables   基础并查集★1272   小希的迷宫   基础并查集★1325&&poj1308  Is It A Tree?   基础并查集★1856   More i…
poj3155:http://poj.org/problem?id=3155 题意:最大密度子图的模板题. 题解:直接看代码. /* 题意简述一个公司有n个人,给出了一些有冲突的人的对数(u,v),所有为了公司更好的发展,公司的 总裁决定裁人,那么总裁现在裁要裁掉冲突率最高的哪些(冲突率=人数/在这些人中存在的冲突数 分析;很明显的一个求最大密度子图的题目,求最大密度子图的方法有两种不同的模型可以求解, 一种是采用了转换为最大权闭合图的模型来求解,而另一种则是通过补集转换的思想来求解, 现在就最…
因为搜索关于CFRound277.5E题的题解时发现了这篇文章,很多地方都有值得借鉴的东西,因此转了过来 原文:http://www.cnblogs.com/perseawe/archive/2012/05/03/01fsgh.html [关键字] 0/1分数规划.最优比率生成树.最优比率环 [背景] 根据楼教主的回忆录,他曾经在某一场比赛中秒掉了一道最优比率生成树问题,导致很多人跟风失败,最终悲剧. 自己总结了一些这种问题的解法,因为水平有限,如果有错误或是麻烦的地方,尽管喷,邮箱或是下方留言…
=============================以下是最小生成树+并查集====================================== [HDU] How Many Tables 基础并查集★ 小希的迷宫 基础并查集★ &&poj1308 Is It A Tree? 基础并查集★ More is better 基础并查集★ Constructing Roads 基础最小生成树★ 畅通工程 基础并查集★ 还是畅通工程 基础最小生成树★ 畅通工程 基础最小生成树★ 畅通…
从联赛活了下来(虽然分数倒一……),接下来要去CDQZ集训啦…… DAY -2 2017-12-16 被老师安排负责一部分同学的住宿以及安排…… 抓紧时间继续学习,LCT真好玩啊真好玩…… 晚上放假了…… DAY -1 2017-12-17 放假进行中……下午转场到了石家庄. 与srs,wzz,wxh几个dalao住在一个宾馆,晚上出去吃饭…… DAY 0 2017-12-18 4:30早起……到机场. 似乎没有想象中的麻烦…… 很顺利的登机,起飞的时候气压的确有一些奇怪的问题……耳朵有点难受…
01分数规划(网络流)+状压DP+树形DP 官方题解地址:http://pan.baidu.com/s/1mg5S5z6 A 好神啊= =第一次写01分数规划 其实分数规划是要求$$ Maximize/Minimize \ \ L=\frac{A(x)}{B(x)}$$ 这里我们拿最大来举例吧……因为本题就是最大嘛~ 通用解法是:二分= = 假设最优解为$\lambda^*$,那么有$$\lambda^*=f(x^*)=\frac{A(x^*)}{B(x^*)} \\ \Rightarrow \…