又是一道思路特别清奇的题qwq...(瞪了一上午才发现O(1)的结论...差点还想用O(n)解决)

问题可以转化为是否能够由\(f_{1}=a\)通过\(\pm x \in[c,d]\)得到\(f_{n}=b\),于是考虑用数学方法解决

证明比较简单...就是...能想到这一点就很毒瘤了qwq...让我来随手拿一个样例举例qwq

输入样例2:4 7 6 4 5
输出样例2:NO

丝毫不想画图...太乱惹qwq

为了能看的更明白我还是画吧qwq(感谢GeoGebra)

注:横坐标表示框内数值,纵坐标表示编号(宽屏没办法qwq...看不清就保存图片放大...还是能看清楚一点的...实在不行下面会放坐标)

下面的图片可以在新的标签页中打开放大...经测试清晰度可以接受

做出上图后发现,绿色线段对应位置是可以到达的,此时问题转化为点\(B\)是否在某一条绿色线段(含端点)上

取所有线段中点后发现,在纵坐标为奇数时,所有线段中点到点\(A\)的横坐标距离为\(2k \times \frac{c+d}{2}(k \in N)\),在纵坐标为奇数时,所有线段中点到A的横坐标距离为\((2k+1) \times \frac{c+d}{2}(k \in N)\),位于\(y=k\)上的最远的线段中点到点\(A\)的横坐标距离为\((k-1) \times \frac{c+d}{2}\),且长度为\((k-1) \times (d-c)\),也即点\(B\)与点\(A\)的横坐标距离\(\leq (n-1) \times \frac{c+d}{2}\)且与位于\(y=n\)上某条线段的中点距离\(\leq \frac{(n-1) \times (d-c)}{2}\)时由\(A\)可以到达\(B\),所以只需要按照\(n\)的奇偶性分类\(O(1)\)计算结果即可.

全都是数学推导...感性理解一下就好

下面放代码$\downarrow \downarrow \downarrow $

#include<cstdio>//AT2665
#include<iostream>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
#include<cstdlib> using namespace std; int n,a,b,c,d,delta,whole; double nxt,half=0.5,maxhalf,lft; int main(){
scanf("%d%d%d%d%d",&n,&a,&b,&c,&d);
nxt+=c+d;
nxt/=2;
half=nxt-c;
maxhalf=half*(n-1);
delta=abs(a-b);
if(delta>(n-1)*nxt+maxhalf){//超过最远距离
printf("NO\n");
return 0;
}
whole=(int)(delta/nxt);
lft=delta-nxt*whole;
if(n&1){//n%2==1
if(whole&1){
lft=nxt-lft;
if(lft<=maxhalf){
printf("YES\n");
return 0;
}
else{
printf("NO\n");
return 0;
}
}
else{
if(lft<=maxhalf){
printf("YES\n");
return 0;
}
else{
printf("NO\n");
return 0;
}
}
}
else{//n%2==0
if(whole&1){
if(lft<=maxhalf){
printf("YES\n");
return 0;
}
else{
printf("NO\n");
return 0;
}
}
else{
lft=nxt-lft;
if(lft<=maxhalf){
printf("YES\n");
return 0;
}
else{
printf("NO\n");
return 0;
}
}
}
return 0;
}

