HDU-1853 Cyclic Tour
最小权值环覆盖问题:用几个环把所有点覆盖,求所选取的边最小的权值之和。
拆点思想+求最小转求最大+KM算法
- #include <cstdlib>
- #include <cstdio>
- #include <cmath>
- #include <cstring>
- #include <algorithm>
- #include <fstream>
- #include <iostream>
- #define rep(i, l, r) for(int i=l; i<=r; i++)
- #define clr(x, c) memset(x, c, sizeof(x))
- #define N 123
- #define MAX 1<<30
- #define ll long long
- using namespace std;
- int read()
- {
- int x=0, f=1; char ch=getchar();
- while (ch<'0' || ch>'9') { if (ch=='-') f=-1; ch=getchar(); }
- while (ch>='0' && ch<='9') { x=x*10+ch-'0'; ch=getchar(); }
- return x*f;
- }
- int n, m, l[N], st[N], lx[N], ly[N], v[N][N];
- bool vx[N], vy[N];
- bool Find(int x)
- {
- vx[x]=1;
- rep(y, 1, n) if (!vy[y])
- {
- int a=lx[x]+ly[y]-v[x][y];
- if (!a)
- {
- vy[y]=1; if (!l[y] || Find(l[y])) { l[y]=x; return true; }
- }
- else st[y]=min(st[y], a);
- }
- return false;
- }
- int km()
- {
- rep(i, 1, n) lx[i]=-MAX; clr(ly, 0); clr(l, 0);
- rep(i, 1, n) rep(j, 1, n) if (lx[i]<v[i][j]) lx[i]=v[i][j];
- rep(i, 1, n)
- {
- rep(j, 1, n) st[j]=MAX;
- while (1)
- {
- clr(vx, 0); clr(vy, 0);
- if (Find(i)) break; int a=MAX;
- rep(j, 1, n) if (!vy[j] && st[j]<a) a=st[j];
- rep(j, 1, n) if (vx[j]) lx[j]-=a;
- rep(j, 1, n) if (vy[j]) ly[j]+=a; else st[j]-=a;
- }
- }
- int ans=0;
- rep(i, 1, n) if (!l[i] || v[l[i]][i]==-MAX) return -1; else ans+=v[l[i]][i];
- return -ans;
- }
- int main()
- {
- while (~scanf("%d%d", &n, &m))
- {
- rep(i, 1, n) rep(j, 1, n) v[i][j]=MAX;
- rep(i, 1, m) { int x=read(), y=read(), z=read(); if (v[x][y]>z) v[x][y]=z; }
- rep(i, 1, n) rep(j, 1, n) v[i][j]*=-1;
- printf("%d\n", km());
- }
- return 0;
- }
HDU-1853 Cyclic Tour的更多相关文章
- hdu 1853 Cyclic Tour 最大权值匹配 全部点连成环的最小边权和
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1853 Cyclic Tour Time Limit: 1000/1000 MS (Java/Others) ...
- hdu 1853 Cyclic Tour (二分匹配KM最小权值 或 最小费用最大流)
Cyclic Tour Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/65535 K (Java/Others)Total ...
- HDU 1853 Cyclic Tour[有向环最小权值覆盖]
Cyclic Tour Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/65535 K (Java/Others)Total ...
- HDU 1853 Cyclic Tour(最小费用最大流)
Cyclic Tour Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/65535 K (Java/Others) Tota ...
- hdu 1853 Cyclic Tour 最小费用最大流
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1853 There are N cities in our country, and M one-way ...
- 【刷题】HDU 1853 Cyclic Tour
Problem Description There are N cities in our country, and M one-way roads connecting them. Now Litt ...
- 最大流增广路(KM算法) HDOJ 1853 Cyclic Tour
题目传送门 /* KM: 相比HDOJ_1533,多了重边的处理,还有完美匹配的判定方法 */ #include <cstdio> #include <cmath> #incl ...
- HDU(1853),最小权匹配,KM
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1853 Cyclic Tour Time Limit: 1000/1000 MS (Java/Other ...
- Cyclic Tour HDUOJ 费用流
Cyclic Tour Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/65535 K (Java/Others)Total ...
- hdu 1853 最小费用流好题 环的问题
Cyclic Tour Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/65535 K (Java/Others) Tota ...
随机推荐
- [dp uestc oj] G - 邱老师玩游戏
G - 邱老师玩游戏 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submi ...
- cv2.solvepnp 相机的位姿估计
预备知识 图像坐标系: 理想的图像坐标系原点O1和真实的O0有一定的偏差,由此我们建立了等式(1)和(2),可以用矩阵形式(3)表示. 相机坐标系(C)和世界坐标系(W): 通过相机与图像的投 ...
- Xor Sum
6498: Xor Sum 时间限制: 1 Sec 内存限制: 128 MB提交: 27 解决: 13[提交][状态][讨论版][命题人:admin] 题目描述 You are given a p ...
- 分类回归树(CART)
概要 本部分介绍 CART,是一种非常重要的机器学习算法. 基本原理 CART 全称为 Classification And Regression Trees,即分类回归树.顾名思义,该算法既 ...
- Django ORM models操作
title: Django ORM models操作 tags: Django --- Django ORM models操作 Django ORM基本操作 一.数据库的创建及增删改查 1 使用类创建 ...
- centos7-httpd服务器
Apache WEB服务器入门简介: Apache HTTP Server是Apache软件基金会的一个开源的网页服务器,可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是目 ...
- Java中List集合排序的方法 比较器的使用 根据学生对象数学 语文 英语成绩总和进行sort排序
package com.swift; import java.util.ArrayList; import java.util.Collections; import java.util.Compar ...
- java工作环境配置jdk,idea
下载 jdk 1.8 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 配置环境 ...
- Livid : 在 26 岁时写给 18 岁的自己
转载自: https://livid.v2ex.com/essays/2012/01/24/a-letter-from-26-to-18.html 在 26 岁时写给 18 岁的自己 Jan 24, ...
- DC 课程内容