L - Working Plan (贪心) 2018-2019 ACM-ICPC, Asia Seoul Regional Contest

news/2024/5/9 9:49:09/文章来源:https://blog.csdn.net/qq_41645482/article/details/89133063

题目大意:

       给m个人,和n天,然后再给一个人连续工作的天数w,和他工作w天之后要休息h天才能再次开始w天的工作。

       给出m个人一共要工作的天数,和n天每天的工作天数,求是否有可行解。

       说白了,就是给一个n*m的矩阵,然后起初全是0,往里边填1,对于每个人填1只能连着w个一起填,然后休息h天后才能再填。问是否有可行解。

    题目思路:

         首先这题需要SPJ,本题细节超多,先要处理出来每天有多少个人需要在这天开始工作也就是代码中的st数组(被样例迷惑就按2算了,无情WA test 1),然后每次安排人要优先安排当前需要工作天数最多的人,比如样例第一天需要安排1个人开始,那么这一天给3号。但是问题来了,怎么处理他h天之后再次开始工作。仔(糊)细(思)思(乱)考(想)之后很容易想到用两个队列一个工作队列一个休息队列。

      (这很像CF div2 533的D题   传送门:https://blog.csdn.net/qq_41645482/article/details/88145658)。

         队列元素是结构体类型,需要每个人的id号,每个人的当前去要工作天数cnt,还有这个人下次开始的工作时间next。

      一个优先队列就是工作队列用来存当前可安排工作的需要天数最大的人,然后安排他这一天之后马上入下一个休息队列。

我们用一层循环遍历天数。然后立即查询休息队列中有没有可以回工作队列的也就是说结束休息可以再次开始工作。然后立即入工作队列。再查看当前工作天数是否有足够的人能安排工作,不能就安排不了。能够安排的话就取出工作队列的队首然后修改next和cnt,如果cnt!=0入休息队列。最后判断是否两个队列全空。vector存答案。

代码:

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<queue>
#include<vector>
#include<stack>
#define ll long long
using namespace std;
const ll MAXN=2005;
vector<int>v[MAXN];
int day[MAXN],per[MAXN],st[MAXN];
struct Point
{int id,cnt,next;Point(int i,int c,int n){id=i;cnt=c;next=n;}bool operator < (const Point& r)const{return cnt<r.cnt;}
};
int main()
{int m,n,w,h;priority_queue<Point>q;queue<Point>q1;cin>>m>>n>>w>>h;for(int i=1;i<=m;i++){cin>>day[i];}st[0]=0;for(int i=1;i<=n;i++){cin>>per[i];st[i]=per[i];}for(int i=1;i<=n;i++){for(int j=i+1;j<=i+w-1;j++){st[j]-=st[i];}}bool f=1;for(int i=1;i<=m;i++){q.push(Point(i,day[i],1));}for(int i=1;i<=n;i++){while(q1.size()&&q1.front().next==i){Point now=q1.front();q1.pop();q.push(now);}while(st[i]--){if(q.size()==0){f=0;break;}Point now=q.top();q.pop();if(i+w-1>n){f=0;break;}v[now.id].push_back(i);now.next=i+w+h;now.cnt-=w;if(now.cnt!=0)q1.push(now);}}if(q.size()||q1.size())f=0;if(f)cout<<1<<endl;else {cout<<-1<<endl;return 0;}for(int i=1;i<=m;i++){int len=v[i].size();for(int j=0;j<len;j++){printf("%d%c",v[i][j],(j==len-1)?'\n':' ');}}
}

 

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

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

相关文章

查看一个网站后台是用的什么服务器

为什么80%的码农都做不了架构师&#xff1f;>>> 本文出自 “腾飞工作室” 博客&#xff0c;请务必保留此出处 http://www.cnblogs.com/tfgzs/p/5763623.html 转载于:https://my.oschina.net/u/1427693/blog/734442

IT运维常用工具网站收录

一、查询终端互联网出口IP地址&#xff1a;1、window可以通过浏览器访问网站&#xff1a;http://www.cip.cc/http://myip.ipip.net/http://ip138.com2、Linux可以通过命令查询#curl myip.ipip.net#curl cip.cc 二、知名端口查询http://www.imfirewall.com/ip-mac-lookup/ 通过网…

深圳网站优化:网站上线前要做哪些准备?

随着搜索引擎的普及&#xff0c;越来越多的人通过搜索引擎进行学习&#xff0c;学习网站搭建也已经不算什么难事&#xff0c;但是有很多朋友网站还没完善好就匆匆将网站上线&#xff0c;导致搜索引擎对网站的评分大大降低&#xff0c;甚至因为网站上线后经常改动&#xff0c;导…

Web 性能优化: 图片优化让网站大小减少 62%

这是 Web 性能优化的第二篇&#xff0c;上一篇在下面看点击查看&#xff1a; Web 性能优化&#xff1a; 使用 Webpack 分离数据的正确方法图像是web上提供的最基本的内容类型之一。他们说一张图片胜过千言万语。但是如果你不小心的话&#xff0c;图片大小有时高达几十兆。 因此…

如何使子网站拥有独立的权限设置

那么如果我们在创建子网站的时候并没有做出选择&#xff0c;选择的是默认的“使用与父网站相同的权限”&#xff0c;是否可以在子网站创建后进行修改呢&#xff1f;答案当然是可以的。我们先进入到子网站中&#xff0c;点击“网站操作”&#xff0c;选择“网站设置”。点击“用…

WordPress建站指南

前言&#xff1a;WordPress是我所见的博客服务程序中最好的了&#xff0c;可以灵活配置出令人难以置信的华丽界面&#xff0c;以及很多新奇有趣的功能&#xff0c;在享受新奇乐趣的同时&#xff0c;学习和分享&#xff0c;实在是人生一大快事。有图有真相&#xff0c;附上我的W…

php管理系统申请著作权,php管理系统申请著作权-我有一套PHP源码系统,想修改网站底部版权信息,可......

用thinkphp开发的程序可以应用于版权吗下载一个TP项目&#xff0c;它有一个README.md文件。你可以打开看看。如果你还不知道如何搜索Apache2协议。您可以使用此框架进行二次开发&#xff0c;并为新项目申请版权版本&#xff0c;但前提是您必须保留TP框架的Apache2声明协议&…

spring data jpa从入门到精通_SpringBoot入门建站全系列(三)Mybatis操作数据库

SpringBoot入门建站全系列&#xff08;三&#xff09;Mybatis操作数据库SpringBoot操作数据库有多种方式&#xff0c;如JDBC直接操作: 玩法太古老了&#xff0c;而且难免会忘记关闭连接。没人愿意这样玩Mybatis插件&#xff1a;比较时髦&#xff0c;比较适合sql复杂&#xff0c…

为什么百度可以抓取html,百度蜘蛛抓取规律和原理(揭秘百度是如何抓取你网站的)...

经常听到站长们问&#xff0c;那怎么才能识别正确的百度蜘蛛呢&#xff1f;来来来&#xff0c;只需两步&#xff0c;教你正确识别百度蜘蛛1、查看UA&#xff0c;如果UA都不对&#xff0c;可以直接判断非百度搜索的蜘蛛&#xff0c;目前对外公布过的UA是&#xff1a;移动UA:Mozi…

seo从入门到精通_DEDE新手教程,织梦建站教程(快速入门)

大家好&#xff0c;欢迎收看小郑seo《织梦建站入门到精通》系列教程。很多seo小白在开始学习建站时都会问一个问题&#xff0c;我不会编程&#xff0c;能建站吗?可以的&#xff0c;用网站cms系统就可以快速建设网站。而现在国内使用最多的网站CMS系统&#xff0c;就是接下来我…

安卓app和iosapp开发有什么不同呢?-综合外链_我的网站收录有很多为什么没排名?怎么办办解决...

前言&#xff1a;收录和排名是两座大山&#xff0c;但如果已经收录了&#xff0c;还是没有排名怎么办呢?优优蜘蛛池付费群中的小伙伴对这块的内容非常感兴趣&#xff0c;粉丝嘛&#xff0c;肯定是要宠的。内容大纲&#xff1a;选词原因搜索引擎缓存原因用户体验问题被归入低级…

迪奥官方网站

2019独角兽企业重金招聘Python工程师标准>>> 迪奥官方网站( http://www.kguowai.com/html/198.html)一直是炫丽的高级女装的代名词。他继承着法国高级女装的传统&#xff0c;始终保持高级华丽的设计路线&#xff0c;做工精细&#xff0c;迎合上流社会成熟女性的审美…

从零开始建站-2

为什么80%的码农都做不了架构师&#xff1f;>>> 前面以为搭建的差不多了&#xff0c;结果后面出现些问题&#xff0c;继续罗列在这里:) 1、如何调试php代码&#xff1f; 修改/etc/php.ini&#xff0c;使 display_errors On 和 error_reporting E_ALL&#xff0…

基于django的视频点播网站开发-step4-首页功能

在本讲中&#xff0c;我们开始首页功能的开发&#xff0c;在开发过程中&#xff0c;大家将会学习到Django中的通用视图类、分页对象paginator以及foreignKey外键的使用。 效果演示 整体功能 大家可先通过 网站演示地址 浏览一下首页的效果。我们首页呢&#xff0c;比较简洁大方…

koken html5网站建设CMS软件

2019独角兽企业重金招聘Python工程师标准>>> koken&#xff0c;你的自图片说明网站的最佳选择&#xff01; See more Library features 图文混排的最佳选择&#xff1b; 在线设置实时预览&#xff0c;所见&#xff0c;即所得 See more Site features …

php 获取微信头像昵称,网站获取微信头像昵称 | 忆云竹

摘要php网站获取微信头像昵称等信息的方法有时网站需要获取用户微信头像用以显示但是微信头像等信息的获取需要用户的同意&#xff0c;也就不像QQ头像那么容易获取教程首先获取授权index.php (授权页面)window.location.href"https://open.weixin.qq.com/connect/oauth2/…

Office 365管理员指引 19——Sharepoint 网站快速访问链接

a) 在部门网站中&#xff0c;上排有一行显示平行的子页面&#xff0c;左侧有一列显示该网站的功能区b) 点击编辑链接即可快速新增或删除链接转载于:https://blog.51cto.com/johnnytang/1721191

为 Drupal 7 网站添加自定义CSS

当我们在逛聊天室或者论坛时&#xff0c;经常会碰到有人提问怎么向 Drupal 网站中添加自定义CSS —— 通常来讲&#xff0c;通过 Drupal 主题来进行添加最好。不过在某些情况下&#xff0c;因为环境限制或网站管理员没有访问主题文件的权限&#xff0c;而不得不考虑其它办法。今…

zencart隐藏网站统计代码

如何给网站添加统计代码&#xff0c;我想基本很多人都会的。那么如何隐藏统计代码呢&#xff1f; 看下面的代码&#xff1a; </div> <div style"display:none;"> <script src"http://s22.cnzz.com/stat.php?id4130248&web_id4130248&sh…

Github入门(二)添加一个静态网站并更新仓库

Github入门&#xff08;二&#xff09;添加一个静态网站并更新仓库 原理介绍&#xff1a;SpringBoot 项目中的web资源在src/main/resources下的文件夹static和templates 中。static 中放静态页面&#xff08;*.html&#xff09;和资源(图片等)&#xff0c;templates 中放动态页…