7-找了一上午的BUG
#include <iostream>
#include <cstring>
#include <algorithm>
#define MAX 1<<28;
using namespace std;
#define MAX 1<<28;
int lx[50], ly[50];
int map[50][50];
int visitx[50], visity[50];
int match[50], slack[50];
int n, m;
int hungary(int u){
visitx[u] = 1;
int temp = 0;
for(int i = 1; i <= m; i++){
if(visity[i])
continue;
temp = lx[u] + ly[i] - map[u][i];
if(temp == 0){
visity[i] = 1;
if(match[i] == 0 || hungary(match[i])){
match[i] = u;
return 1;
}
}
else
slack[i] = min(slack[i], temp);
}
return 0;
}
int km(){
int temp = 0;
memset(lx, 0, sizeof(lx));
memset(ly, 0, sizeof(ly));
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
if(lx[i] < map[i][j])
lx[i] = map[i][j];
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++)
slack[j] = MAX;
while(1){
memset(visitx, 0, sizeof(visitx));
memset(visity, 0, sizeof(visity));
if(hungary(i))
break;
else{
temp = MAX;
for(int j = 1; j <= m; j++)
if(!visity[j])
if(temp > slack[j])
temp = slack[j];
if(temp == MAX)
return 0; // 无法匹配
for(int j = 1; j <= n; j++)
if(visitx[j])
lx[j] -= temp;
for(int j = 1; j <= m; j++)
if(visity[j])
ly[j] += temp;
else
slack[j] -= temp;
}
}
}
return 1;
}
int main(){
int rewu;
while(cin >> n){
cin >> m;
int res = 0, ans = 0;
memset(map, 0, sizeof(map));
memset(match, 0, sizeof(match));
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++){
cin >> map[i][j];
map[i][j] *= (n+1);
}
}
for(int i = 1; i <= n; i++){
cin >> rewu;
res += map[i][rewu];
map[i][rewu]++;
}
km();
for(int i = 1; i <= m; i++)
if(match[i] != 0){
cout << "match[i]: " << match[i] << endl;
cout << i << "i: " << map[match[i]][i] << " ";
ans += map[match[i]][i];
}
cout << n - res % (n+1) << " " << ans/(n+1) - res/(n+1) << endl;
cout << res << " " << ans << endl;
}
return 0;
}
找BUG:


7-找了一上午的BUG的更多相关文章
- 找不好重现的bug的一个小技巧————守株待兔
最近碰到一个问题就是数据库中偶尔出现一条没有id的数据,可恨的是怎么也找不到重现这个问题的原因,只好换种方式来找了,那么就是我标题所说的守株待兔方法. 因为我发现出现bug的数据库里面的数据有个字段为 ...
- 找出诡异的Bug:数据怎么存不进去
带着学生做课程设计.程序一大,课程中做过了小项目,练过了分解动作,一到合起来了,难免还是要乱了分寸.事实上,实战的功夫,就是这样出来的.(课程设计指导视频链接(第36课时,3.18 银行系统开发).课 ...
- 找"数学口袋精灵"bug
团队成员的博客园地址: 刘森松:http://home.cnblogs.com/u/lssh/ 郭志豪:http://home.cnblogs.com/u/gzh13692021053/ 谭宇森:ht ...
- 关于selenium IDE找不到元素bug
使用 selenium IDE 录制脚本,经常会发生 这样一种错误. 页面上,明明存在这个元素,就是找不到. 其实原理很简单 , 按钮 点击,没有时间延迟,但是页面加载,需要一段时间. 页面元素还 ...
- POJ_2386 Lake Counting (dfs 错了一个负号找了一上午)
来之不易的2017第一发ac http://poj.org/problem?id=2386 Lake Counting Time Limit: 1000MS Memory Limit: 65536 ...
- poj - 2096 概率dp (找bug)
题意:一个人一天只能找1个bug ,这个bug属于s个子系统中的某一个子系统,属于n种bug 中的某一种 ,求 这个人找出n种bug ,并且s个系统都bug的期望 (每个系统的一定可以找出bug) 一 ...
- 如何重现难以重现的bug
生活中有这么一种现象:如果你关注某些东西,它就会经常出现在你眼前,例如一个不出名的歌手的名字,一种动物的卡通形象,某个非常专业的术语,等等等等.这种现象也叫做“孕妇效应”.还有类似的一种效应叫做“视网 ...
- 如何有效地报告 Bug
如何有效地报告 Bug 引言 为公众写过软件的人,大概都收到过很拙劣的bug(计算机程序代码中的错误或程序运行时的瑕疵--译者注)报告,例如: 在报告中说"不好用": 所报告内容毫 ...
- [PyTorch]论文pytorch复现中遇到的BUG
目录 1. zip argument #1 must support iteration 2. torch.nn.DataParallel 3. model.state_dict() 1. zip a ...
随机推荐
- 6.22-Servlet
一.servlet servlet是运行在服务器端的java程序 jsp专注于显示 servlet处理请求和响应 创建servlet 继承HttpServlet 实现servlet接口 配置servl ...
- SQL Server 2008 CDC增量变更捕获详解
1 背景: 随着公司业务的成长,数据量也随之的不断增长.随之而来的问题是在做ETL的时候,时间花费也越来越长.为了节省时间开销,我们只想要更新最新的数据,不想要把公司历年所有的数据都进行处理.这种情况 ...
- Valve新员工手册中文版
- Windows10 命令行中使用网络驱动器
Windows10中,我们在局域网内使用共享文件夹,建立映射的网络驱动器,有时候需要一些软件去调用网络驱动器内的资源,但是发现在资源管理器能正常打开,应用软件却无法识别,命令行中提示:“系统找不到指定 ...
- python带参数装饰器使用
# -*- coding: utf-8 -* """TensorFlow指定使用GPU工具类 author: Jill usage: 方法上加@tf_with_devic ...
- 最近开始研究php的缓存技术,来个系统自带的OPcache
最近开始研究php的缓存技术,来个系统自带的OPcache php5.5以上版本 系统自带 PHP5.2-5.4 可通过扩展来安装 OPcache是 zend出品 比apc的优势在于 长期更新 ...
- 6. 纯 CSS 绘制一颗闪闪发光的璀璨钻石
原文地址:https://segmentfault.com/a/1190000014652116 HTML代码: <div class="diamond"> <s ...
- Springboot spring data jpa 多数据源的配置01
Springboot spring data jpa 多数据源的配置 (说明:这只是引入了多个数据源,他们各自管理各自的事务,并没有实现统一的事务控制) 例: user数据库 global 数据库 ...
- 视频地址blog加密
/* JS部分 没处理兼容什么的 */ var id='<?php echo $_GET['id'];?>'; var video = document.getElementById(&q ...
- Haskell语言学习笔记(32)Data.Maybe, Data.Either
Data.Maybe Prelude Data.Maybe> maybe "" show (Just 5) "5" Prelude Data.Maybe& ...