2014编程之美资格赛 题目3 : 格格取数
来源:互联网 发布:tengine nginx 对比 编辑:程序博客网 时间:2024/06/10 20:24
时间限制:2000ms
单点时限:1000ms
内存限制:256MB
- 样例输入
23 31 2 33 1 22 3 15 51 2 3 4 55 1 2 3 44 5 1 2 33 4 5 1 22 3 4 5 1
- 样例输出
Case 1: 3Case 2: 5
大数据没有什么思路。小数据直接深搜暴力解决了。108ms
//source here#include<stdio.h>#include<string.h>int r[6],c[6];int n,m,res;int mp[6][6];void dfs(int min) {int i,j,flg=0;if(min>=res) return ;for(i=0;i<n;i++){if(!r[i]){flg=1;break;} }for(i=0;i<m;i++){if(!c[i]) {flg=1;break;}}if(!flg) {if(min<res)res=min;return ;}for(i=0;i<n;i++) {for(j=0;j<m;j++) {int x=1,y=1;if(!r[i]||!c[j]) {if(!r[i]) x=0;if(!c[j]) y=0;r[i]=1,c[j]=1;dfs(min+mp[i][j]);if(!x) r[i]=0;if(!y) c[j]=0; }} }return ;}void init() {memset(r,0,sizeof(r));memset(c,0,sizeof(c));}int main() {int t,o=1;scanf("%d",&t);while(t--) {init();scanf("%d%d",&n,&m);int i,j,k;for(i=0;i<n;i++){for(j=0;j<m;j++) {scanf("%d",&mp[i][j]);}}res=999999;dfs(0);printf("Case %d: %d\n",o++,res);}}
描述
给你一个m x n (1 <= m, n <= 100)的矩阵A (0<=aij<=10000),要求在矩阵中选择一些数,要求每一行,每一列都至少选到了一个数,使得选出的数的和尽量的小。
输入
多组测试数据。首先是数据组数T
对于每组测试数据,第1行是两个正整数m, n,分别表示矩阵的行数和列数。
接下来的m行,每行n个整数,之间用一个空格分隔,表示矩阵A的元素。
输出
每组数据输出一行,表示选出的数的和的最小值。
数据范围
小数据:1 <= m, n <= 5
大数据:1 <= m, n <= 100
0 0
- 2014编程之美资格赛 题目3 : 格格取数
- 编程之美2014资格赛题目3:格格取数
- 【编程之美资格赛】题目3 : 格格取数
- 编程之美2014资格赛 hihoCoder 题目3:格格取数
- 2014编程之美资格赛第三题-格格取数
- 编程之美2014格格取数
- 编程之美2014格格取数
- 编程之美2014格格取数
- 2014 编程之美 资格赛 第三题 格格取数(二分图带权最小边覆盖)
- 编程之美之格格取数
- 编程之美 格格取数问题
- 编程之美-格格取数
- 编程之美2014格格取数(回溯法)
- [2014]编程之美第3题,格格取数问题
- 编程之美 打酱油 格格取数
- 编程之美 格格取数 C语言版本
- 编程之美 2014 格格取数(最小费用最大流)
- 2014 编程之美 预赛第三题 格格取数 上下界费用流
- API Guides:Fragment
- 手机模拟触摸板的简单实现Java版
- Java学习之Iterator(迭代器)的一般用法 (转)
- Struts2拦截器原理理解
- memset
- 2014编程之美资格赛 题目3 : 格格取数
- 【开源】博客导出工具
- uva 10367 - Equations(模拟+数论)
- Oracle优化器介绍
- 第七周项目3-成员函数、友元函数和一般函数的区别
- 携程编程——括号匹配1002
- 深入分析request_irq的dev_id参数作用
- 什么是字符串常量池?
- oracle开发常用