课程设计

时间限制:3000 ms  |  内存限制:65535 KB
难度:2
描述
新学期伊始,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 课程设计的更多相关文章

  1. [课程设计]任务进度条&开发日志目录

    任务进度条&开发日志目录 周期 时间 任务 Sprint One   11.14     ●  Scrum团队分工及明确任务1.0    Sprint One   11.15   ●  Scr ...

  2. 课程设计 --- 黑白棋中的 AI

    原文链接:https://www.dreamwings.cn/reversi/3013.html 到了考试周了佯,可是偏偏这个时候迎来了很多很多的课程设计,幸好教授把C语言的课程设计提前发出了,不然都 ...

  3. Java课程设计——扫雷(winmine)

    因为是我的课程设计,要是有冲突就不好了,转载注明出处!!! 程序很简单,毕竟我是搞acm的,我就只介绍一下闪光点. 中心空白搜索的时候,我用的DFS: 有一点是要注意的,就是JFrame不支持重画,还 ...

  4. [课程设计]Scrum 1.6 多鱼点餐系统开发进度

    [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4. ...

  5. [课程设计]Scrum 1.7 多鱼点餐系统开发进度

    [课程设计]Scrum 1.7 多鱼点餐系统开发进度(点餐菜式内容添加及美化) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题 ...

  6. [课程设计]Scrum 1.3 多鱼点餐系统开发进度

    [课程设计]Scrum 1.3 多鱼点餐系统开发进度   Scrum 1.3 多鱼点餐系统开发进度 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追 ...

  7. [课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐

    [课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐 一.开发背景 多鱼点餐系统是一套比较系统化的针对餐厅点餐服务的产品,从顾客进入餐厅点餐到用餐结束再到最后的结账买单,需要全面的.高效的 ...

  8. [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复)

    [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4. ...

  9. [课程设计]Scrum 多鱼点餐系统(团队交流日)

    [课程设计]Scrum  多鱼点餐系统(团队交流日) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统WEB ...

随机推荐

  1. windows命令:control命令

    Windows的命令列模式下有个非常好用的命令叫做Control.这个命令其实就是控制『控制台』的一个接口.你可以用这个命令直接叫起一些平常要找很久才会找到的窗口.最简单的一个例子,你只要在『开始』 ...

  2. 对opencv MeanShift 融合矩形框的改进

    OPENCV 中的代码改进.当然要依据自己的实际情况来,OPENCV 中行人检測有两种矩形框的融合算法.这里仅仅对meanshift 方法做改进 假设有更好的方法.希望能够跟我讲下. 对于去除重合部分 ...

  3. [Done][DUBBO] dubbo Thread pool is EXHAUSTED!

    异常信息: com.alibaba.dubbo.remoting.ExecutionException: class com.alibaba.dubbo.remoting.transport.disp ...

  4. JDK1.7的一些新特性

    整理了几条对开发可能用到概率高的 1.swicth支持对String的判断:(以前只能支持Int及以下的) switch (s) { case "1": break; case & ...

  5. 【asp.net Core 2.0 初步探索】

    首先下载 对应的SDK 和runtime https://www.microsoft.com/net/core#linuxubuntu           ---------当前为 1.1 稳定版本 ...

  6. eclipse cdt Program "make" not found in PATH

    eclipse cdt插件,开发c/c++程序,编译时报错Program "make" not found in PATH经查C:\MinGW\bin下确实无make.exe,有m ...

  7. linux 文件操作库函数

    fopen :打开文件 fread :读文件 fwrite : 写文件 fgetc : 读字符 fputc : 写字符 fscanf : 格式化读 fprintf : 格式化写 fseek : 文件偏 ...

  8. 1038. Recover the Smallest Number (30)

    题目链接:http://www.patest.cn/contests/pat-a-practise/1038 题目: 1038. Recover the Smallest Number (30) 时间 ...

  9. ubuntu(14.04) 安装ssh,并使用root用户登录

    1.apt-get install openssh-server 2.修改ssh的配置文件/etc/ssh/sshd_config 注释掉以前的:PermitRootLogin without-pas ...

  10. ceph 之recovery machhine

    一.概述 ceph recovery状态机的变化过程: