P7099-[yLOI2020]灼【数学期望,结论】

正题

题目链接:https://www.luogu.com.cn/problem/P7099


题目大意

给出nnn个坐标轴上的点,qqq次询问从某点出发每次等概率向左或者向右一格求到达某个给出点的期望步数。
保证每个询问点左右都有目标点

1≤n≤105,1≤q≤5×106,1≤xi,yi≤1091\leq n\leq 10^5,1\leq q\leq 5\times 10^6,1\leq x_i,y_i\leq 10^91n105,1q5×106,1xi,yi109


解题思路

每个询问具体分析,离左边点的距离为lll,右边点的距离为rrr
fif_ifi表示从iii出发到达终点的期望距离,那么有
fi=fi−1+fi+12+1f_i=\frac{f_{i-1}+f_{i+1}}{2}+1fi=2fi1+fi+1+1
然后f−l=fr=0f_{-l}=f_r=0fl=fr=0然后求f0f_0f0

然后拆出来
2fi=fi−1+fi+1+22f_i=f_{i-1}+f_{i+1}+22fi=fi1+fi+1+2
(fi+1−fi)−(fi−fi−1)=−2(f_{i+1}-f_{i})-(f_{i}-f_{i-1})=-2(fi+1fi)(fifi1)=2
也就是fff数组两次差分是一个常数,所以说fff可以被表示成一个二次函数,设fx=ax2+bx+cf_x=ax^2+bx+cfx=ax2+bx+c,那么fx′=fx−fx−1=2ax−a+bf'_x=f_{x}-f_{x-1}=2ax-a+bfx=fxfx1=2axa+b,然后fx′′=fx′−fx−1′=2a=−2f''_x=f'_{x}-f'_{x-1}=2a=-2fx=fxfx1=2a=2,所以fx=−x2+bx+cf_x=-x^2+bx+cfx=x2+bx+c

