Codeforces Round #515 (Div. 3) B. Heaters (贪心)

题意:有\(n\)个桩子,\(1\)表示该位置有一个火炉,可以使两边距离为\(r\)的范围照亮,问最少使用多少炉子使得所有范围都被照亮.
题解:贪心,首先我们从\(r\)位置开始向左找,如果找到了就记录这个位置,然后答案+1,然后再从\(2*r-1\)这个位置开始向左找第一个没有标记的火炉,如果没有找到就直接输出\(-1\)结束,否则重复寻找的过程.
代码:
int n,r;
int a[N];
bool st[N]; int main() {
ios::sync_with_stdio(false);cin.tie(0);
cin>>n>>r;
for(int i=1;i<=n;++i){
cin>>a[i];
} int pos=r;
int cnt=0;
while(true){
if(a[pos]){
cnt++;
st[pos]=true;
if(pos+r-1>=n) break;
else{
pos=pos+2*r-1;
continue;
}
}
while(a[pos]==0 && pos>=1 && !st[pos]) pos--;
if(st[pos] || pos==0){
cout<<-1<<endl;
return 0;
}
else{
cnt++;
st[pos]=true;
if(pos+r-1>=n) break;
pos=pos+2*r-1;
}
}
cout<<cnt<<endl;
return 0;
}
Codeforces Round #515 (Div. 3) B. Heaters (贪心)的更多相关文章
- Codeforces Round #515 (Div. 3) B. Heaters【 贪心 区间合并细节 】
		
任意门:http://codeforces.com/contest/1066/problem/B B. Heaters time limit per test 1 second memory limi ...
 - CodeForces Round #515 Div.3 B. Heaters
		
http://codeforces.com/contest/1066/problem/B Vova's house is an array consisting of nn elements (yea ...
 - Codeforces Round #515 (Div. 3)
		
Codeforces Round #515 (Div. 3) #include<bits/stdc++.h> #include<iostream> #include<cs ...
 - B. Heaters ( Codeforces Round #515 (Div. 3) )
		
题解:对于每个点 i 来说,从 j = i + r - 1 开始往前找,如果找到一个 a [ j ] 是 1 ,那么就把它选上,但是我们需要判断交界处,也就是如果前面选的那个可以让这个点变温暖,就不用 ...
 - Codeforces Round #515 (Div. 3) 解题报告(A~E)
		
题目链接:http://codeforces.com/contest/1066 1066 A. Vova and Train 题意:Vova想坐火车从1点到L点,在路上v的整数倍的点上分布着灯笼,而在 ...
 - Codeforces Round #202 (Div. 1) A. Mafia 贪心
		
A. Mafia Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/348/problem/A D ...
 - Codeforces Round #382 (Div. 2)B. Urbanization 贪心
		
B. Urbanization 题目链接 http://codeforces.com/contest/735/problem/B 题面 Local authorities have heard a l ...
 - Codeforces Round #164 (Div. 2) E. Playlist  贪心+概率dp
		
题目链接: http://codeforces.com/problemset/problem/268/E E. Playlist time limit per test 1 secondmemory ...
 - Codeforces Round #180 (Div. 2) B. Sail 贪心
		
B. Sail 题目连接: http://www.codeforces.com/contest/298/problem/B Description The polar bears are going ...
 
随机推荐
- (十六)re模块
			
正则表达式并不是Python的一部分,本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言.正则表达式是用于处理字符串的强大工具,很多编程语言都支持正则表达式的语法. 字符匹配分为普通字 ...
 - QPainter 绘制图像接口
			
阅读本文大概需要 3 分钟 我们在开发软件的过程中,绘制图像功能必不可少,使用 Qt 绘制图像时非常简单,只需要传递几个参数就可以实现功能,在 Qt 中绘制图像的 api有好几个 void drawI ...
 - 学习rac管理
			
文章转自:http://blog.itpub.net/7728585/viewspace-752185/ crsctl query crs activeversion 查看版本 ocrconfig - ...
 - Puzzle (II) UVA - 519
			
题目链接: https://vjudge.net/problem/UVA-519 思路: 剪枝+回溯 这个题巧妙的是他按照表格的位置开始搜索,也就是说表格是定的,他不断用已有的图片从(0,0)开始拼到 ...
 - CSRF - Pikachu
			
概述: Cross-site request forgery 简称为"CSRF"(跨站请求伪造),在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标 ...
 - Python eval  函数用途
			
Python eval 函数用途: eval 函数可将字符串转换成列表,元组和字典 实例如下: 可以把list,tuple,dict和string相互转化. ##################### ...
 - online创建索引中途取消导致索引无法删除解决办法
			
问题:有一个表ID栏位没有索引,但是在一个update语句的where中被使用,因此打算online创建索引,但是长时间没有成功,此时决定取消,取消后发现索引无法删除 过程: 数据库监控报警有行锁,进 ...
 - [Poi2005]Piggy Banks小猪存钱罐
			
题目描述 Byteazar有 N 个小猪存钱罐. 每个存钱罐只能用钥匙打开或者砸开. Byteazar已经把每个存钱罐的钥匙放到了某些存钱罐里. Byteazar 现在想买一台汽车于是要把所有的钱都取 ...
 - XV6学习(2)Lab syscall
			
实验的代码放在了Github上. 第二个实验是Lab: system calls. 这个实验主要就是自己实现几个简单的系统调用并添加到XV6中. XV6系统调用 添加系统调用主要有以下几步: 在use ...
 - 新型赌博黑产攻击肆虐网吧: LOL博彩引流+棋牌盗号
			
https://mp.weixin.qq.com/s/BxnovV6jKqPkYfHEzjd_FA 新型赌博黑产攻击肆虐网吧: LOL博彩引流+棋牌盗号 看雪学院 2019-04-21