【pdf你真可爱】

【题目分析】

  上午考试想到用二分答案做,写残了...

  设两个数列,a和b,a表示磁头,看作指针,b就是要扫描的那个序列。

  假设一个答案mid,就是a中的数字走mid步能否到达b中的数字,如果b能全部被扫描,说明这个答案是可以继续向左二分,否则就向右

  具体就分三种情况:

  1、a[i]-b[j]>mid,这种情况下怎么走都不可能把b完全覆盖(因为a和b都是递增的,前面的只要大于了,后面没有机会变小于啊),直接false

  2、a[i]>b[j],rest表示从a[i]扫到b[j]之后剩余的,rest=mid-(a[i]-b[j])

    (1)先走左边,reach=b[j]+rest

    

    (2)先走右边,reach=a[i]+rest/2;

    

  3、a[i]<=b[j],那从a[i]开始扫,最多扫到 reach=a[i]+mid

孩子们,一定要算好数据类型啊,另外那个I64d是在windows下评测,linux下用lld,难过的被卡了半小时

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define ll long long
const int maxn=1e5+;
int n,m;
ll a[maxn],b[maxn];
bool check(ll mid)
{
for(ll i=,j=;i<=n;i++)
{
if(a[i]-b[j]>mid) return false;//如果从i到j的距离比假设的答案大,就返回0继续向右二分
ll reach;//reach表示走完mid步之后到达的位置
if(a[i]>b[j])
{
ll rest=mid-(a[i]-b[j]);
reach=max(b[j]+rest,a[i]+rest/);//向左边走和向右边走
}
else
reach=a[i]+mid;
while(b[j]<=reach&&j<=m) j++;
if(j>m) return true;
}
return false;
}
void solve()
{
ll l=,r=1e10,ans;
while(l<=r)
{
ll mid=(l+r)/;
if(check(mid)) r=mid-,ans=mid;
else l=mid+;
}
printf("%I64d",ans);
}
int main()
{
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
scanf("%I64d",&a[i]);
for(int i=;i<=m;i++)
scanf("%I64d",&b[i]);
/*int flag=0;
if(n==m)
{
for(int i=1;i<=n;i++)
if(a[i]!=b[i])
flag=1;
}
if(flag==0&&n==m)
printf("0");
else
{*/
solve();
//}
fclose(stdin);fclose(stdout);
return ;
}

Data的更多相关文章

  1. CYQ.Data、ASP.NET Aries 百家企业使用名单

    如果您或您所在的公司正在使用此框架,请联系左侧的扣扣,告知我信息,我将为您添加链接: 以下内容为已反馈的用户,(收集始于:2016-08-08),仅展示99家: 序号 企业名称 企业网址 备注 1 山 ...

  2. 终于等到你:CYQ.Data V5系列 (ORM数据层)最新版本开源了

    前言: 不要问我框架为什么从收费授权转到免费开源,人生没有那么多为什么,这些年我开源的东西并不少,虽然这个是最核心的,看淡了就也没什么了. 群里的网友:太平说: 记得一年前你开源另一个项目的时候我就说 ...

  3. CodeSimth - .Net Framework Data Provider 可能没有安装。解决方法

    今天想使用CodeSimth生成一个sqlite数据库的模板.当添加添加数据库的时候发现: .Net Framework Data Provider 可能没有安装. 下面找到官方的文档说明: SQLi ...

  4. Oracle Database 12c Data Redaction介绍

    什么是Data Redaction Data Redaction是Oracle Database 12c的高级安全选项之中的一个新功能,Oracle中国在介绍这个功能的时候,翻译为“数据编纂”,在EM ...

  5. 快速搭建springmvc+spring data jpa工程

    一.前言 这里简单讲述一下如何快速使用springmvc和spring data jpa搭建后台开发工程,并提供了一个简单的demo作为参考. 二.创建maven工程 http://www.cnblo ...

  6. 【Big Data】HADOOP集群的配置(一)

    Hadoop集群的配置(一) 摘要: hadoop集群配置系列文档,是笔者在实验室真机环境实验后整理而得.以便随后工作所需,做以知识整理,另则与博客园朋友分享实验成果,因为笔者在学习初期,也遇到不少问 ...

  7. 代码的坏味道(16)——纯稚的数据类(Data Class)

    坏味道--纯稚的数据类(Data Class) 特征 纯稚的数据类(Data Class) 指的是只包含字段和访问它们的getter和setter函数的类.这些仅仅是供其他类使用的数据容器.这些类不包 ...

  8. R abalone data set

    #鲍鱼数据集aburl <- 'http://archive.ics.uci.edu/ml/machine-learning-databases/abalone/abalone.data' ab ...

  9. java.IO输入输出流:过滤流:buffer流和data流

    java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...

  10. 怎样两个月完成Udacity Data Analyst Nanodegree

    在迷恋数据科学很久后,我决定要在MOOC网站上拿到一份Data Science的证书.美国三个MOOC网站,Udacity上的课程已经被分成了数个nanodegree,每个nanodegree都是目前 ...

随机推荐

  1. ofbiz进击 第六节。 --OFBiz配置之[widget.properties] 配置属性的分析

    配置内容分析如下 # -- 定义上下文使用者 -- security.context =default # -- 定义密码限制长度最小值 -- password.length.min =5 # -- ...

  2. extjs 4.2 日期控件 选择时分秒功能

    因为不支持时分秒,然后在网上也找了一段时间的插件,但是感觉起来都不大方便,最后找一个插件,只需要引用js文件,然后修改类型,就可以实现extjs下面的datafield带时分秒功能了. 步骤: 只需要 ...

  3. HDU 1724 Ellipse(数值积分の辛普森公式)

    Problem Description Math is important!! Many students failed in 2+2’s mathematical test, so let's AC ...

  4. HDU 4898 The Revenge of the Princess’ Knight(后缀数组+二分+暴力)(2014 Multi-University Training Contest 4)

    Problem Description There is an old country and the king fell in love with a devil. The devil always ...

  5. demo05

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&q ...

  6. Android -- 初探MVP模式

    1,相信大家对mvp模式都很熟悉了,M-Model-模型.V-View-视图.C-Controller-控制器.MVP作为MVC的版本演化,与MVC的意义类似:M-Model-模型.V-View-视图 ...

  7. 将Excel导入数据库

    在Control 中: public ActionResult ImportExcel() { return View(); } //客户导入 [HttpPost] public ActionResu ...

  8. logstash中的redis插件

    redis作为logstash中的官方broker,既有input插件,还有output插件. redis input插件 data_type属性: 有三种类型, list -> BLPOP - ...

  9. struts2校验の实现

    1.JSP <%@ page contentType="text/html; charset=utf-8" language="java" errorPa ...

  10. PAT乙级 1022. D进制的A+B (20)

    1022. D进制的A+B (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 输入两个非负10进制整数A和 ...