Atcoder | AT2665 【Moderate Differences】的更多相关文章

  1. Atcoder B - Moderate Differences

    http://agc017.contest.atcoder.jp/tasks/agc017_b B - Moderate Differences Time limit : 2sec / Memory ...

  2. 题解——ATCoder AtCoder Grand Contest 017 B - Moderate Differences(数学,构造)

    题面 B - Moderate Differences Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Stat ...

  3. 【赛时总结】◇赛时·VII◇ Atcoder ABC-106

    [赛时·VII] ABC-106 一条比赛时莫名其妙发了半个小时呆的菜鸡&咸鱼得到了自己应有的下场……279th. Rating:1103(+) 终于AK,一次通过…… ◇ 简单总结 ABC还 ...

  4. AtCoder Beginner Contest 116 C题 【题意:可以在任意区间【L,R】上加1,求通过最少加1次数得到题目给定的区间】】{思维好题}

    C - Grand Garden In a flower bed, there are NN flowers, numbered 1,2,......,N1,2,......,N. Initially ...

  5. 【linux命令】setterm控制终端属性命令(中英文)

    [linux命令]setterm控制终端属性命令(中英文) 2018年03月23日 17:13:44 阅读数:489 标签: linux 更多 个人分类: linux 摘自:https://blog. ...

  6. 【Spring实战】----开篇(包含系列目录链接)

    [Spring实战]----开篇(包含系列目录链接) 置顶2016年11月10日 11:12:56 阅读数:3617 终于还是要对Spring进行解剖,接下来Spring实战篇系列会以应用了Sprin ...

  7. G1垃圾收集器官方文档透彻解读【官方解读】

    在前几次中已经对G1的理论进行了一个比较详细的了解了,对于G1垃圾收集器最权威的解读肯定得上官网,当咱们将官网的理解透了,那基本上网上对于G1的说明其实最终都是来自于官网,所以接下来会详细来解读Ora ...

  8. 【MM系列】SAP MM模块-移动类型全部列表

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP MM模块-移动类型全部列表 ...

  9. 【AR实验室】mulberryAR : ORBSLAM2+VVSION

    本文转载请注明出处 —— polobymulberry-博客园 0x00 - 前言 mulberryAR是我业余时间弄的一个AR引擎,目前主要支持单目视觉SLAM+3D渲染,并且支持iOS端,但是该引 ...

随机推荐

  1. Servlet处理GET和POST请求

    doGet() . doPost().service()方法 doGet()表示,当客户端是使用get方式请求该servlet时,那么就会触发执行doGet()方法中的代码. doPost()表示,当 ...

  2. Linux sed使用方法

    目录 sed处理流程 测试数据 sed命令格式 sed命令行格式 行定位 定位1行 定位区间行(多行) 定位某一行之外的行 定位有跨度的行 操作命令 -a (新增行) -i(插入行) -c(替代行) ...

  3. 01-学习vue前的准备工作

    起步 1.扎实的HTML/CSS/Javascript基本功,这是前置条件. 2.不要用任何的构建项目工具,只用最简单的<script>,把教程里的例子模仿一遍,理解用法.不推荐上来就直接 ...

  4. react-router的坑

    componentWillReceiveProps(nextProps){ 在改钩子函数里接受组件变化的最近的传递的props 如果在这里没有使用nextprops 而是调用this.props 会出 ...

  5. scoketio

    服务器代码let net = require('net'); // 创建服务器 let server = net.createServer(); // 定义一个数组 ,存放每一个连接服务器的客户端用户 ...

  6. 4 HttpServletResponse 与 HttpServletRequest

    Web 服务器收到一个http请求,会针对每个请求创建一个HttpServletRequest 和 HttpServletReponse 对象,response用于向客户端发送数据,request用于 ...

  7. MyEclipse配置tomcat报错 - java.lang.UnsupportedClassVersionError: org/apache/lucene/store/Directory : Unsupported major.minor version 51.0

    1 开发Servlet程序时,MyEclipse配置好tomcat与JDK之后,启动时控制台报下列错误: 1 java.lang.UnsupportedClassVersionError: org/a ...

  8. [转帖]前端-chromeF12 谷歌开发者工具详解 Network篇

    前端-chromeF12 谷歌开发者工具详解 Network篇 https://blog.csdn.net/qq_39892932/article/details/82493922 blog 也是原作 ...

  9. Gatsby & React & NPX & NVM

    Gatsby & React Gatsby is a blazing fast modern site generator for React. https://www.gatsbyjs.or ...

  10. Nintex Forms Drop-Down "z-index"

    Now we’ve got the issue, that if we are working with a “Person-Column”, the drop-down where you can ...