博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CF刷题-Codeforces Round #481-G. Petya's Exams
阅读量:6251 次
发布时间:2019-06-22

本文共 1116 字,大约阅读时间需要 3 分钟。

题目链接:https://codeforces.com/contest/978/problem/G

题目大意:n天m门考试,每门考试给定三个条件,分别为:1、可以开始复习的日期。2、考试日期。3、必须要复习的时间。根据以上条件,给出每天的安排,每天可以做三件事:1、考试。2、复习。3、休息

题解:先假设每天都在休息,然后依次填东西,策略是最先考试的最先复习

AC代码:

#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;typedef long long ll;typedef unsigned long long ull;const int N = 100+5;struct exam{ int b; int s; int d; int c;}e[N];bool cmp(exam& a,exam& b){ return a.d < b.d;}int ans[N];int main(void){ int n,m; memset(ans,0,sizeof(ans)); scanf("%d%d",&n,&m); for(int i = 1;i <= m;i++){ scanf("%d%d%d",&e[i].s,&e[i].d,&e[i].c); e[i].b = i; } sort(e+1,e+m+1,cmp); int ok = 1; for(int i = 1;i<=m;i++){ if(ok){ for(int j=e[i].s;;j++){ if(j == e[i].d && e[i].c != 0){ ok = 0; printf("-1"); break; } if(e[i].c == 0){ ans[e[i].d] = m+1; break; } if(ans[j] == 0){ ans[j] = e[i].b; e[i].c--; } } } } if(ok){ for(int i = 1;i<=n;i++){ printf("%d",ans[i]); if(i != n){ printf(" "); } } } return 0;}

 

转载于:https://www.cnblogs.com/doubest/p/10190863.html

你可能感兴趣的文章
指尖下的js —— 多触式web前端开发之三:处理复杂手势(转)
查看>>
spring boot项目配置文件集合
查看>>
cube-ui的用法
查看>>
2015.4.21 SetWindowPos函数用法
查看>>
2011-12-14 调用cmd并获得输入输出+网络访问
查看>>
解决nim db_mysql could not load: libmysql.dll的问题
查看>>
JavaScript之再谈回调与闭包
查看>>
优化PHP代码的一些建议
查看>>
android学习网站
查看>>
TCP定时器详解
查看>>
if判断,switch语句
查看>>
postgresql中字段为空的查询
查看>>
Arduino入门之前
查看>>
JavaWeb学习----JSP简介及入门(含Eclipse for Java EE及Tomcat的配置)
查看>>
zoj 1904 Beavergnaw 计算圆柱和圆台的体积
查看>>
整理了一份招PHP高级工程师的面试题(转)
查看>>
Document对象中的一些重要的属性和方法(笔记)
查看>>
学习Raft算法的笔记
查看>>
[LeetCode]题解(python):053-Maximum Subarray
查看>>
SharePoint中的用户信息和检索的有关知识
查看>>