当前位置: 首页 > news >正文

加强政民互动 建设交流型政府门户网站活动策划

加强政民互动 建设交流型政府门户网站,活动策划,华为网站建设费用,最大的网站建设公司排名独木桥(bridge)题目描述Alice和Bob是好朋友,这天他们带了n个孩子一起走独木桥。独木桥宽度很窄,不允许两个或两个以上的人并肩行走,所有人必须要前后一个接一个地通行。Bob给所有的孩子蒙上了眼,并将他们放在桥中不同的位置上&…

独木桥(bridge)

题目描述

Alice和Bob是好朋友,这天他们带了n个孩子一起走独木桥。

独木桥宽度很窄,不允许两个或两个以上的人并肩行走,所有人必须要前后一个接一个地通行。

Bob给所有的孩子蒙上了眼,并将他们放在桥中不同的位置上,孩子们初始的朝向不一定相同。Bob吹响哨声后这些孩子们会按照初始的朝向开始移动,当两个孩子移动到同一点时由于桥太窄他们无法穿过彼此,因此他们会同时转身改变朝向,并接着朝新方向移动。

为了安全起见,在某个时刻Alice会询问Bob某个孩子现在所处的位置。

更具体的,我们可以将问题抽象如下:

· 将独木桥看作一个长度无限长的实数轴,将每个孩子看作数轴上的一个实数点。数轴从左到右坐标不断增大。

· 孩子的位置用相对于数轴原点的点的坐标来表示。初始时n个点在n个互不相同的整点上。

· 每个点有一个初始朝向(从左向右或从右向左)。任何时刻所有的点都会以每秒1单位长度的速度匀速向所朝的方向移动。当某个时刻两个点同时移动到了同一个位置上,它们会立即改变自己的朝向(从左向右变成从右向左,反之亦然),然后继续移动。

·有qq次询问,每次询问给定kiki与titi,询问在titi秒后,孩子kiki目前的位置。

Bob无法同时关注这么多的孩子,请你帮帮他。

输入

第一行一个整数nn表示孩子数,孩子从00开始编号。

第二行nn个整数pipi,表示孩子们的初始位置。

第三行nn个整数didi,表示孩子们的初始朝向。di=0di=0则初始向左,di=1di=1则初始向右。

第四行一个整数qq 表示询问数。

接下来qq行每行两个整数ki,tiki,ti表示一个询问,询问在titi秒

后,孩子kiki (按输入顺序)目前的位置。

【数据范围】

20%的数据:n,pi,ti≤10n,pi,ti≤10

另有20%的数据:di均相同

另有20%的数据:q≤10q≤10

另有15%的数据:ti≤100ti≤100

另有15%的数据:n≤1000n≤1000

1OO%的数据:1≤n,q≤2∗1051≤n,q≤2∗105, 0≤ki

solution

首先可以发现,各个蚂蚁之间的相对位置不变

也就是说,如果k开始时排在rk_k.那么询问是也是询问rk_k的位置

我很弱只会暴力排序的做法

可以二分答案,然后再对朝左的和朝右的分别二分个数

小绿O(nlog^2n)

orzboen 2.5k分讨实现O(nlogn)

orzjarden 2.5k线段树上分讨实现O(nlogn)

#include

#include

#include

#include

#include

#include

#include

#define maxn 200005

#define inf 2e9

#define ll long long

using namespace std;

int n,rk,t,dy[maxn],t1,t2;

struct node{

int pl,d,id;

}s[maxn],a[maxn],b[maxn];

int pd(ll k){

int l=0,r=t1,sum=0;

while(l

int mid=l+r+1>>1;

if(a[mid].pl-t<=k)l=mid;

else r=mid-1;

}

sum=sum+l;

l=0,r=t2;

while(l

int mid=l+r+1>>1;

if(b[mid].pl+t<=k)l=mid;

else r=mid-1;

}

sum=sum+l;

//cout<

return sum;

}

bool cmp(node a,node b){

return a.pl

}

int main()

{

cin>>n;

for(int i=1;i<=n;i++){

scanf("%d",&s[i].pl);

s[i].id=i;

}

for(int i=1;i<=n;i++)scanf("%d",&s[i].d);

sort(s+1,s+n+1,cmp);

for(int i=1;i<=n;i++){

dy[s[i].id]=i;

if(s[i].d==0)a[++t1]=s[i];

else b[++t2]=s[i];

}

int Q;cin>>Q;

for(int i=1;i<=Q;i++){

scanf("%d%d",&rk,&t);rk++;

rk=dy[rk];

ll l=-inf,r=inf;

while(l

ll mid=l+r>>1;

if(pd(mid)

else r=mid;

}

printf("%lld\n",l);

}

return 0;

}

http://www.lbrq.cn/news/2370745.html

相关文章:

  • 网店代运营网seo应该如何做
  • 南宁做网站推广的公司哪家好网站推广专家
  • 公司开网站干嘛公司网站营销
  • 网站建设信息服务费计入什么科目seo点击软件手机
  • 织梦做的网站怎么样免费建站网站网页
  • 自己如何做公司网站口碑营销渠道
  • 苏州专业做网站公司哪家好百度加盟
  • b2c类型的网站农夫山泉软文300字
  • 开发网站网络公司有哪些长沙关键词快速排名
  • 专业做包装设计网站电子商务主要学什么内容
  • 汽车网站方案百度平台订单查询
  • 上海网站案例网络营销课程总结
  • 佛山专业网站建设广告推广图片
  • python网站开发 完整例子推广平台哪个效果最好
  • 毕业设计做网站大小有什么要求免费推广的平台都有哪些
  • 枣庄做网站建设的公司比较好网站制作公司
  • 网站制作需要什么域名注册
  • 做时时彩网站平台有哪些网络推广优化
  • 网站301怎么做seo流程
  • 国内最先做弹幕的网站网站免费推广平台
  • 美食网站建设策划书竞价网站
  • 网站域名可以做端口映射吗千锋教育的it培训怎么样
  • 建设银行理财网站网站开发用什么软件
  • 动漫设计包括哪些内容温州seo排名公司
  • 建筑公司企业技术负责人岗位职责seo数据分析
  • 自己做的网站怎么设置关键词百度app
  • 网站建设推广的话术广州网站定制多少钱
  • 密云网站开发公众号开发网站公司
  • 新开最好的传奇网站免费宣传平台
  • 开网站需要哪些程序安卓优化大师手机版下载
  • Redis7 底层数据结构解析
  • 排序算法—交换排序(冒泡、快速)(动图演示)
  • 端侧推理软件栈
  • CoreNext主题源码 V1.7.1开心版 WordPress轻量高性能主题
  • STM32 GPIO的八种工作模式
  • 基于conda包的环境创建、激活、管理与删除