Codeforces 1293A - ConneR and the A.R.C. Markland-N
题目大意:
ConneR老师想吃东西,他现在在大楼的第s层,大楼总共有n层,但是其中有k层的餐厅关门了。
然后给了这k层关门的餐厅分别所在的楼层。
所以问ConneR老师最少得往上(或者往下)走几层楼,才能到最近的还开门的餐厅就餐?
解题思路1:
对于关闭的k层,存在数组a里排序。(放在1~k的位置)
先循环一遍数组a,看看s层是否存在于a数组里,如果不存在,直接输出0作为答案。
如果存在,开始找答案楼层。
数组a第0的位置赋值0,第k+1的位置赋值n+1。(后面的思路计算中有需要)
然后i从0开始循环到k,每次判断a[i+1]-a[i]是否大于1。
如果大于1,说明a[i+1]与a[i]之间存在着开放的楼层可以成为目的地。
可以取a[i]+1和a[i+1]-1两个楼层进行判断。(因为s层此时是存在于数组a内的,所以最佳答案楼层一定是相邻于某个元素的,不想写那么多判断条件的话直接无脑判断这两个楼层好了,小贪心一下)
最后输出最优解即可。
#include<bits/stdc++.h>
using namespace std;
int a[];
void solve(){
int n,s,k,d,i,p,ans;
cin>>n>>s>>k;
for(i=;i<=k;i++)
cin>>a[i];
sort(a+,a++k);
a[]=;
a[k+]=n+;
ans=;
bool flag=true;
for(i=;i<=k;i++){
if(a[i]==s||a[i+]==s)
flag=false;
if(a[i+]-a[i]>){
ans=min(ans,abs(s-a[i+]+));
ans=min(ans,abs(s-a[i]-));
}
}
if(flag)
ans=;
cout<<ans<<endl;
}
int main(){
int T;
cin>>T;
while(T--)
solve(); return ;
}
解题思路2:
同样的,排序后先循环一遍数组a,看看s层是否存在于a数组里,如果不存在,直接输出0作为答案。
如果存在,因为只有连续的几层楼相邻关闭的时候才会使答案增大。
所以从s层开始,向上向下都搜一遍最少走几层能到a[i+1]-a[i]大于1的楼层。(即这两层楼之间一定有楼层是开放的)
#include<bits/stdc++.h>
using namespace std;
int a[];
void solve(){
int n,s,k,i,p,sp,ans;
cin>>n>>s>>k;
bool flag=true;
for(i=;i<=k;i++){
cin>>a[i];
if(a[i]==s)
flag=false;
}
if(flag){
cout<<<<endl;
return;
}
sort(a+,a+k+);
sp=find(a+,a++k,s)-a;
a[]=;
a[k+]=n+;
ans=;
for(i=sp;i<=k;i++)
if(a[i+]-a[i]>){
ans=min(ans,a[i]+-s);
break;
}
for(i=sp;i;i--)
if(a[i]-a[i-]>){
ans=min(ans,s-(a[i]-));
break;
}
cout<<ans<<endl;
}
int main(){
ios::sync_with_stdio();
cin.tie();cout.tie();
int T;
cin>>T;
while(T--)
solve(); return ;
}
Codeforces 1293A - ConneR and the A.R.C. Markland-N的更多相关文章
- Codeforces Round #614 (Div. 2) A-E简要题解
链接:https://codeforces.com/contest/1293 A. ConneR and the A.R.C. Markland-N 题意:略 思路:上下枚举1000次扫一遍,比较一下 ...
- 贪心 CodeForces 124B Permutations
题目传送门 /* 贪心:全排列函数使用,更新最值 */ #include <cstdio> #include <algorithm> #include <cstring& ...
- Codeforces #614 div.2 (A-E)
A ConneR and the A.R.C. Markland-N #include <bits/stdc++.h> using namespace std; #define ll l ...
- [原]CentOS7安装Rancher2.1并部署kubernetes (二)---部署kubernetes
################## Rancher v2.1.7 + Kubernetes 1.13.4 ################ ##################### ...
- 利用python进行数据分析2_数据采集与操作
txt_filename = './files/python_baidu.txt' # 打开文件 file_obj = open(txt_filename, 'r', encoding='utf-8' ...
- Django项目:CRM(客户关系管理系统)--81--71PerfectCRM实现CRM项目首页
{#portal.html#} {## ————————46PerfectCRM实现登陆后页面才能访问————————#} {#{% extends 'king_admin/table_index.h ...
- 计算a^b==a+b在(l,r)的对数Codeforces Round #597 (Div. 2)
题:https://codeforces.com/contest/1245/problem/F 分析:转化为:求区间内满足a&b==0的对数(解释见代码) ///求满足a&b==0在区 ...
- Codeforces Round #333 (Div. 1) C. Kleofáš and the n-thlon 树状数组优化dp
C. Kleofáš and the n-thlon Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contes ...
- Codeforces Round #377 (Div. 2) A. Buy a Shovel【暴力/口袋里面有无限枚 10 元和一枚 r 面值的硬币,问最少可以买多少把价值为 k 的铁铲】
A. Buy a Shovel time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
随机推荐
- java课程之团队开发第一阶段评论
1.没有UI设计,整体的样式感觉不堪入目 2.功能方面实现的并不是很多,还需要继续努力 3.还需要添加一些常用的课表功能,比如说导入课表等
- 在div中注入html代码
直接开始: <div id="content"class="modal-body"> </div> 在angularjs中使用如下代码, ...
- 吴裕雄--天生自然C++语言学习笔记:C++ 修饰符类型
C++ 允许在 char.int 和 double 数据类型前放置修饰符.修饰符用于改变基本类型的含义,所以它更能满足各种情境的需求. 下面列出了数据类型修饰符: signed unsigned lo ...
- Maven - web 实例
版权所有,未经授权,禁止转载 章节 Maven – 简介 Maven – 工作原理 Maven – Repository(存储库) Maven – pom.xml 文件 Maven – 依赖管理 Ma ...
- DefaultHandlerExceptionResolver : Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing
客户端当发送空的json字符串时,请求RestController时,报错: DefaultHandlerExceptionResolver : Failed to read HTTP message ...
- Mybatis基本配置(一)
1. Mybatis介绍 MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis 使用 ...
- POJ - 3977 Subset(二分+折半枚举)
题意:有一个N(N <= 35)个数的集合,每个数的绝对值小于等于1015,找一个非空子集,使该子集中所有元素的和的绝对值最小,若有多个,则输出个数最小的那个. 分析: 1.将集合中的元素分成两 ...
- 18 12 `12 WSGI 协议
所谓wsig 协议 就是把web框架 和服务器进行分开 然后通过 wisg协议 进行连接 这样子可以随时替换web框架 或者 更换服务器 解耦 (现在学的内容里 静态连接一般是放在服务器里 ...
- mysql数值类型总结及常用函数
最近在学习下,总结一下mysql数值类型: mysql字符类型分: 1.整数类型: 字节 值范围 INTERGER 1 ...
- CodeForces 51C 二分搜索
校队选拔神马的事情就不说了,哥们反正是要崛起的人了! 感谢何骐的提醒. 校队选拔的时候又被二分给坑了,所以还想做几道二分搜索的题目来练练手. C - Three Base Stations Time ...