社区
C++ 语言
帖子详情
n*n矩阵,不同行不同列选n个数 使其和最小
woaigaoxinyu
2010-05-08 10:57:44
我知道用动态规划或者最佳匹配算法可以解决,希望大家实现一下代码,函数参数就是n*n矩阵,输出是那个最小的和
...全文
223
9
打赏
收藏
n*n矩阵,不同行不同列选n个数 使其和最小
我知道用动态规划或者最佳匹配算法可以解决,希望大家实现一下代码,函数参数就是n*n矩阵,输出是那个最小的和
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
LXHSDFZ
2011-05-28
打赏
举报
回复
我会~~~
#include"stdio.h"
#include"iostream.h"
#include"stdlib.h"
#define N 15
void main()
{
int juzhen[N][N];
int i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
juzhen[i][j]=rand();
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
cout<<juzhen[i][j]<<" ";
cout<<endl;
}
//先生成一个15*15的矩阵
int min=0,sum=0,k,l,t,m,n,max;
int count[N],same[N],compare[N];
for(i=0;i<N;i++)
{
min=juzhen[i][0];
l=0;
for(j=0;j<N;j++){
if(juzhen[i][j]<min)
{
min=juzhen[i][j];
l=j;
}
}
count[i]=l;
}
//找出每一行的最小值,并记住每一行的最小值的列数
for(i=0;i<N;i++)
cout<<count[i]<<" ";
cout<<endl;
//将每一行最小数的列数输出
for(i=0;i<N;i++)
{
t=count[i];
k=0;
for(j=0;j<N;j++)
{
if(t==count[j])
k++;
}
same[i]=k;
}
//检查每一行最小数在相同一列的次数
for(i=0;i<N;i++)
cout<<same[i]<<" ";
cout<<endl;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
if(i==count[j]) break;
if(j==N)
compare[i]=0;
else
compare[i]=1;
}
//检查哪列有最小值哪列没有,并标记。
for(i=0;i<N;i++)
cout<<compare[i]<<" ";
cout<<endl;
for(i=0;i<N;i++)
{
if(compare[i]==0)
{
for(j=0;j<N;j++)
{
if(same[j]>1)
{
max=0;
for(k=0;k<N;k++)
{
if(count[k]==count[j])
if(max<juzhen[k][count[k]])//找出同一列中各行最小数当中最大的数字,兵把他付给没有最小数的该列。
{
max=juzhen[k][count[k]];
m=k;
}
}
}
}
count[m]=i;
}
for(n=0;n<N;n++)
{
t=count[n];
k=0;
for(j=0;j<N;j++)
{
if(t==count[j])
k++;
}
same[n]=k;
}
for(n=0;n<N;n++)
{
for(j=0;j<N;j++)
if(n==count[j]) break;
if(j==N)
compare[n]=0;
else
compare[n]=1;
}
}
for(i=0;i<N;i++)
{
cout<<"第"<<i+1<<"行 第"<<count[i]+1<<"列为"<<juzhen[i][count[i]]<<endl;
sum=sum+juzhen[i][count[i]];
}
cout<<"最终值为:"<<sum<<endl;
}
Xiaoloveliuforever
2010-05-09
打赏
举报
回复
网上资料和源代码很多
lqbk1
2010-05-09
打赏
举报
回复
http://www.tudou.com/programs/view/5owI5r3kzxk
如果楼主看完上面视频还不会自己编一个出来的话,我也无语了……
今天心情不好,不想写代码了,楼主可以理解成我相当菜,根本编不出来╮(╯_╰)╭
woaigaoxinyu
2010-05-09
打赏
举报
回复
这边无高人!
鉴定完毕!
woaigaoxinyu
2010-05-09
打赏
举报
回复
能给完整代码吗,谢啦
[Quote=引用 4 楼 xiaoloveliuforever 的回复:]
网上资料和源代码很多
[/Quote]
woaigaoxinyu
2010-05-09
打赏
举报
回复
这也太繁琐了
[Quote=引用 3 楼 lcl_data 的回复:]
不同行不同列选n个数
选把n皇后的选法全部选出来,在找最小的和?
[/Quote]
十八道胡同
2010-05-08
打赏
举报
回复
不同行不同列选n个数
选把n皇后的选法全部选出来,在找最小的和?
woaigaoxinyu
2010-05-08
打赏
举报
回复
没一个人会吗
woaigaoxinyu
2010-05-08
打赏
举报
回复
每一个人会吗
数据结构课程设计
6、八皇后问题:设8皇后问题的解为 (x1, x2, x3, …,x8), 约束条件为:在8x8的棋盘上,其中任意两个xi 和xj不能位于棋盘的同
行
、同列及同对角线。要求用一位数组进
行
存储,输出所有可能的排列。 7、迷宫求解:用二维...
c语言题库问题和答案.docx
循环结构习题:任意输入n
个数
,输出最大和
最小
值及其对应的序列号 56%(3078/5455) 45% 2020-4-23 1021 选择结构习题:三
个数
排序 66%(3470/5220) 35% 2020-4-23 1022 选择结构习题:分段函数 33%(3464/10497) 68% ...
leetcode卡-leetcode:leetcode代码
leetcode卡 leetcode 代码记录 实现了以下代码 677-键值映射 714-买卖股票的最佳时机含手续费 ...724-寻找数组的中心索引 ...947-移除最多的同
行
或同列石头 950-按递增顺序显示卡牌 961-重复 N 次的元素 101
笔试题2020: 一个n*m的
矩阵
,求其中
不同
行
并且
不同
列的两
个数
的最大乘积。 n,m<1000
暴力解。。 package wzh.javase.lecode; import java.util.Scanner; /** * @ author: wzh * @ date : 2020/8/15 18:55 * TODO ... public static void main(String[] args) { ... int n = sc.nex.
动态规划之m*n
矩阵
中
不同
路径和
最小
路径和
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条
不同
的路径? 例如...
C++ 语言
64,639
社区成员
250,578
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章