EOJ 3263:丽娃河的狼人传说

2023-11-10 11:21
文章标签 eoj 3263 传说 丽娃河

本文主要是介绍EOJ 3263:丽娃河的狼人传说,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


丽娃河的狼人传说

Time limit per test: 1.0 seconds

Time limit all tests: 1.0 seconds

Memory limit: 256 megabytes

丽娃河是华师大著名的风景线。但由于学校财政紧缺,丽娃河边的路灯年久失修,一到晚上就会出现走在河边要打着手电的情况,不仅非常不方便,而且影响安全:已经发生了大大小小的事故多起。

方便起见,丽娃河可以看成是从  1  到  n  的一条数轴。为了美观,路灯只能安装在整数点上,每个整数点只能安装一盏路灯。经专业勘测,有  m  个区间特别容易发生事故,所以至少要安装一定数量的路灯,

请问至少还要安装多少路灯。

Input

第一行一个整数  T   (1T300) ,表示测试数据组数。

对于每组数据:

  • 第一行三个整数  n,m,k   (1n103,1m103,1kn)

  • 第二行  k  个不同的整数用空格隔开,表示这些位置一开始就有路灯。

  • 接下来  m  行表示约束条件。第  i  行三个整数  li,ri,ti  表示:第  i  个区间  [li,ri]  至少要安装  ti  盏路灯  (1lirin,1tin)

Output

对于每组数据,输出 Case x: y。其中 x 表示测试数据编号(从 1 开始),y 表示至少要安装的路灯数目。如果无解,y 为  1

Examples

input
3
5 1 3
1 3 5
2 3 2
5 2 3
1 3 5
2 3 2
3 5 3
5 2 3
1 3 5
2 3 2
4 5 1
output
Case 1: 1
Case 2: 2
Case 3: 1
题目意思:

给出一个区间1~N,然后给出K个点,代表这K个点初始就有路灯,M代表给出M个区间,要求在相应区间安装至少一定数量的灯。

官方题解:

F. 丽娃河的狼人传说

按右端点排序,然后对于不满足条件的尽量往右垒就好了。贪心的证明:由于左边的都已经垒满了,所以垒左边的肯定是没意义的。垒中间肯定没有垒右边的号,因为右边的区间不可能长得断开,使得垒在左边收益更大。这样就可以实现  O(n2)

本题虽然不作要求,但是可以做到  O(nlog2n) ,用线段树维护,不符合条件可能需要二分。具体细节留给读者思考。

做题的时候给人最大的困难是不知道当在一个区间加灯的时候加在哪里比较好,题解给出的方法就是按照区间右端点排序,

然后每次加灯的时候往右侧加,可以想象当两个区间相交的时候,在最靠近右侧垒上灯后,则它后一个区间的左侧也尽可能

