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 ...
随机推荐
- 量化投资_Multicharts数组操作函数_zeros()设定数组元素为0(自定义)
1. 函数的用法类似于Python的zeros函数,给定数组尺寸,让数组的元素归零 //zeros:根据设定的尺寸长度,让一维数组的元素全部归零 inputs: arr[MaxSize]( numer ...
- PrepareStatement对象进行批处理的典型步骤顺序
https://www.yiibai.com/jdbc/preparestatement-batching-example.html 以下是使用PrepareStatement对象进行批处理的典型步骤 ...
- 2020年9大顶级Java框架
诞生于1995年的Java,目前已在134,861个网站上广泛使用,包括ESPN.SnapDeal等.在其24年的成长史中,Java已经证明了自己是用于自定义软件开发的顶级通用编程语言. Java广泛 ...
- Spring Boot作为Spring Cloud基础设施
spring cloud包含的核心特性: Distributed/versioned configuration(分布式配置) Service registration and discovery(服 ...
- vscode中c/c++头文件引用找不到飘红
正在进行 GTK 学习, 但是在 vscode GTK 的头文件找不到(头文件引用底下飘红, 逼死强迫症), 影响敲字键入速度. 解决一下该问题-- vscode中c/c++头文件引用找不到(#inc ...
- 基于Docker本地运行Kubernetes
基于Docker本地运行Kubernetes 概览 下面的指引将高速你如何通过Docker创建一个单机.单节点的Kubernetes集群. 下图是最终的结果: 先决条件 \1. 你必须拥有一台安装有D ...
- textare限制拖动;提示文字(点击消失,不输入恢复提示信息)
1.在textarea添加一个样式:style="resize:none;" 2.提示文字(鼠标点击的时候消失,不输入恢复提示信息): <input name="t ...
- linux常用命令之------文件操作、文件查看、权限、打包压缩
1.一般公司把linux作为自己的应用服务器,将应用和服务器部署在上面 2.测试一般用来打包.压缩.查日志,写一个简单的shell 获得linux服务器的方式 a:网上租一台云服务器 b:安装vmwa ...
- Q3:Longest Substring Without Repeating Characters
3. Longest Substring Without Repeating Characters 官方的链接:3. Longest Substring Without Repeating Chara ...
- Springboot过滤器注解简笔
对多个过滤的注解 @WebFilter(filterName="FirstFilter",urlPatterns={"*.do","*.js ...