nyoj 504 课程设计
课程设计
- 描述
- 新学期伊始,Gangster 老师又在为如何给学生分配课程设计题目而犯愁,Gangster老师老共有 N 名学生和 M 个可选的题目,根据这些学生平时的表现,Gangster 老师精确计算出了每名学生完成各个课程设计题目所需的时间,现 Gangster 老师要给每名学生分配一个题目,使得最快完成课程设计同学所需的时间与最慢完成课程设计同学所需的时间的差最小。
- 输入
- 第一行给出正整数 T(1<=T<=10 ),表示共有 T 组测试数据,每组测试数据,首先给出两个正整数 N(0<N<=200),M( 0<M<=10),接下来给出 N 行,每行包含 M 个正整数,第 i 行的第 j 个正整数代表第 i 名同学完成第 j 个课程设计所需的时间 p ( 0<=p<=1000 )。
- 输出
- 对于每组测试数据,单行输出最小差值。
- 样例输入
-
2
3 4
2 4 5 8
6 2 1 9
4 6 8 5
2 3
1 2 3
10 12 10 - 样例输出
-
1
7
感觉可以看成是贪心的一种,参考了别人的代码,顺便解释下#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
bool vis[];
struct Node
{
int x ,y;
}node[];
bool cmp(struct Node x ,struct Node y)
{
return x.x<y.x;
}
int solve(int n,int m)
{
int i,j ,temp,temp1, ans;
ans=;
for(i=;i<n;i++)
{
temp=;
memset(vis,false,sizeof(vis));
vis[node[i].y]=true; //每个数上都有标记
for(j=i;j<n;j++)
{
if(!vis[node[j].y])//如果该行还没有选
{
temp++; //选出一行
vis[node[j].y]=true;
if(temp==m) //如果正好够m个了,则拿最大的减去最小的,得到最小的
{
if((node[j].x-node[i].x)<ans)
{
ans=node[j].x-node[i].x;
}
break;
}
}
}
}
return ans;
}
int main()
{
int T ,n, m;
cin>>T;
while(T--)
{
cin>>n>>m;
int temp=;
for(int i=; i<=n; i++)
{
for(int j=;j<m;j++)
{
cin>>node[temp].x; //对所有的进行排序
node[temp++].y=i; //并标记所在的行
}
}
sort(node,node+temp,cmp); //对所有的进行排序
cout<<solve(temp,n)<<endl;
}
return ;
}
nyoj 504 课程设计的更多相关文章
- [课程设计]任务进度条&开发日志目录
任务进度条&开发日志目录 周期 时间 任务 Sprint One 11.14 ● Scrum团队分工及明确任务1.0 Sprint One 11.15 ● Scr ...
- 课程设计 --- 黑白棋中的 AI
原文链接:https://www.dreamwings.cn/reversi/3013.html 到了考试周了佯,可是偏偏这个时候迎来了很多很多的课程设计,幸好教授把C语言的课程设计提前发出了,不然都 ...
- Java课程设计——扫雷(winmine)
因为是我的课程设计,要是有冲突就不好了,转载注明出处!!! 程序很简单,毕竟我是搞acm的,我就只介绍一下闪光点. 中心空白搜索的时候,我用的DFS: 有一点是要注意的,就是JFrame不支持重画,还 ...
- [课程设计]Scrum 1.6 多鱼点餐系统开发进度
[课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4. ...
- [课程设计]Scrum 1.7 多鱼点餐系统开发进度
[课程设计]Scrum 1.7 多鱼点餐系统开发进度(点餐菜式内容添加及美化) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题 ...
- [课程设计]Scrum 1.3 多鱼点餐系统开发进度
[课程设计]Scrum 1.3 多鱼点餐系统开发进度 Scrum 1.3 多鱼点餐系统开发进度 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追 ...
- [课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐
[课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐 一.开发背景 多鱼点餐系统是一套比较系统化的针对餐厅点餐服务的产品,从顾客进入餐厅点餐到用餐结束再到最后的结账买单,需要全面的.高效的 ...
- [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复)
[课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4. ...
- [课程设计]Scrum 多鱼点餐系统(团队交流日)
[课程设计]Scrum 多鱼点餐系统(团队交流日) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统WEB ...
随机推荐
- iOS正則表達式(一)
什么是正則表達式? 正則表達式是对字符串操作的一种逻辑公式. 作用? 在iOS开发中我们通常使用正則表達式来匹配给定的字符串是否符合我们的业务逻辑,比方说用户注冊帐号仅仅能是手机号或者邮箱等.我们还能 ...
- eclipse 打包 apk 文件
1.通过eclipse中的file ,点击Import 导入项目 2.选择Android 中的 Existing Android Code Into Workspace 3.通过 Brower 引入项 ...
- python easy_install 发生Unable to find vcvarsall.bat错误的处理方法
用python安装mmseg分词包时发生了 Unable to find vcvarsall.bat 错误 Searching for mmseg Reading http://pypi.python ...
- 1、redis之安装与配置
下载安装: redis-server.exe redis服务器的daemon启动程序 redis.conf redis配置文件 redis-cli.exe redis命令行操作工具.当然,也可以用te ...
- java 加密工具(产生证书)
给Tomcat服务器应用加密: 命令:keytool -genkey -alias tomcat -keyalg RSA -genkey产生密钥对 -alias取得别名 -keyalg RSA产生密钥 ...
- java 在控制台上输入密码时,密码不显示在控制台上
用下面的方法可以实现在控制台上输入密码时,密码不显示在控制台上:Console cons=System.console(); System.out.print(" 密码:"); c ...
- 启动ip wizard时报the ip wizard does not support dhcp
启动ip wizard时报the ip wizard does not support dhcp 阅读:5502012-05-11 11:15 标签:loadrunner 打开ip wizard:开始 ...
- 在centos (linux) 搭建 eclipse c++开发分环境
网上说得很多,很烦,操作了很多,总有错误,但解决方案很简单.步骤就下面几步就OK了 安装gcc .g++ yum install gcc yum install gcc-c++ 安装jdk,配置jdk ...
- Linux下PHP5.5编译参数详解
一.配置参数 ./configure --prefix=/data/app/php --with-config-file-path=/etc --with-mysql=/usr\ --with-mys ...
- poj----2155 Matrix(二维树状数组第二类)
Matrix Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 16950 Accepted: 6369 Descripti ...