多得垒上了灯,则在下一个区间加灯的时候,就可以少加一些。

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>using namespace std;const int maxn = 1005;
int N,M,K;        ///N区间范围,M安灯的区间个数,K有K个位置初始有灯
int light[maxn];
struct area
{int left;    ///左边界int right;   ///右边界int num;     ///区间要求至少安灯的数量
}a[maxn];
bool cmp(struct area a1,struct area a2)
{if(a1.right == a2.right)return a1.left < a2.left;else return a1.right<a2.right;
}
int main()
{int T,temp,i,j;int Case = 0;scanf("%d",&T);while(T--){scanf("%d%d%d",&N,&M,&K);memset(light,0,sizeof(light));   ///将light刷成0,代表每个点都没有安装灯for(i = 0; i < K; i++){scanf("%d",&temp);light[temp] = 1;            ///代表temp位置已经有灯}for(i = 0; i < M; i++){scanf("%d%d%d",&a[i].left,&a[i].right,&a[i].num);}sort(a,a+M,cmp);int ans = 0;int rest;bool flag = true;int cnt;for(i = 0; i < M; i++){int l = a[i].left;int r = a[i].right;if(a[i].num > r-l+1)  ///如果区间至少安灯数比区间长度大{flag = false;break;}cnt = 0;for(j = l; j <= r; j++)  ///统计区间已经安装的灯的数目{if(light[j])cnt++;}if(cnt < a[i].num){rest = a[i].num - cnt;   ///安装剩余的灯ans += rest;for(j = r; j>=l&&rest>0; j--){if(light[j]==0){light[j] = 1;rest--;}}}}if(flag)printf("Case %d: %d\n",++Case,ans);elseprintf("Case %d: -1\n",++Case);}return 0;
}


这篇关于EOJ 3263:丽娃河的狼人传说的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

墨兰:花语寓意、神秘传说与独特魅力全解析

在繁花似锦的植物世界中,墨兰宛如一位优雅的隐士,静静地散发着独特的魅力。它那婀娜的身姿和淡雅的芬芳,仿佛在诉说着一个个古老而神秘的故事。当我们凝视着墨兰,不禁会被它那独特的气质所吸引,想要探寻它背后隐藏的花语深意以及那些流传千古的动人传说。 接下来,让我们一同走进墨兰的奇妙世界,去揭开它那神秘的面纱。 一、墨兰的花语与寓意 墨兰的花语丰富多样,象征着娴静、青春永驻、高雅淡泊等美好品质

探秘半枝莲:花语寓意深解、传奇传说追溯与卓越功效展现

在大自然的神秘宝藏中,有一种看似平凡却蕴含着无尽魅力的植物——半枝莲。它那娇小而鲜艳的花朵,仿佛是大自然精心雕琢的艺术品,散发着独特的魅力。当我们深入探寻半枝莲的世界时,会惊喜地发现它不仅有着迷人的花语寓意和传奇的传说故事,更有着令人瞩目的功效。那么,现在就让我们一同踏上这场关于半枝莲的奇妙之旅吧。 一、半枝莲的概述 半枝莲为唇形科黄芩属多年生草本植物。它的别名众多,如并头草、牙刷草、

探秘忽地笑:独特花语、神秘传说与丰富价值全解析

在神秘的植物王国中,有那么一种独特的存在 —— 忽地笑。它宛如一个隐藏着无数秘密的神秘精灵,悄然绽放在人迹罕至之处,散发着一种独特而又难以捉摸的气息。当你第一次听闻它的名字时,或许会被这奇特的称呼所吸引,心中涌起无限的好奇。而当你深入去了解它时,便会发现它背后所蕴含的花语和传说,如同一个深邃的漩涡,将你卷入一个充满奇幻色彩的世界。 接下来,让我们一同踏上探寻忽地笑神秘世界的奇妙之旅。 一、忽地

白酒起源传说(三)——仪狄造酒说

在古代文献中,仪狄被记载为酿酒的始祖,这一创造更是与传说中的帝王夏禹相联系。据《吕氏春秋》记载:“仪狄作酒”。而在汉代刘向编纂的《战国策》中,也有着关于仪狄酿酒的故事。在这些古典文字里,仪狄被描述为一个致力于酿造美酒的人,他甚至将自己的酒献给了当时的君王夏禹。 故事中,仪狄将自酿的美酒呈现给夏禹,希望获得其赞赏。夏禹品尝之后,确实对酒的味道表示喜爱。然而,作为一位明智的君王,夏禹很快意识到酒精带

这就是传说中的能治疗说谎的果子

扫清了妖洞的吃饭 今天的扫清了妖洞的吃饭,妈心想,这就是传说中的能治疗说谎的果子,游泳可高兴了,她在吃树上最后一颗果子的时候,人们在那挑水,倍受瞩目的陶瓷女排姑娘们的辉煌之路,他们用神珠拯救了大森林,有一只小蚂蚁老爱说谎话,小蚂蚁爱说谎的坏习惯终于改正了。 如果我能让我的孩子不再说谎该多好阿,只见小猫怒眼圆睁也杀了进来,她们走得太艰难了,卫冕之路,她被一个人扔到了森林里,哦,她一看,我是树上

IOS学习之ActionSheet,传说中的popWindow(三)

这夏天来的太快,还没来的急去世界去看看,算了,在这看吧,每天的大白腿看的我也是心花怒放啊,看我的晚上无心撸码了。言归正传,必须得学习了,得像群里的大神看起了,什么(郭神了,泓洋神了,反正都是神),看见他们,我都觉得的自己。。。。。。这个控件使用频率比较高! 好简单: //// MyActionSheet.m// MyActionSheet//// Created by

磁带存储:“不老的传说”依然在继续

现在是一个数据指数增长的时代,根据IDC数据预测,2025年全世界将产生175ZB的数据。 这里面大部分数据是不需要存储的,在2025预计每年需要存储11ZB的数据。换算个容易理解的说法,1ZB是10^18Bytes, 相当于要写5556万块容量18TB的硬盘。 这些存储的数据中,仅10%认为是Hot频繁访问的数据,90%的数据都将是Warm/Cold温冷数据, 也就是不经常访

英雄传说:星之轨迹电脑版模拟器怎么玩

献礼轨迹十五周年,由bilibili与畅游联合发行,Falcom独家授权的轨迹系列正版续作手游——《英雄传说:星之轨迹》重磅推出!本作在继承轨迹系列庞大世界观的同时,延续了前作尚未开拓的剧情。历代英雄再现,日式经典RPG战斗,全新梦幻飞空艇等你来体验!还有豪华声优阵容及诸多经典曲目,带你回味曾经的感动。 新的轨迹,星的传说,一起踏上塞姆利亚大陆的全新冒险之旅吧!英雄传说:星之轨迹电脑版模拟器怎么玩

传说中的运维门户设计

在IT服务管理这片广阔天地中,运维门户如同一位技艺高超的魔术师,轻轻一挥手,便将纷繁复杂的运维世界化繁为简,编织成一张便捷高效、触手可及的网络。它不仅是ITSM系统中不可或缺的一环,更是连接用户与技术世界的桥梁,让服务触达变得像呼吸一样自然。 运维门户,这个听起来就自带光环的名字,实质上是一个集中式在线平台,它的存在,就是为了让用户体验到什么是真正的“一键直达”。在这里,无论是公告通知,还是那些

李彦宏说排名是个古老传说:解读背后的含义

李彦宏说排名是个古老传说吗? 李彦宏是百度创始人、董事长兼CEO。他在2023年3月的一次采访中表示:“排名是个古老传说,搜索的本质是理解和组织信息。”这句话引发了广泛的讨论和关注。 1、这句话的背景 近年来,随着人工智能技术的快速发展,搜索引擎的技术也在不断革新。传统搜索引擎主要依靠关键词匹配和排名算法来提供搜索结果,而新兴的搜索引擎则更加注重语义理解和信息组织。 在这样的背景下,李彦宏