题解

题目描述

链接https://ac.nowcoder.com/acm/problem/207040
“丢~丢~丢手绢,轻轻地放在小朋友的后面,大家不要告诉她,快点快点抓住她,快点快点抓住她。”
牛客幼儿园的小朋友们围成了一个圆圈准备玩丢手绢的游戏,但是小朋友们太小了,不能围成一个均匀的圆圈,即每个小朋友的间隔可能会不一致。为了大家能够愉快的玩耍,我们需要知道离得最远的两个小朋友离得有多远(如果太远的话牛老师就要来帮忙调整队形啦!)。
因为是玩丢手绢,所以小朋友只能沿着圆圈外围跑,所以我们定义两个小朋友的距离为沿着圆圈顺时针走或者逆时针走的最近距离。

input:
第一行一个整数N,表示有N个小朋友玩丢手绢的游戏。
接下来的第2到第n行,第i行有一个整数,表示第i-1个小朋友顺时针到第i个小朋友的距离。
最后一行是第N个小朋友顺时针到第一个小朋友的距离。

output:
输出一个整数,为离得最远的两个小朋友的距离。

解题思路

我们先去找距离第一个小朋友最远的小朋友i的位置,第i个小朋友与第一个小朋友之间的距离一定会是刚好过圆周长的一半或刚好没过一半,如果他过半了,则第i+1个小朋友与第一个小朋友的距离一定不会是答案,因为越向后就会离的越近,所以我们就去看第二个小朋友与第i个小朋友的距离,比第一个与第i个的距离,如果这个距离是刚好过半或准备要过半的状态,说明第i个小朋友是距离第二个小朋友最远的人,然后我们就去维护最大的距离。说白了,就是去找距离每个小朋友最远的那个小朋友,比出最大的距离就行。相当于拿了个尺子去卡这个不规则圆的最大“半径”。

代码如下

#include <bits/stdc++.h>
using namespace std;
int main()
{int a[100010]={0};int n;cin>>n;for(int i=1; i<=n; i++){cin>>a[i];a[i]+=a[i-1];//前缀和处理}int sum=a[n];int s=1,e=2;int mx=-1;while(e<=n&&s<e){int dis1=a[e]-a[s];//求出第s个小朋友与第e个小朋友之间的距离int dis2=sum-dis1;mx=max(mx,min(dis1,dis2));if(dis1>dis2)s++;elsee++;}cout<<mx;return 0;
}

丢手绢(差分前缀和)相关推荐

  1. HRBUST 1909——理工门外的树——————【离线处理,差分前缀和】

    理工门外的树 Time Limit: 1000 MS Memory Limit: 32768 KB 64-bit integer IO format: %lld , %llu Java class n ...

  2. 数据结构与算法--我们来玩丢手绢(约瑟夫环问题)

    我们来玩丢手绢 昨天我们打扑克,今天我们丢手绢 丢手绢我们都知道这个游戏,他的由来由约瑟夫 (Josephus)提出来的 据说著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后,3 ...

  3. 【51nod - 1875】 丢手绢(约瑟夫问题,可打表,用STL模拟)

    题干: 六一儿童节到了,小朋友们在玩丢手绢的游戏.总共有C个小朋友,编号从1到C,他们站成一个圈,第i(1<i<=C)个人的左边是i-1,第1个人的左边是C.第i(1<=i<C ...

  4. 丢手帕程序C语言,语言丢手绢教案中班

    语言丢手绢教案中班 导语:能主动大胆地参加游戏,在追逐.闪躲游戏中享受合作游戏的快乐.受活动的快乐.以下小编为大家介绍语言丢手绢教案中班文章,欢迎大家阅读参考! 语言丢手绢教案中班1 一.活动目标: ...

  5. AcWing 692. G巴士计数 差分+前缀和

    题目描述 https://www.acwing.com/problem/content/description/694/ 经典的差分再前缀和题目 不断给一个范围内的所有数加上同一个定值,最后再求具体的 ...

  6. 数据结构与算法: 约瑟夫问题(丢手绢)

    数据结构与算法: 约瑟夫(丢手绢)问题(单向链表,双向链表解决) Tips: 采用java语言, 关注博主,底部附有完整代码 采用到的知识点: 单向环形链表 双向环形链表 单向 / 双向 环形链表出圈 ...

  7. 1875 丢手绢 约瑟夫环变形 枚举

    1875 丢手绢 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 六一儿童节到了,小朋友们在玩丢手绢的游戏.总共有C个小朋友,编号从1到C,他们站成一个 ...

  8. [NC207040]丢手绢

    [NC207040]丢手绢 这道题是牛客上的一道题,这道题看似简单,但是坑点不少,好了,我们一起来看看题意吧: 题目描述 "丢~丢~丢手绢,轻轻地放在小朋友的后面,大家不要告诉她,快点快点抓 ...

  9. 51nod 1875 丢手绢

    六一儿童节到了,小朋友们在玩丢手绢的游戏.总共有C个小朋友,编号从1到C,他们站成一个圈,第i(1<i<=C)个人的左边是i-1,第1个人的左边是C.第i(1<=i<C)个人的 ...

最新文章

  1. 从深度图到点云的构建方式
  2. 霍夫变换MATLAB怎么实现,做过Matlab关于霍夫变换检测圆的高手请进
  3. 汇总500个excel
  4. NTU 课程 ERIC(5) 对社会的责任
  5. SimpleDateFormat-时间格式化中的大小写字符
  6. 三流面试聊JDK,二流面试聊JVM,一流面试……
  7. 在写HTML和CSS时的黄金规范
  8. Cloud for Customer Mashup debug in IFrame
  9. 【分布计算环境学习笔记】4 Enterprise Java Bean
  10. android int 首位值_Android中数值的精确计算
  11. Luogu P2733 家的范围 Home on the Range
  12. kafka + storm 错误 Async loop died
  13. python建立空集合_「python」集合类型及操作
  14. java实现蛇形输出,Java 输入一个正整数,按蛇形打印。
  15. 4.3 现在可用的客体类有哪些呢
  16. 第十六章——处理锁、阻塞和死锁(3)——使用SQLServer Profiler侦测死锁
  17. 应用机器学习(二):k-NN 分类器
  18. mysql in 子查询 效率慢 优化(转)
  19. pandas——解决excel科学计数法问题
  20. Gossip协议笔记--谣言、流行病协议

热门文章

  1. steam助手_6 Steam疑难解答提示
  2. 香港上市对公司有什么要求
  3. Tencent APIJSON 零代码、全功能、强安全 ORM 库 后端接口和文档零代码,前端(客户端) 定制返回 JSON 的数据和结构
  4. 施耐德M580系统时间的获取
  5. python循环叠加求和_python基础教程python使用隐式循环快速求和的实现示例
  6. Java基础-- if else语句入门小练习
  7. 也许马上就要回西安了,好幸福。
  8. 苏宁API:item_search - 按关键字搜索suning商品
  9. ERROR: Received close_notify during handshake
  10. Mac下JDK、Maven、Tomcat、Git开发安装及环境变量配置