题目描述
上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳。

同学们在教室中坐成了MM行NN列,坐在第i行第j列的同学的位置是(i,j)(i,j),为了方便同学们进出,在教室中设置了KK条横向的通道,LL条纵向的通道。

于是,聪明的小雪想到了一个办法,或许可以减少上课时学生交头接耳的问题:她打算重新摆放桌椅,改变同学们桌椅间通道的位置,因为如果一条通道隔开了22个会交头接耳的同学,那么他们就不会交头接耳了。

请你帮忙给小雪编写一个程序,给出最好的通道划分方案。在该方案下,上课时交头接耳的学生的对数最少。

输入输出格式

输入输出样例
输入样例#1:
4 5 1 2 3
4 2 4 3
2 3 3 3
2 5 2 4
输出样例#1:
2
2 4

上图中用符号*、※、+标出了33对会交头接耳的学生的位置,图中33条粗线的位置表示通道,图示的通道划分方案是唯一的最佳方案。

2008年普及组第二题
/*
这题我Wrong了好几次,原因是我没有考虑清楚,只写了一个cmp:

bool cmp(stu x,stu y)
{if(x.num == y.num)return x.ans < y.ans;//ans为需要输出的序号return x.num > y.num;//num为可以拆开的对数
}

只写一个cmp是不够的,因为输出是按序号从小到大排序的,按我上面的写法只保证了num大的序号在前面,不一定此时ans是小的,不能保证ans从小到大输出!!!
正确写法,需要些两个cmp:

bool cmp(stu x,stu y)
{return x.num > y.num;
}
bool cmp1(stu x,stu y)
{return x.ans < y.ans;
}

*/
AC_code:

#include <iostream>
#include <algorithm>
using namespace std;
struct stu
{int ans;int num;
} a[1005],b[1005];
bool cmp(stu x,stu y)
{return x.num > y.num;
}
bool cmp1(stu x,stu y)
{return x.ans < y.ans;
}
int main()
{int M,N,K,L,D;cin>>M>>N>>K>>L>>D;int x,y,p,q,aim;for(int i = 1; i <= D; i++){cin>>x>>y>>p>>q;if(x == p){aim = min(y,q);a[aim].num++;a[aim].ans = aim;}else{aim = min(x,p);b[aim].num++;b[aim].ans = aim;}}if(K){sort(b,b+M,cmp);sort(b,b+K,cmp1);cout<<b[0].ans;for(int i = 1; i < K; i++){cout<<" "<<b[i].ans;}cout<<endl;}if(L){sort(a,a+N,cmp);sort(a,a+L,cmp1);cout<<a[0].ans;for(int i = 1; i < L; i++){cout<<" "<<a[i].ans;}cout<<endl;}return 0;
}

P1056 排座椅(模拟)相关推荐

  1. 【贪心】P1056 排座椅

    https://www.luogu.com.cn/problem/P1056 考点:贪心.排序 题意: 有M行N列的格子,D只长度为2的虫子(可横可竖),横向纵向分别可以切K,L刀,问怎样切可以切死最 ...

  2. 洛谷P1056 排座椅

    题目描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳. 同 ...

  3. 洛谷——P1056 排座椅

    题目描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳. 同 ...

  4. GMOJ - 2021.07.20【普及组】模拟赛C组 - 排座椅(seat)、传球游戏(ball)、立体图(drawing)、间谍派遣、seek

    文章目录 luogu博客链接 GMOJ - 2021.07.20[普及组]模拟赛C组 - 排座椅(seat).传球游戏(ball).立体图(drawing).间谍派遣.seek T1 排座椅(seat ...

  5. 【NOIP普及组】2016模拟考试(10.29)——排座椅

    问题 B: 排座椅(seat.cpp) 时间限制: 1 Sec  内存限制: 64 MB 题目描述 上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发 ...

  6. 洛谷1056 排座椅 解题报告

    洛谷1056 排座椅 本题地址: http://www.luogu.org/problem/show?pid=1056 题目描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头 ...

  7. 普及组2008NOIP 排座椅(贪心+排序)

    排座椅 时间限制: 1 Sec  内存限制: 50 MB 提交: 4  解决: 3 [提交][状态][讨论版][命题人:外部导入] 题目描述 上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班 ...

  8. [NOIP2008]排座椅

    题目: [NOIP2008]排座椅 ,哈哈,我们今天来看一道稍微复杂一点贪心算法的题嘛,这是选自NOIP普及组上的一道题,好了,我们一起来看看题意吧: 题目描述是复制的,可能有部分显示不对,我就把题目 ...

  9. 排座椅(洛谷-P1056)

    题目描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳.同学 ...

最新文章

  1. spark源码解析之基本概念
  2. 成功解决UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xd3 in position 238: invalid continuation b
  3. (转)刘汝佳书上出现的一些题目
  4. c语言6大设计原则 控制反转,fun6868备用网址-fun6868备用网址
  5. Centos7把一个文件复制到另外一台服务器上的scp命令
  6. tc35i pdu message format
  7. 修改yapf中的列宽限制值
  8. js html form,JavaScript 表单
  9. EIGRP单边邻居——认证
  10. 【转】Java中的static关键字解析
  11. 网易云镜像仓库选择镜像
  12. 十大领域管理软件供应商入选厂商如下(排名不分先后)
  13. 计算机窗口保护颜色,如何设置电脑保护色,教你设置电脑保护色
  14. ubuntu下海信Hisense E920 usb连接不上的处理与adb的连接
  15. 分享一个通过项目管理师证书成功办理北京户口的励志经验
  16. 扫描仪显示计算机繁忙或故障,为什么我的兄弟打印机每次扫描图像文件总是显示连接计算机,但是电脑就没有弹出那个框让我选择?请求高手...
  17. 王者荣耀上官婉儿的语录
  18. 题目选自《第八届图灵杯》-------买花
  19. 公网远程访问连接Minecraft我的世界服务器 - MCSM控制面板
  20. MT7628路由器工作原理,MT7628处理器相关参数介绍

热门文章

  1. pythoncgi模块文档_python使用cgi模块处理表单
  2. PHP语言弹窗图片,PHP_php中随机显示图片的函数代码,例如博客的展示窗 复制代码...
  3. mysql2008安装中文_Microsoft SQL Server 2008 R2 中文安装说明
  4. layui 数据表格下拉框_layui-table-column-select(layui数据表格可搜索下拉框select)
  5. 张迈机器人_财会类专业建设改革千人高峰论坛圆满召开!
  6. PyTorch教程(一):张量数据类型
  7. 一行代码让matplotlib图表变高大上
  8. 百道Python面试题实现,搞定Python编程就靠它
  9. 我是如何用10行代码搬运目标图片的?
  10. 试用c51语言采样连续5次异常_浙江省动态血压监测操作及诊断规范(试用版)