【NOIP2008普及组复赛】 题2:排座椅

2024-05-13 07:44
文章标签 普及 座椅 noip2008 复赛

本文主要是介绍【NOIP2008普及组复赛】 题2:排座椅,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题2:排座椅

( s e a t . p a s / c / c p p ) (seat.pas/c/cpp) (seat.pas/c/cpp)

# 【题目描述】

上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的 D D D对同学上课时会交头接耳。同学们在教室中坐成了 M M M N N N列,坐在第i行第j列的同学的位置是( i , j i,j i,j),为了方便同学们进出,在教室中设置了 K K K条横向的通道, L L L条纵向的通道。于是,聪明的小雪想到了一个办法,或许可以减少上课时学生交头接耳的问题:她打算重新摆放桌椅,改变同学们桌椅间通道的位置,因为如果一条通道隔开了两个会交头接耳的同学,那么他们就不会交头接耳了。

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

# 【输入文件】

输入文件 s e a t . i n seat.in seat.in的第一行,有 5 5 5个用空格隔开的证书,分别是 M , N , K , L , D M,N,K,L,D M,N,K,L,D ( 2 ≤ N , M ≤ 1000 , 0 ≤ K < M , 0 ≤ L < N , D ≤ 2000 ) (2≤N,M≤1000,0≤K<M,0≤L<N,D≤2000) 2N,M1000,0K<M,0L<N,D2000

接下来 D D D行,每行有 4 4 4个用空格隔开的整数。第 i i i行的 4 4 4个证书 X i , Y i , P i , O i X_i,Y_i,P_i,O_i XiYiPiOi,表示坐在位置( X i , Y i X_i,Y_i XiYi)与( P i , O i P_i,O_i PiOi)的两个同学会交头接耳(输入保证他们前后相邻或者左右相邻)。

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

# 【输出文件】

输出文件 s e a t . o u seat.ou seat.ou共两行。

第一行包含 K K K个整数, a 1 , a 2 … … a k a_1,a_2……a_k a1,a2……ak,表示第 a 1 a_1 a1行和 a 1 + 1 a_1+1 a1+1行之间、第 a 2 a_2 a2行和第 a 2 + 1 a_2+1 a2+1行之间、…、第a_K
行和第 a K + 1 a_K+1 aK+1行之间要开辟通道,其中 a i < a i + 1 ai<ai+1 aiai+1,每两个整数之间用空格隔开(行尾没有空格)。

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

# 【输入样例1】 seat.in

4 5 1 2 3
4 2 4 3
2 3 3 3
2 5 2 4

# 【输出样例1】 seat.ou

2
2 4

【输入输出样例解释】

在这里插入图片描述
上图中用符号 ∗ 、※, + *、※,+ +标出了 3 3 3对会交头接耳的学生的位置,图中3条粗线的位置表示通道,图示的通道划分方案是唯一的最佳方案。

【代码如下】:

#include <bits/stdc++.h>
using namespace std;
int M, N, K, L, D;
int x, y, p, q;
typedef struct tagINT {int ID;int entity;
} INT;
INT l[1020], t[1020], temp;
void save(int x, int y, int p, int q) {if (x == p) {l[min(y, q)].entity++;return;} else {t[min(x, p)].entity++;return;}
}
int main() {cin >> M >> N >> K >> L >> D;for (int i = 0; i < D; i++) {cin >> x >> y >> p >> q;save(x, y, p, q);}for (int i = 1; i <= M; i++) l[i].ID = i;for (int i = 1; i <= N; i++) t[i].ID = i;for (int i = 1; i <= M; i++) {for (int j = i + 1; j <= M; j++) {if (t[i].entity < t[j].entity) swap(t[i], t[j]);}}for (int i = 1; i <= N; i++) {for (int j = i + 1; j <= N; j++) {if (l[i].entity < l[j].entity) swap(l[i], l[j]);}}for (int i = 1; i <= K; i++) {for (int j = i + 1; j <= K; j++) {if (t[i].ID > t[j].ID) swap(t[i], t[j]);}}for (int i = 1; i <= L; i++) {for (int j = i + 1; j <= L; j++) {if (l[i].ID > l[j].ID) swap(l[i], l[j]);}}for (int i = 1; i <= K; i++) {if (i > 1) cout << ' ';cout << t[i].ID;}cout << endl;for (int i = 1; i <= L; i++) {if (i > 1) cout << ' ';cout << l[i].ID;}
}

这篇关于【NOIP2008普及组复赛】 题2:排座椅的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/985090

相关文章

笔试强训,[NOIP2002普及组]过河卒牛客.游游的水果大礼包牛客.买卖股票的最好时机(二)二叉树非递归前序遍历

