HNU 12988 It Can Be Arranged

2024-06-15 19:48
文章标签 hnu 12988 arranged

本文主要是介绍HNU 12988 It Can Be Arranged,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

HNU 12988      It Can Be Arranged

http://acm.hnu.cn/online/?action=problem&type=show&id=12988&courseid=0

n个课程      每个教室的容量是m个人  给出n个课程的开始和结束时间  以及上课的人数

给出n*n的矩阵  a(i,j)表示第i个课程之后 如果j课程也要使用该教室 就要花这么多的时间去打扫教室

求需要安排的最少的教室

第一感觉是跟在hdu上做的一题差不多 那个是餐厅来顾客吃饭  安排桌子的问题

写了一半感觉不对 因为第i个课程结束之后不知道要选取哪个课程的打扫时间

后来发现有人过了 就觉得应该是暴力过的 就试着 往后写了  后来就过了。。

总的来说还是觉得这题有点问题的 也许是数据太水了。。。没有给出想到的那种情况的数据

#include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <string.h>
#include <string>
#include <queue>#define eps 1e-8
#define op operator
#define MOD  10009
#define MAXN  100100#define FOR(i,a,b)  for(int i=a;i<=b;i++)
#define FOV(i,a,b)  for(int i=a;i>=b;i--)
#define REP(i,a,b)  for(int i=a;i<b;i++)
#define REV(i,a,b)  for(int i=a-1;i>=b;i--)
#define MEM(a,x)    memset(a,x,sizeof a)
#define ll __int64using namespace std;struct st
{int ti;int num;int order;int ct[110];//打扫时间bool operator <(const st p)const{return ti>p.ti;}
};//开始时间
st s[110];struct ft
{int ti;int num;int order;bool operator <(const ft p)const{return ti>p.ti;}
};//结束时间
ft f[110];priority_queue<st> q;
priority_queue<ft> p;int main()
{
//freopen("ceshi.txt","r",stdin);int tc;scanf("%d",&tc);int cs=1;while(tc--){int n,m;scanf("%d%d",&n,&m);int cnt=1;for(int i=1;i<=n;i++){int a,b,ss;scanf("%d%d%d",&a,&b,&ss);s[cnt].ti=a; s[cnt].num=ss; s[cnt].order=i;f[cnt].ti=b; f[cnt].num=-ss;f[cnt].order=i;p.push(f[cnt]);cnt++;}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){
//            if(i==j)  continue;int x;scanf("%d",&x);s[i].ct[j]=x;}q.push(s[i]);}st xx; ft yy;int mx=-1;int z=0;while(!q.empty()){xx=q.top();yy=p.top();int start=xx.ti;int finish=yy.ti;int k=xx.order;
//            cout<<"yy.order  "<<yy.order<<endl;
//            cout<<"kk  "<<k<<endl;
//            cout<<"s.ct[k]"<<s[yy.order].ct[k]<<"  finish  yy.order  "<<finish<<"  "<<yy.order<<endl;
//            cout<<"start "<<start<<endl;if((s[yy.order].ct[k]+finish)<start){
//                cout<<"zzzz"<<z<<endl;z+=(yy.num)/m;if(yy.num%m)  z++;p.pop();
//                cout<<"1111zzzz"<<z<<endl;
//                cout<<"num "<<yy.num<<endl;}else{z+=(xx.num)/m;if(xx.num%m)  z++;q.pop();
//                cout<<"2222zzzz"<<z<<endl;
//                cout<<"num "<<xx.num<<endl;}mx=max(mx,z);}while(!p.empty())  p.pop();printf("Case %d: %d\n",cs++,mx);}return 0;
}


这篇关于HNU 12988 It Can Be Arranged的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多

HNU-2023电路与电子学-实验1

