fjnu19级集训队第一次排位赛F - Petya's Exams题解(贪心+模拟)

fjnu19级集训队第一次排位赛F - Petya’s Exams题解(贪心+模拟)
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
题目大意:xx在n天内有m场考试,每场考试有一个公布考试的时间,考试时间,复习时间,在一天内xx只能做三件事:啥都不干,复习某一次考试,进行一次考试,而且一天只能做上述活动的一种,询问xx能否应对所有考试。
输入:n(天数),m(考试的次数),然后m行输入每场考试的公布时间,考试时间和需要复习的时间
输出:
不能应对所有考试,输出-1;
能应对考试有对于根据天数输出,如果该天休息,该天输出为0,如果该天考试,该天输出m+1,如果该天复习,该天输出复习的第几次考试。

解题思路:采用贪心的策略,让先考的先复习,后考的复习时间往后面推,如果先考的都没有复习完,就GAMEOVER了,小小的证明:如果先复习先考的都复习不完,则先复习后考的一定复习不完,将它换个意思就是:如果能复习完,则先复习先考的

#include<cstdio>
#include<algorithm>

using std::sort;

const int MAX_SIZE = 210;//习惯开大一点,开110就够了的,就是这么的稳健
int vis[MAX_SIZE];//记录每天干啥

struct node {
	int s, d, c,id;
}date[MAX_SIZE];

bool cmp(node a, node b) {
	return a.d < b.d;//每天只有一场考试,不怕撞车
}

int main() {
	int n, m;
	scanf("%d %d", &n, &m);
	for (int i = 1; i <= m; i++) {
		scanf("%d %d %d",&date[i].s,&date[i].d,&date[i].c);//和蔼可亲的输入输出
		date[i].id = i;//因为要排序,把第几次考试给记上
		vis[date[i].d] = m + 1;//先将考试那天给标记
	}
	sort(date + 1, date + 1 + m, cmp);//排序,越早考的排在越前面
	for (int i = 1; i <= m; i++) {
		for (int j = date[i].s; j < date[i].d; j++) {
			if (!vis[j]) {
				date[i].c--;
				vis[j] = date[i].id;//记录这天复习哪次考试
				if (date[i].c == 0) break;//复习的能够应付了就好了,跑跑跑,少复习就可以多休息,傻笑.jpg
			}
		}
	}
	for (int i = 1; i <= m; i++) {//循环检查是否有没复习完的
		if (date[i].c > 0) {
			printf("%d", -1);
			return 0;
		}
	}
	for (int i = 1; i <= n; i++) {
		if (i > 1) printf(" ");
		printf("%d", vis[i]);
	}
	return 0;
}//可喜可贺结束啦

第一次写题解,紧张.jpg,有错误的地方欢迎指出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好,以下是一个简单的使用HTML制作类似于"https://www.fjnu.edu.cn/main.htm"网页的示例代码: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>福建师范大学</title> </head> <body> <header> <h1>福建师范大学</h1> </header> <nav> <ul> <li><a href="#">首页</a></li> <li><a href="#">学校概况</a></li> <li><a href="#">新闻中心</a></li> <li><a href="#">招生就业</a></li> <li><a href="#">校园生活</a></li> <li><a href="#">教学科研</a></li> <li><a href="#">校友服务</a></li> </ul> </nav> <main> <article> <h2>学校简介</h2> <p>福建师范大学创建于1907年,是福建省人民政府与教育部共建高校。学校主要办学特色是师范教育和人文社会科学,具有百年办学历史和深厚的文化底蕴。</p> </article> <section> <h2>新闻动态</h2> <ul> <li><a href="#">福建师范大学2021年迎新工作启动</a></li> <li><a href="#">2021年福建师范大学教师招聘公告</a></li> <li><a href="#">福建师范大学2021年本科招生计划</a></li> </ul> </section> </main> <aside> <h2>联系我们</h2> <p>地址:福建省福州市闽侯县上街镇</p> <p>电话:0591-83442777</p> <p>邮箱:fjnu@fjnu.edu.cn</p> </aside> <footer> <p>© 2021 福建师范大学</p> </footer> </body> </html> ``` 在这个示例中,我们使用HTML5标记语言来创建网页。我们通过`<header>`元素来定义网页的标题,通过`<nav>`元素来定义网页的主要导航,通过`<main>`元素来定义网页的主要内容,通过`<aside>`元素来定义网页的侧边栏内容,通过`<footer>`元素来定义网页的页脚。在`<main>`元素中,我们使用`<article>`元素来定义学校简介部分的内容,使用`<section>`元素来定义新闻动态部分的内容。网页的样式和布局可以通过CSS来实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值