目录 [NOIP2002普及组]过河卒 牛客.游游的水果大礼包 牛客.买卖股票的最好时机(二) 二叉树非递归前序遍历 [NOIP2002普及组]过河卒 题里面给的提示很有用,那个马的关系,后面就注意,dp需要作为long的类型。 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息publ

百度之星 2015 复赛 1001 (数长方形)

数长方形    Accepts: 595    Submissions: 1225  Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description 小度熊喜欢玩木棒。一天他在玩木棒的时候,发现一些木棒会形成长方形

CSP-J/S 复赛程序提交指南,提交错误必爆零!!!

CSP-J/S 复赛题目程序需要以文件的形式提交,如果之前没有了解过,那肯定会爆0,该怎么操作呢? 大家好,我是大李。 针对复赛考试提交详情,这里做个详细介绍,分为文件的创建和文件体提交等事项。 一、关于文件建立 复赛考试时需要根据提示,在桌面建立文件夹,将含有文件体的cpp文件保存至桌面。 每一题的命名都需要根据提示来去命名。 以2023年CSP-J/S 第二轮为例 在电

信息学奥赛初赛天天练-83-NOIP2014普及组-基础题2-输入设备、输出设备、操作系统、二进制、整数除法、while、do while循环

1 NOIP 2014 普及组 基础题2 4 以下哪一种设备属于输出设备( ) A 扫描仪 B 键盘 C 鼠标 D 打印机 5 下列对操作系统功能的描述最为完整的是( ) A 负责外设与主机之间的信息交换 B 负责诊断机器的故障 C 控制和管理计算机系统的各种硬件和软件资源的使用 D 将没有程序编译成目标程序 11 下列各无符号十进制整数中,能用八位二进制表示的数中最大的是( ) A 296

免费SSL证书大全,加速普及网站实现HTTPS加密

免费SSL证书大全,加速普及网站实现HTTPS加密   SSL 证书用于加密 HTTP 协议,实现网站通过HTTPS加密协议访问。随着国内外各大网站实现全站 HTTPS 协议,以及搜索引擎对使用 HTTPS 协议网站的更加友好,加之互联网对数据和隐私安全的加强,网站添加 SSL 证书并实现 HTTPS 加密协议访问已经成为趋势和必然。 SSL证书大全​zzzjtd.com 而对于给网站添加

讨论运维监控工具的普及程度

在讨论运维监控工具的普及程度时,加入PIGOSS BSM产品的分析是非常有意义的,因为PIGOSS BSM是一款在中国市场具有一定影响力的运维监控工具。 PIGOSS BSM运维监控工具是一款综合性的IT运维监控解决方案,它能够对多层次的IT资源进行监测,包括但不限于性能监测、事件管理、报表管理等功能模块。PIGOSS BSM的一个独特之处在于其拓扑关联配置工具,这使得用户可以根据自身的I

P2239 [NOIP2014 普及组] 螺旋矩阵

P2239 [NOIP2014 普及组] 螺旋矩阵 50分 //O(n^2)复杂度,能算n<=10000的 #include <bits/stdc++.h>using namespace std;//row当前行, column当前列, left:左边界,righ:右边界,top:上边界,bottom:下边界 int n, x, y, ans, row=1, column=0, lef,

P1149 [NOIP2008 提高组] 火柴棒等式(一个比较有意思的题)

P1149 [NOIP2008 提高组] 火柴棒等式 #include <bits/stdc++.h>using namespace std;int n, ans, a[11111]={6, 2, 5, 5, 4, 5, 6, 3, 7, 6};bool vis[11111][11111];int main(){cin >> n;//计算每个数需要的火柴棒for(int i=10;

春节如何带奶娃自驾游?不要忘了儿童安全座椅

春节放假,除了合家团圆,有些平常难得有假的人免不了想出门旅游一趟。而现在,最流行的就是自驾游,特别是对那些带了小孩的年轻爸妈而言,带着大包小包一堆东西和一个嗷嗷待哺的娃去挤客车、火车,怎么想怎么觉得不方便。可是,小朋友毕竟不同于大人,要带他们出门,需要注意什么呢?   我有一次带婴儿(当时11个月)长时间(16天)去云南旅行的经历,而且这个春节还会带孩子(20个月)去海南耍15~16天。所

信息学奥赛初赛天天练-80-NOIP2015普及组-基础题5-错位排列、二叉树、完全二叉树、叶子节点、完全二叉树叶子节点

NOIP 2015 普及组 基础题5 21 重新排列 1234使得每一个数字都不在原来的位置上,一共有( )种排法 22 一棵结点数为 2015的二叉树最多有( )个叶子结点 2 相关知识点 1) 错位排列 考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排。 n个元素的错排数记为D(n) 错排问题最早被尼古拉·伯努利和欧拉研究