hdu 3335 Divisibility (最小路径覆盖)
来源:互联网 发布:windows软件字体乱码 编辑:程序博客网 时间:2024/05/29 04:48
如果a[i]%a[j]==0,建边i—>j,二分匹配求出最小路径覆盖ans,被一条路径覆盖的点最多只能选一个,所以最多能选ans个。
这题用最大独立集更容易理解,选n个点,任意两点之间没有关系,就是最大独立集。。
#include<stdio.h>#include<string.h>bool map[1001][1001],link[1001];int match[1001];int n;__int64 a[1001];int find(int u){int i;for(i=0;i<n;i++){if(!link[i]&&map[u][i]){link[i]=true;if(match[i]==-1||find(match[i])==1){match[i]=u;return 1;}}}return 0;}int main(){int i,j,t,sum;scanf("%d",&t);while(t--){memset(map,false,sizeof(map));scanf("%d",&n);for(i=0;i<n;i++){scanf("%I64d",&a[i]);for(j=0;j<i;j++){if(a[i]%a[j]==0||a[j]%a[i]==0)map[j][i]=true;}}sum=0;memset(match,-1,sizeof(match));for(i=0;i<n;i++){memset(link,false,sizeof(link));sum+=find(i);}printf("%d\n",n-sum);}return 0;}
- hdu 3335 Divisibility (最小路径覆盖)
- HDU 3335 Divisibility(Dilworth定理+最小路径覆盖)
- 最小路径覆盖:Divisibility
- hdu3335 Divisibility (最小路径覆盖)
- 最小路径覆盖 hdu 1151 hdu 3335
- hdu 3335 (最小路径覆盖)
- hdu 3335(最小路径覆盖)
- hdu 3335 Divisibility(Dancing Links重复覆盖)
- 【最小路径覆盖】HDU 4160
- hdu 1151 最小路径覆盖
- hdu 1151 最小路径覆盖
- HDU - 4160 最小路径覆盖
- HDU 3335 Divisibility(DLX可重复覆盖)
- hdu 3335 Divisibility(Dancing Links 重复覆盖)
- HDU 3335 Divisibility(DLX求最多重复覆盖)
- HDU 1350(最小路径覆盖)
- hdu 3991(最小路径覆盖)
- HDU 3991 最短路+最小路径覆盖
- 《Java 编程思想》--第十四章:类型信息
- PureMVC 的得与失
- 《Java 编程思想》--第十五章:泛型
- asp.net连接查询SQL数据库,把结果显示在网页上
- 《Java 编程思想》--第十六章:数组
- hdu 3335 Divisibility (最小路径覆盖)
- jquery 选择器
- POJ 3689 Labeling Balls (拓扑排序)
- 日志
- SQL快速生成100万不重复的8位编号
- java中遍历list的4中方法
- 限制MySQL数据库单个用户最大连接数等的方法
- Using Dialog Templates to create an InputBox() in C++
- loadrunner 字符串函数