排座椅【贪心】

排座椅

题目描述

上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳。同学们在教室中坐成了M行N列,坐在第i行第j列

的同学的位置是(i,j),为了方便同学们进出,在教室中设置了K条横向的通道,L条纵向的通道。于是,聪明的小雪想到了一个办法,或许可以减少上课时学生交头接耳的问题:她打算重新摆放桌椅,改变同学们桌椅间通道的位置,因为如果一条通道隔开了两个会交头接耳的同学,那么他们就不会交头接耳了。

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

输入

输入文件seat.in的第一行,有5各用空格隔开的整数,分别是M,N,K,L,D(2<=N,M<=1000,0<=K接下来D行,每行有4个用空格隔开的整数,第i行的4个整数Xi,Yi,Pi,Qi,表示坐在位置(Xi,Yi)与(Pi,Qi)的两个同学会交头接耳(输入保证他们前后相邻或者左右相邻)。

输入数据保证最优方案的唯一性。

输出

输出文件seat.out共两行。

第一行包含K个整数,a1a2……aK,表示第a1行和a1+1行之间、第a2行和第a2+1行之间、…、第aK行和第aK+1行之间要开辟通道,其中ai< ai+1,每两个整数之间用空格隔开(行尾没有空格)。

第二行包含L个整数,b1b2……bk,表示第b1列和b1+1列之间、第b2列和第b2+1列之间、…、第bL列和第bL+1列之间要开辟通道,其中bi< bi+1,每两个整数之间用空格隔开(行尾没有空格)。

输入样例

4 5 1 2 3

4 2 4 3

2 3 3 3

2 5 2 4

输出样例

2

2 4

解题方法:

只要将所有话友(会交头接耳的同学)之间的线记录起来,求最多的再排序就行了

#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
int n,m,k,l,d,x,x1,x2,y1,y2,t,a[1001],b[1001],da[1001],db[1001],as[1001];//a和b分别记录行和列
int main()
{scanf("%d%d%d%d%d",&m,&n,&k,&l,&d);for (int i=1;i<=d;i++){scanf("%d%d%d%d",&x1,&y1,&x2,&y2);if (x1==x2){x=min(y1,y2);//记录他们之间的线a[x]++;}else {x=min(x1,x2);b[x]++;}}for (int i=1;i<=k;i++){t=0;for (int j=1;j<=m;j++)if ((b[j]>b[t])&&(!db[j]))//贪心,看看在哪的很走廊最优t=j;db[t]=1;as[i]=t;}sort(as+1,as+1+k);//同上for (int i=1;i<k;i++)printf("%d ",as[i]);printf("%d\n",as[k]);for (int i=1;i<=l;i++){t=0;for (int j=1;j<=n;j++)if ((a[j]>a[t])&&(!da[j]))//同上t=j;da[t]=1;as[i]=t;}sort(as+1,as+1+l);for (int i=1;i<l;i++)printf("%d ",as[i]);printf("%d",as[l]);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jzoj4016-圈地为王【状压,bfs,几何】

正题 题目链接:https://jzoj.net/senior/#contest/show/3011/1 题目大意 n∗mn*mn∗m的格子&#xff0c;格子之间有道路&#xff0c;对于每个iii就走过最短的回路使得 圈住iii个有价值的格子没有圈住任何一个坏格子 解题思路 判断一个点是否在一个多边形内&#xff0c;我们可…

12、play整合Akka

1、简介 Akka使用actor模型来提高抽象级别&#xff0c;并提供一个更好的平台来构建正确的并发和可扩展的应用程序。在容错方面&#xff0c;它采用了“Let it crash”的模式&#xff0c;这种模式在电信行业获得了巨大成功&#xff0c;用于构建永不停止的自我修复系统应用程序。…

codeforces National Property 2sat模板题

题目链接 每个字符只能取小写和大写两种情况&#xff0c;因此满足2-sat的要求。 我们从第2个word开始&#xff0c;与前一个word进行比较。比较的时候从word左边的字符开始&#xff0c;找到左起的第一个不相同的字符(位置为pos)。 1.如果word[i-1][pos]<word[i][pos]。 …

传球游戏【DP】

传球游戏传球游戏传球游戏 题目描述 上体育课的时候&#xff0c;小蛮的老师经常带着同学们一起做游戏。这次&#xff0c;老师带着同学们一起做传球游戏。 游戏规则是这样的&#xff1a;n个同学站成一个圆圈&#xff0c;其中的一个同学手里拿着一个球&#xff0c;当老师吹哨子…

ASP.NET Core 添加统一模型验证处理机制

一.前言模型验证自ASP.NET MVC便有提供&#xff0c;我们可以在Model(DTO)的属性上加上数据注解&#xff08;Data Annotations&#xff09;特性&#xff0c;在进入Action之前便会根据数据注解&#xff0c;来验证输入的数据是否合法&#xff0c;下面介绍以下如何统一处理验证并返…

jzoj4017-逃跑【0/1分数规划,线段树,dp】

正题 题目链接:https://jzoj.net/senior/#contest/show/3011/2 题目大意 n1n1n1个连续的地方&#xff0c;每个地方有(a,b,c)(a,b,c)(a,b,c)。 从000开始&#xff0c;每次往前选择一个不超过LLL的位置&#xff0c;跳到那里并选择中间不包括起点的位置中ccc最大的地方获取这个位…

13、play中实现信息国际化

目录 1、指定应用使用的语言 2、语言配置文件 3、在Controller中使用 4、在模板中使用 5、改变当前请求的语言 6、格式化信息 1、指定应用使用的语言 在conf/application.conf中进行配置&#xff1a; 这些语言标记将用于创建play.i18n.Lang实例。要访问应用程序支持的语…

重温基数排序

前几天沈阳现场赛遇到了一道题&#xff0c;其中的一部分不能用快排&#xff0c;只能用基数排序&#xff0c;当时不会写基数排序&#xff0c;gg&#xff0c;从银滑到了铜。。。。真是血的教训&#xff0c;现在再来回顾一下。 输入n个整数&#xff0c;最大的整数不超过6位&#…

2018年10月17日普级B组【模拟赛】

2018年10月17日普级B组模拟赛2018年10月17日普级B组模拟赛2018年10月17日普级B组模拟赛 第一题——ISBN号码第一题——ISBN号码第一题——ISBN号码 博客链接&#xff1a; https://blog.csdn.net/ssllyf/article/details/83212746 第二题——笨小猴第二题——笨小猴第二题——笨…

讨论过后而引发对EF 6.x和EF Core查询缓存的思考

前言最近将RabbitMQ正式封装引入到.NET Core 2.0项目当中&#xff0c;之前从未接触过这个高大上的东东跟着老大学习中&#xff0c;其中收获不少&#xff0c;本打算再看看RabbitMQ有时间写写&#xff0c;回来后和何镇汐大哥探讨了一点关于EF和EF Core的内容&#xff0c;于是乎本…

CF297E-Mystic Carvings【树状数组】

正题 题目链接:https://www.luogu.com.cn/problem/CF297E 题目大意 2∗n2*n2∗n个点的圆&#xff0c;nnn条圆上不交的弦&#xff0c;选择三条使得每条弦对应的弧上的点数量相等。 解题思路 就这5种情况&#xff0c;其中满足条件的是222和555&#xff0c;我们用容斥去掉1,3,41,…

14、使用play搭建一个web应用用例

目录 1、play下载 2、启动play项目 3、将项目导入到eclipse 4、play项目中前端开发 5、添加bootstrap ace页面模板 1、play下载 找到官网&#xff0c;直接下载即可 2、启动play项目 解压文件&#xff0c;进入到项目顶级目录 等一会&#xff0c;下载jar包&#xff0c;第一…

截取【二分】

截取 题目描述 给你N段线的长度&#xff0c;现在要你从他们上面切下K段来&#xff08;切下的不能合并&#xff09;&#xff0c;使得这K段长度相等&#xff0c;并且最大。如若求出的答案小于0.01&#xff0c;则认为无解&#xff0c;输出0.00。&#xff08;所有非整数都精确到了…

EF Core 2.0使用MsSql/Mysql实现DB First和Code First

环境Visual Studio 2017 最新版本的.NET Core 2.0 SDK最新版本的 Windows PowerShell开始搭建1、在 Visual Studio 2017 中创建新项目“文件”>“新建”>“项目”从左侧菜单中选择“已安装”>“模板”>“Visual C#”>“.NET Core”。选择“ASP.NET Core Web 应用…

jzoj4019-Path【dp】

正题 题目链接:https://jzoj.net/senior/#contest/show/3014/1 题目大意 n∗mn*mn∗m的格子&#xff0c;开始在(n,1)(n,1)(n,1)&#xff0c;每次可以右拐或者往前&#xff0c;不能走重复的和障碍&#xff0c;求有多少种方案到达(y,x)(y,x)(y,x) 解题思路 设fs,x1,y1,x2,y2f_{…

基于SSM+JBPM的智能化OA办公平台

目录 1、项目介绍 2、业务架构和技术架构 3、数据模型 4、界面展示 写在前面&#xff1a;如果有小伙伴儿想获取智能化OA办公平台管理系统的对应源码和数据表结构&#xff0c;可以关注博主然后给博主发私信哟。 1、项目介绍 本项目是一款智能化OA办公平台&#xff0c;其目的…

森近林之助【字符串处理】

森近林之助森近林之助森近林之助 题目大意 输入n个字符串&#xff0c;每一位总共要出现两个“1”&#xff0c;一个“0”&#xff0c;求最少要加多少个字符串才能满足条件 解题思路&#xff1a; 这题就是将每一位出现“1”和“0”的次数加在一起&#xff0c;看每一位缺多少个…

EFCore2.0@Xamarin.Forms

由于忙于Xamarin的书的创作很久没有和大家见面了&#xff0c;回到博客我会陆续更新一些最新的Xamarin技术&#xff0c;还有最近一直在努力的人工智能相关知识。话说csdn的博客改版了。总觉得变化是好事情啊。 这篇博客&#xff0c;我想和大家说说EFCore&#xff0c;在.NET…

jzoj4020-Revolution【网络流,最小割】

正题 题目链接:https://jzoj.net/senior/#contest/show/3014/2 题目大意 n∗mn*mn∗m的地方&#xff0c;每个地方有购买价格和收益&#xff0c;一个地方如果四周都被购买那么也可以获得这个地方的收益。 求收益-价格最大。 解题思路 考虑网络流&#xff0c;进行奇偶染色&…

1、mybatis是什么?为什么要用mybatis?

对于初学者&#xff0c;如果进行mybatis的学习呢&#xff1f;我总结了几点&#xff0c;会慢慢的更新出来。首先大家需要了解mybatis是什么、用mybatis来做什么、为什么要用mybatis、有什么优缺点&#xff1b;当知道了为什么的时候就开始了解如何用的问题&#xff0c;如何使用my…