日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【KM匹配】 HDOJ 2853 Assignment

發布時間:2024/3/26 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【KM匹配】 HDOJ 2853 Assignment 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題意:求最大權匹配,要求改動最少。。。。做法很巧妙,現在原權值乘上一個很大的倍數,比如100,然后再加上一個小量,加上小量以后對匹配出來的結果沒有影響,但可以求解出改動最小。。。

#include <iostream> #include <queue> #include <stack> #include <map> #include <set> #include <bitset> #include <cstdio> #include <algorithm> #include <cstring> #include <climits> #include <cstdlib> #include <cmath> #include <time.h> #define maxn 55 #define maxm 400005 #define eps 1e-10 #define mod 1000000007 #define INF 999999999 #define PI (acos(-1.0)) #define lowbit(x) (x&(-x)) #define mp make_pair #define ls o<<1 #define rs o<<1 | 1 #define lson o<<1, L, mid #define rson o<<1 | 1, mid+1, R #define pii pair<int, int> #pragma comment(linker, "/STACK:16777216") typedef long long LL; typedef unsigned long long ULL; //typedef int LL; using namespace std; LL qpow(LL a, LL b){LL res=1,base=a;while(b){if(b%2)res=res*base;base=base*base;b/=2;}return res;} LL powmod(LL a, LL b){LL res=1,base=a;while(b){if(b%2)res=res*base%mod;base=base*base%mod;b/=2;}return res;} // headint g[maxn][maxn]; int linker[maxn]; int slack[maxn]; bool visx[maxn]; bool visy[maxn]; int lx[maxn]; int ly[maxn]; int n, m, nx, ny, init;bool dfs(int x) {visx[x] = true;for(int y = 0; y < ny; y++) {if(visy[y]) continue;int tmp = lx[x] + ly[y] - g[x][y];if(!tmp) {visy[y] = true;if(linker[y] == -1 || dfs(linker[y])) {linker[y] = x;return true;}}else slack[y] = min(slack[y], tmp);}return false; }int km() {memset(linker, -1, sizeof linker);memset(ly, 0, sizeof ly);for(int i = 0; i < nx; i++) {lx[i] = -INF;for(int j = 0; j < ny; j++)lx[i] = max(lx[i], g[i][j]);}for(int x = 0; x < nx; x++) {for(int i = 0; i < ny; i++)slack[i] = INF;while(true) {memset(visx, 0, sizeof visx);memset(visy, 0, sizeof visy);if(dfs(x)) break;int d = INF;for(int i = 0; i < ny; i++)if(!visy[i] && d > slack[i])d = slack[i];for(int i = 0; i < nx; i++)if(visx[i]) lx[i] -= d;for(int i = 0; i < ny; i++)if(visy[i]) ly[i] += d;else slack[i] -= d;}}int res = 0;for(int i = 0; i < ny; i++) res += g[linker[i]][i];return res; }void read() {memset(g, 0, sizeof g);for(int i = 0; i < n; i++)for(int j = 0; j < m; j++)scanf("%d", &g[i][j]), g[i][j] *= 100;nx = ny = m;int x;init = 0;for(int i = 0; i < n; i++) {scanf("%d", &x), x--;init += g[i][x] / 100;g[i][x]++;} }void work() {int ans = km();printf("%d %d\n", n - ans % 100, ans / 100 - init); }int main() {while(scanf("%d%d", &n, &m)!=EOF) {read();work();}return 0; }

總結

以上是生活随笔為你收集整理的【KM匹配】 HDOJ 2853 Assignment的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久精品国产电影 | 一级片免费网站 | 日日碰狠狠添天天爽无码 | 日韩电影一区 | 免费看黄20分钟 | 亚洲骚片 | 99精品久久 | 精品人妻一区二区三区四区久久 | 亚洲毛片儿 | 婷婷精品进入 | 小明成人免费视频 | 偷偷操不一样的久久 | 亚洲av无码一区东京热久久 | 国产精品人 | 成人久久精品 | 天天看天天摸天天操 | 免费超碰在线 | 欧美在线va | 色欲av永久无码精品无码蜜桃 | 黄色图片小说 | 欧美三级小说 | 欧美片17c07.com | jizzjizz国产 | 亚洲精品视频导航 | 欧州一级片 | 国产精品欧美综合 | 私密spa按摩按到高潮 | 欧美成人a交片免费看 | 欧美色图网址 | 免费黄色网址在线 | 久久综合成人网 | 高潮毛片| 免费在线看黄色片 | 欧美国产91| 91丨porny丨九色 | 极品人妻一区二区三区 | 亚洲自拍第二页 | 精品在线播放 | 中文字幕久久久久 | 在线观看免费观看在线 | 四级毛片| 黄色三级国产 | 国产调教打屁股xxxx网站 | 日本电影一区 | 无码国产色欲xxxx视频 | 国产精品国产三级国产aⅴ原创 | 国产精品久久在线观看 | 澳门免费av | 超碰超碰 | 免费小视频在线观看 | 中文字幕在线观看线人 | 久久久久亚洲av成人无码电影 | 深爱五月激情网 | 国产999精品视频 | 亚洲丁香婷婷 | 精品视频一二 | 色婷婷av一区二区三区麻豆综合 | 日本一二区视频 | 欧美人与动物xxxx | 欧美久久一级 | av不卡高清| 毛片专区| 黄色精品| 又黄又爽视频在线观看 | 男人肌肌桶女人肌肌 | 国产精品一区二区三区免费看 | 熟女少妇a性色生活片毛片 亚洲伊人成人网 | 色香天天| 久久www视频 | 重口变态虐黄网站 | 亚洲精品在线看 | 日本最新中文字幕 | 人人澡人人澡 | 日韩精品第三页 | 成人深夜小视频 | 日韩精品一区二区三区色欲av | 精品福利视频一区二区 | 一区二区三区四区五区视频 | 91av手机在线| 亚洲欧美精品suv | 欧美亚洲色图视频 | 91人妻一区二区 | 久久色在线视频 | 91视频 - 88av | 国产最新视频在线 | 伊人成长网 | 狂躁美女大bbbbbb黑人 | 日韩欧美精品久久 | 亚洲一级Av无码毛片久久精品 | 国产美女自慰在线观看 | 凹凸精品熟女在线观看 | 99热这里只有精品1 亚洲人交配视频 | 日韩欧美国产成人精品免费 | 午夜美女视频 | 亚洲午夜精品一区 | 夫妻淫语绿帽对白 | 国产剧情av麻豆香蕉精品 | 国产aaa毛片| 二区视频在线观看 |