写在前面: 这是电路与电子学课程的第一次实验,按照指导书的需求在Multisim软件搭建一个电路传感器模型,难度较小,细心完成就没有问题。 小tips:22级实验是采用上传到测试平台来进行功能检测,如果不通过则会打回修改后再重新提交,(我们那时候的评测系统特别特别慢,一次只能测一个同学,剩下同学就排队等着,久的时候甚至超过10个小时),这里列举一个常见的错误:热噪声有+号这端需要连接有源滤波器

随机算法 - HNU 13348 Finding Lines

Finding Lines Problem's Link:  http://acm.hnu.cn/online/?action=problem&type=show&id=13348&courseid=0   Mean:  给你平面上1e5个点,让你判断是否可以找到一条直线,使得p%的点都在这条直线上。 analyse: 经典的随机算法题。 每次随机出两个点,

HNU OS实验九

本内容针对湖南大学特色os实验前言 — os2024 lab 文档

HNU操作系统2023期中考试试卷及参考答案

本试题参考 @甘晴void 的CSDN博客【2.2】操作系统OS_甘晴void的博客-CSDN博客,本意为期中复习自用,答案在其基础上进行进一步完善,若有错误还请指正! 第一题:基础题(20分) 1.1(4分) 进程状态一共有多少个,是哪些?哪些状态只出现一次,哪些出现多次? 答: (1)进程状态一共有5种,分别为运行态、就绪态、阻塞态、创建态、终止态。 (2)其中,创建态、终止

hnu 12947 Absurdistan Roads

hnu 12947  网址  http://acm.hnu.cn/online/?action=problem&type=show&id=12947 给出n    和 n*n的矩阵  a(i,j)表示i 到j 的距离   然后求n条边 是的这个最短路成立 用求最小生成树的方法求出n-1条边 这n-1条边肯定是有用的  主要是如何求出第n条边 用floyd求出任意两点之间的最短距离

HNU-计算机体系结构-实验3-缓存一致性

计算机体系结构 实验3 计科210X 甘晴void 202108010XXX 文章目录 计算机体系结构 实验31 实验目的2 实验过程2.0 预备知识2.0.1 多cache一致性算法——监听法2.0.1.1 MSI协议2.0.1.2 MESI协议2.0.1.3 本题讲解 2.0.2 多cache一致性算法——目录法2.0.2.1 有中心的目录法2.0.2.2 本题讲解 2.1 ca

2024Spring> HNU-计算机系统-实验4-Buflab-导引+验收

前言 称不上导引了,因为验收已经结束了。主要是最近比较忙,在准备期末考试。周五晚上才开始看实验,自己跟着做了一遍实验,感觉难度还是比bomblab要低的,但是如果用心做的话对于栈帧的理解确实能上几个档次。 实验参考 这次我先上参考文献了,我主要还是在看A橙学长写的blog,然后参考了一些其它的blog。 由于我自己并没有花太多时间去做这个实验,我还是觉得看前辈们的博客会更方便理解一

HNU-算法设计与分析-作业6

第六次作业【分支限界法】 文章目录 第六次作业【分支限界法】<1> 算法实现题6-2 最小权顶点覆盖问题<2> 算法实现题6-6 n后问题<3> 算法实现题6-7 布线问题 <1> 算法实现题6-2 最小权顶点覆盖问题 ▲问题重述 问题描述: 给定一个赋权无向图 G=(V,E),每个顶点 v∈V 都有一个权值 w(v)。如果 U⊆VU⊆V,且对任意(u,v)∈E 有

HNU-算法设计与分析-作业2

第二次作业【分治算法】 文章目录 第二次作业【分治算法】<1>算法实现题 2-2 马的Hamilton周游路线问题<2> 算法实现题 2-3 半数集问题<3>算法实现题 2-6 排列的字典序问题<4> 算法实现题 2-7 集合划分问题 <1>算法实现题 2-2 马的Hamilton周游路线问题 ▲题目重述 8*8的国际象棋棋盘上的一只马,恰好走过除起点外的其他63个位