1,2,2,3,3,4,4,4,......
题目描述:
有一个数列A={1,2,2,3,3,4,4,4,……}。数字i有A[i]个。
设F[i]表示数字i最后一次出现的位置。G[i]表示数字F[i]最后一次出现的位置,即G[i]=F[F[i]]。求G[i]。(i<=1e9),答案模1e9+7。有多组数据。
解题正确性证明:
根据定义F[i]=A[1]+A[2]+A[3]+……+A[i]。由此我们可以很方便地求出F[i]。我们甚至可以由G[i]=F[F[i]]求出G[i]。但是题目的i很大,F[i]更大,直接求G[i]不可能。
再推导G[i]-G[i-1]=A[1]+A[2]+A[3]+……+A[F[i]]-(A[I]+A[2]+A[3]+……+A[F[i-1]])
=A[F[i-1]+1]+A[F[i-1]+2]+……+A[F[i]]。
因为F[i-1]是i-1最后一次出现的位置所以A[F[i-1]+1]=A[F[i-1]+2]=A[F[i-1]+3]=……=A[F[i]]=i。
又因为F[i-1]+1到F[i]的个数是A[i]。
所以G[i]-G[i-1]=i*A[i]。
所以G[i]=1*A[1]+2*A[2]+3*A[3]+……+i*A[i]。
因为A[i]在某一段是连续的,确切地说A[F[A[i]-1]+1]=A[F[A[i]-1]+2]=A[F[A[i]-1]+3]=……=A[F[A[i]]=A[i]。
G[i]=F[1]*1+(F[1]+1)*2+F[2]*2+(F[2]+1)*3+F[3]*3+……
+(F[A[i]-1]+1)*A[F[A[i]]+(F[A[i]-1]+2)*A[F[A[i]]+……+i*A[F[A[i]]。
又因为{F[A[i]-1]+1,F[A[i]-1]+2,F[A[i]-1]+3,……,F[A[i]]}为等差数列。
所以G[i]=(F[0]+F[1]+1)*A[1]/2*1+(F[1]+F[2]+1)*A[2]/2*2+(F[2]+F[3]+1)*A[3]/2*3+……
+(F[A[i]-1]+i+1)*(i-F[A[i]-1])/2*A[F[A[i]]]。为了形式上的统一,这里假定F[0]=0。
这个等式中我们最多只用到了F[A[i]],当i很大时,A[i]远小于i,所以我们可以通过这个等式求出G[i]。
特别地,当i=F[A[i]]时,最后一段求和恰好也完整,此时有
G[i]=(F[0]+F[1]+1)/2*1+(F[1]+F[2]+1)*A[2]/2*2+(F[2]+F[3]+1)/2*3+……
+(F[A[i]-1]+F[A[i]]+1)*A[A[i]]/2*A[i]。因为有多组数据,所以我们先预处理出所有G[F[j]],1<=j<=A[i]。
转载于:https://www.cnblogs.com/JebediahKerman/p/6020681.html
最新文章
- mysql的判断更新_mysql判断记录是否存在,存在则更新,不存在则插入
- Git学习(1)-本地版本库的创建
- 组态王bitset用法_关于STEP7在组态王里定义I/O离散变量
- BZOJ 1831 逆序对
- Python学习(三十七)—— 模板语言之自定义filter和中间件
- React-如何在jsx中自动补全标签(vscode)
- Dev C++下载地址和安装教程(图解版)
- 两个月的一些工作总结
- 系统分析员、系统架构师、项目经理的区别
- 洛谷1156 垃圾陷阱
- 利用c语言绘制漫天星空-动画
- 基于Tofu的热红外、多波段目标识别跟踪系统
- 计算机与工作 生活的小论文,电脑与生活作文
- cad旋转命令_如何将CAD图形旋转至水平位置?
- 矩阵的最小路径和(Java)
- 创建Predix UAA(User Account and Authentication)
- tp-link wr 841n 300m 局域网限速的研究
- gitee码云的使用
- C#开发 VSTO 自定义功能开发Ribbon显示在任意窗格栏
- 计算机编程怎样打符号,在CAD中如何输入一些特殊符号?比如乘除、符号.
热门文章
- 我为什么用 SQLite 和 FMDB 而不用 Core Data
- 受损虚拟机的修复方法
- java单例模式和HashMap的线程安全
- WinXp怎么开机进入Dos
- EPCS 无法配置FPGA的解决方法以及JTAG、AS调试总结
- python boxplot用法_Boxplot的介绍和使用
- 扩展中断控制器8259实验_「正点原子FPGA连载」第十三章双核AMP实验
- matlab 均值滤波_数字图像处理基础 — 高斯滤波
- js 去重某个键值 数组对象_JS数组去重常见方法分析
- android 程序的目录,Android应用程序目录