因为知道零点{−(−l)2+b(−l)+c=0−r2+br+c=0\left\{\begin{matrix}-(-l)^2+b(-l)+c=0\\-r^2+br+c=0\end{matrix}\right.{(l)2+b(l)+c=0r2+br+c=0,所以解出来{b=r−lc=l×r\left\{\begin{matrix}b=r-l\\c=l\times r\end{matrix}\right.{b=rlc=l×r

所以其实答案就是l×rl\times rl×r

时间复杂度O(nlog⁡n)O(n\log n)O(nlogn)


code

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cctype>
using namespace std;
const int N=1e5+10,P=998244353;
int T,n,q,a[N];
int read(){int x=0,f=1;char c=getchar();while(!isdigit(c)){if(c=='-')f=-f;c=getchar();}while(isdigit(c)){x=(x<<1)+(x<<3)+c-'0';c=getchar();}return x*f;
}
int main()
{T=read();n=read();q=read();for(int i=1;i<=n;i++)a[i]=read();sort(a+1,a+1+n);int k=1,p1=0,p2=0,p3=0,p4=2147483647;for(int i=1;i<=q;i++){int x=read();while(k<n&&a[k]<x)k++;int ans=1ll*(a[k]-x)*(x-a[k-1])%P;p1^=ans;p2+=(ans&1);p3=max(p3,ans);p4=min(p4,ans);}printf("%d\n%d\n%d\n%d",p1,p2,p3,p4);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/318813.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P4258-[WC2016]挑战NPC【带花树】

正题 题目链接:https://www.luogu.com.cn/problem/P4258 题目大意 给出nnn个球&#xff0c;mmm个篮筐&#xff0c;每个球都可以被放入一些特定的篮筐&#xff0c;每个球都要放&#xff0c;要求球的个数小于等于111的篮筐数量最多。 保证有解&#xff0c;输出方案。 1≤T≤5,1…

.NET Core实战项目之CMS 第五章 入门篇-Dapper的快速入门看这篇就够了

写在前面上篇文章我们讲了如在在实际项目开发中使用Git来进行代码的版本控制&#xff0c;当然介绍的都是比较常用的功能。今天我再带着大家一起熟悉下一个ORM框架Dapper&#xff0c;实例代码的演示编写完成后我会通过Git命令上传到GitHub上&#xff0c;正好大家可以再次熟悉下G…

倍增:喷泉 深度解析(洛谷P7167)

洛谷传送门 解析 什么破题 数据范围来看很明显最多到nlogn 首先&#xff0c;对于样例进行一下分析&#xff1a; 我们可以把它转化为一棵树&#xff1a; 每一个根都有对应的权&#xff0c;给你一个结点和加权和&#xff0c;问能爬到哪里 既然是树&#xff0c;自然要找爸爸…

2021牛客暑期多校训练营3 B-Black and white(思维+最小生成树)

B-Black and white 效仿codeforces1012 B. Chemical table&#xff08;并查集思维&#xff09;&#xff0c;只不过边带权&#xff0c;是的nm个点联通&#xff0c;显然就是求最小生成树。 Code1 Kruskal O(n2log⁡n2)O(n^2\log n^2)O(n2logn2) #include<bits/stdc.h> u…

牛客题霸 [ 实现二叉树先序,中序和后序遍历]C++题解/答案

牛客题霸 [ 实现二叉树先序&#xff0c;中序和后序遍历]C题解/答案 题目描述 分别按照二叉树先序&#xff0c;中序和后序打印所有的节点。 题解&#xff1a; 先序&#xff0c;中序&#xff0c;后序都是按照各自规律的 先序的遍历顺序是中前后 中序是前中后 后序是前后中 这…

P5163-WD与地图【tarjan,整体二分,线段树合并】

正题 题目链接:https://www.luogu.com.cn/problem/P5163 题目大意 给出nnn个点mmm条有向边&#xff0c;点有权值&#xff0c;要求支持操作 删除一条边修改一个点的权值求一个点所在强连通分量中前kkk大权值和 1≤n≤105,1≤m,q≤21051\leq n\leq 10^5,1\leq m,q\leq 2\times…

分布式系统(微服务架构)的一致性和幂等性问题相关概念解析

前言什么是分布式系统?关于这点其实并没有明确且统一的定义。在我看来,只要一个系统满足以下几点就可以称之为分布式系统系统由物理上不同分布的多个机器节点组成系统的多个节点通过网络进行通信,协调彼此之间的工作。系统作为整体统一对外提供服务,其分布式细节对客户端透明。…

hash:奶牛看地图(洛谷P3405 [USACO16DEC]Cities and States S)

洛谷传送门 解析 其实就是每组2个长度为2的字符串统计交叉相等的个数 每个序列可以用一个26进制的数来表示&#xff0c;总要加个标签&#xff0c;勉强算hash。。&#xff08;想叫《水题》 &#xff09; 最大值为26*26&#xff08;ZZ&#xff09; 所以可以开一个二维数组来进…

牛客题霸 [两个链表的第一个公共结点] C++题解/答案

牛客题霸 [两个链表的第一个公共结点] C题解/答案 题目描述 输入两个链表&#xff0c;找出它们的第一个公共结点。&#xff08;注意因为传入数据是链表&#xff0c;所以错误测试数据的提示是用其他方式显示的&#xff0c;保证传入数据是正确的&#xff09; 题解&#xff1a;…

L. Mod(预处理+分块)

L.Mod 题目大意 给定一个序列和 l,r,kl,r, kl,r,k&#xff0c;询问 [l,r][l,r][l,r] 中的数字 mod kkk 的最大值,1≤n,k≤500001\leq n,k\leq 500001≤n,k≤50000 分块&#xff0c;预处理fi,jf_{i,j}fi,j​表示第iii块mod jjj的最大值。 对于每一块&#xff0c;维护 mximx_i…

AT2667-[AGC017D]Game on Tree【SG函数】

正题 题目链接:https://www.luogu.com.cn/problem/AT2667 题目大意 给出nnn个点的一棵树&#xff0c;每次可以割掉一条和根节点联通的边&#xff0c;轮流操作直到不能操作的输&#xff0c;求是否先手必胜。 1≤n≤21051\leq n\leq 2\times 10^51≤n≤2105 解题思路 挺巧妙的…

bfs:01迷宫(洛谷P1141)

洛谷传送门 解析 乍一看&#xff1a;bfs板子题 冰法师最棒了 然鹅 看了一眼数据范围 心中已有画面 《面 堂 发 黑》 怎么办嘞&#xff1f; 我们想到&#xff1a; 因为该题来与去的可逆性 我们搜一次后&#xff0c;这些点以后都不会再用到 而且每次覆盖到的所有点答案都是…

有关C# 8.0、.NET Framework 4.8与NET Standard 2.1的一个说明

早在本月12日&#xff0c;微软官方的.NET Blog发布了一篇名为《Building C# 8.0》的文章&#xff0c;介绍了很多C# 8.0的新特性。不过本文主要讨论的并不是C# 8.0的新特性&#xff0c;而是存在于这篇文章中的一段文字&#xff1a;Most of the C# 8.0 language features will ru…

2021牛客暑期多校训练营1 J-Journey among Railway Stations(线段树+思维转化)

J-Journey among Railway Stations 注意区间合并时是否可行信息的合并。 假设线段树当前左节点lll维护的区间是[L,mid][L,\text{mid}][L,mid]&#xff0c;右节点维护的区间为[mid1,R][\text{mid1},R][mid1,R] 如果它们分别可行&#xff0c;意味着可以从L→midL\to \text{mid}…

牛客题霸 [括号序列] C++题解/答案

牛客题霸 [括号序列] C题解/答案 题目描述 给出一个仅包含字符’(’,’)’,’{’,’}’,’[‘和’]’,的字符串&#xff0c;判断给出的字符串是否是合法的括号序列 括号必须以正确的顺序关闭&#xff0c;"()“和”()[]{}“都是合法的括号序列&#xff0c;但”(]“和”([…

P3964-[TJOI2013]松鼠聚会【计算几何】

正题 题目链接:https://www.luogu.com.cn/problem/P3964 题目大意 给出nnn个点&#xff0c;求一个点使得它到所有点的切比雪夫距离和最小。 0≤n≤105,−109≤xi,yi≤1090\leq n\leq 10^5,-10^9\leq x_i,y_i\leq 10^90≤n≤105,−109≤xi​,yi​≤109 解题思路 额切比雪夫距…

领域驱动设计,让程序员心中有码

“ 领域驱动设计的背后&#xff0c;需要开发者不能只专注于眼前功能的实现&#xff0c;而应该能够从全局去了解业务&#xff0c;并充分的将业务吃透&#xff0c;以可传承的知识的形式融入到开发过程中&#xff0c;只有这样才能促进产品更好的开发。”01—传统项目管理模式&…

模板:快读

我也学会快读了~~~ 没啥可讲的 注意对负号的处理 int input () {int x 0, f 0;char c getchar ();while (c < 0 || c > 9) f c -, c getchar ();while (c > 0 && c < 9) x (x << 1) (x << 3) (c ^ 48), c getchar ();return f ? -…

codeforces1553 F. Pairwise Modulo(数学)

F. Pairwise Modulo 想到了&#xff0c;但又没完全想到。。wtcl 首先 pkpk−1∑1≤i<kakmodai∑1≤i<kaimodakp_kp_{k-1}\sum_{1\leq i<k} a_k \bmod \ a_i\sum_{1\leq i<k} a_i \bmod \ a_kpk​pk−1​∑1≤i<k​ak​mod ai​∑1≤i<k​ai​mod ak​ ∑1≤…

牛客题霸 [寻找第K大] C++题解/答案

牛客题霸 [寻找第K大] C题解/答案 题目描述 有一个整数数组&#xff0c;请你根据快速排序的思路&#xff0c;找出数组中第K大的数。 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间)&#xff0c;请返回第K大的数&#xff0c;保证答案存在。 题目&#xff1a; …