首页 > 其他分享 >简单数学——星之影

简单数学——星之影

时间:2022-11-30 22:58:37浏览次数:35  
标签:lfloor frac int sum ans sqrt 星之影 数学 简单

星之影-垃圾推式子

简而言之,本题题意为求:

\[\sum_{x=1}^n\frac{1}{\lfloor\sqrt[4]x+\frac{1}{2}\rfloor} \]

观察这个式子,我们会发现, \(\sqrt[4]x\) 增长非常慢,于是可以采用类似于数论分块的思想

很明显, \({\lfloor\sqrt[4]x+\frac{1}{2}\rfloor}\) 的值是非严格单调递增的,且取\(1,2,3,4,……\)

下面我们来思考这个式子的值为 \(m\) 的时候, \(x\) 的取值范围,容易发现, \(x\) 最小可以是当 \(\sqrt[4]x+\frac{1}{2}=m\) ,也即 \(x=(\frac{2m-1}{2})^4\) 由于 \(m\) 是整数, \(x\) 是整数,可以知道 \(x\) 最大取到 \(x=(\frac{2m+1}{2})^4-1\) ,这里一共有取值总数:

\[(\frac{2m+1}{2})^4-1-(\frac{2m-1}{2})^4+1=4m^3+m \]

故对于一个足够大的 \(n\) ,当 \({\lfloor\sqrt[4]x+\frac{1}{2}\rfloor}=m\) 时,\(m\)的总贡献为: \(4m^2+1\) ,所以说,我们设 \(a\) 是对于 \(n\) 来说,满足 \(\sum_{k=1}^a(4k^3+k)\le n\) 的最大的 \(a\) ,这意味着我们可以直接对 \(1\sim a\) 的贡献进行求和,写成式子即这部分贡献为:

\[\sum_{k=1}^a\frac{1}{k}·(4k^3+k)=4\sum_{k=1}^ak^2+\sum_{k=1}^a1=\frac{2a(a+1)(2a+1)+3a}{3} \]

那么对于答案来说,剩下的部分即为值为 \(a+1\) 的部分,这个部分的总数量即为 \(1\sim n\) 的数量减去 \(1\sim a\) 中每个数出现的次数,写成式子即为:

\[n-\sum_{m=1}^a(4m^3+m)=n-4\sum_{m=1}^am^3-\frac{a(a+1)}{2}=n-a^2(a+1)^2-\frac{a(a+1)}{2} \]

其总贡献为:

\[\frac{1}{a+1}\left(n-a^2(a+1)^2-\frac{a(a+1)}{2}\right) \]

故,此时我们便可以计算出答案:

\[\frac{2a(a+1)(2a+1)+3a}{3}+\frac{1}{a+1}\left(n-a^2(a+1)^2-\frac{a(a+1)}{2}\right) \]

我们发现,现在我们的问题就是如何求出 \(a\) 的值

笔者在考场上,暂时没有想出,于是由于 \(a\) 的值具有单调性于是二分答案做的,此种做法已经可以通过本题,但本题还有\(O(1)\)做法

我们想想,对于 \(a\) 的定义是什么,很明显,是满足 \(\sum_{k=1}^a(4k^3+k)\le n\) 的最大的 \(a\) ,化简这个和式,有:

\[a^2(a+1)^2+\frac{a(a+1)}{2}\le n \]

我们使用换元法求解这个方程,很明显,令 \(t=a(a+1)\) ,则原方程化为: \(t^2+\frac{t}{2}\le n\) ,由于\(t\)肯定是一个正数,可以解得 \(0<t\le \frac{\sqrt{1+16n}-1}{4}\) ,带回 \(a\) ,可以解得 \(0<a\le \frac{\sqrt[4]{1+16n}-1}{2}\) ,根据 \(a\) 的定义,有 \(a=\left\lfloor\frac{\sqrt[4]{1+16n}-1}{2}\right\rfloor\) 也即 \(a+1=\left\lfloor\frac{\sqrt[4]{1+16n}+1}{2}\right\rfloor\)

所以说,我们可以 \(O(1)\) 的计算每一次的答案,不需要任何的预处理,这道题的答案写成最终形式就是:

\[\sum_{i=1}^n\frac{1}{\lfloor\sqrt[4]x+\frac{1}{2}\rfloor}=\frac{2a(a+1)(2a+1)+3a}{3}+\frac{1}{a+1}\left(n-a^2(a+1)^2-\frac{a(a+1)}{2}\right) \]

其中 \(a=\left\lfloor\frac{\sqrt[4]{1+16n}-1}{2}\right\rfloor\)

那么程序也就不难实现了:

#include<iostream>
#include<cstdio>
#include<cmath>
#define int long long
int n,m,t;
int get(int x){//求1/1~1/n的所有项的和 
	return (2*x*(x+1)*(x*2+1)+3*x)/3;
}
int count(int x){
	return x*x*(x+1)*(x+1)+x*(x+1)/2;
} 
int find(int n){//寻找第n个数是属于a的哪一个元素 
	return (sqrt(sqrt(1.0+16.0*n))+1)/2;
} 
double solve(int t){
	double ans=0;
	int now=find(t);
//	printf("%lld \n",now);
	ans+=get(now-1);
	ans+=1.0*(t-count(now-1))/now;
	return ans;
}
typedef long long ll;
char buf_ans[114];
ll next_n(double last_ans=0,ll get_n=0){
	//last_ans<n<=1e18
	sprintf(buf_ans,"%.6f",last_ans);
	for(ll i=0,x=0;;i++){
		if(buf_ans[i]=='.')return get_n^x;
		if(i&1)x*=10;
		else x=x*10+(buf_ans[i]^48);
	}
}
signed main(){
	scanf("%lld",&t);
	double lst=0;
	while(t--){
		int x;
		scanf("%lld",&x);
		x=next_n(lst,x);
		printf("%.6f\n",lst=solve(x));
	}
}

注:

  1. 程序中代码是求的a+1
  2. \(\sum_{i=0}^ni^2=\frac{n(n+1)(2n+1)}{6}\)
  3. \(\sum_{i=0}^{n}i^3=\frac{n^2(n+1)^2}{4}\)
  4. 前面两个式子可以试着推一推

练习题:

求:

\[\sum_{k=0}^n\lfloor\sqrt{k}\rfloor \]

\[\sum_{k=1}^n\frac{1}{\lfloor\sqrt{k}\rfloor} \]

这个甚至比上一个更加简单,只需要套一下就行

标签:lfloor,frac,int,sum,ans,sqrt,星之影,数学,简单
From: https://www.cnblogs.com/oierpyt/p/16940059.html

相关文章

  • 简单计数DP
    计数DP顾名思义,这是对于方案统计的DP类型需要记住的公式:在平面直角坐标系中,从点\((x_1,y_1)\)走到\((x_2,y_2)\),\((x_1<x_2,y_1,<y_2),\)每一步只能使得\(x_1+1\)或者......
  • 简单组合计数
    简单组合计数组合计数基础几个原理:1.加法原理:若完成一件事有\(n\)类不同的方法,第\(i\)类方法有\(a_i\)种方法,且这些方法互不重合则完成这件事共有\(\sum_{i=1}^na_i\)种......
  • 数学期望
    期望概率与数学期望在概率论中,我们把一个随机实验的某种可能的结果称为样本点,把所有可能的结果构成的集合称为样本空间,在一个给定的样本空间中,随机事件就样本空间的自己,......
  • 容斥与简单莫反
    容斥与莫比乌斯函数容斥原理:介绍:设集合\(S_1\simS_n\),记\(|S_i|\)表示集合\(S_i\)的大小,设\(\cup\)表示集合的并集运算,\(\cap\)表示集合的交集运算,则\[\left|\bigcup_......
  • 进程与线程的一个简单解释
    进程​(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承......
  • TS的优点,简单版
    #TS的优势+更早发现错误,提高开发效率+随时随地提示,增强开发体验+强大类型系统,代码可维护性更好,重构代码更容易+类型推断机制,减少不必要类型注解,让代码更简单+v......
  • 简单快捷又实用,SmartRooms智能会议室全都能满足​
    简单快捷又实用,SmartRooms智能会议室全都能满足​近年来,混合办公日益成为职场人的常态,企业也纷纷上马各类视频会议硬件终端,然而线上线下、内外部会议割裂,各品牌软硬件孤岛的......
  • BUUCTF-PWN-前五页简单回顾
    学pwn到现在快三个月了,在BUU上做了前五页共160题,不能把刷过的题的技巧都给忘了,再做一遍还不是得心应手的题,同时堆题很灵活,要多总结才能举一反三。现在写下刚开始学的......
  • 一个简单的ssm案例之Mybatis框架搭建
    1、修改AccountDaopackagecom.cnstrong.dao;importcom.cnstrong.domain.Account;importorg.apache.ibatis.annotations.Insert;importorg.apache.ibatis.annotations.Se......
  • 一个简单的ssm案例之spring整合mybatis
    把生成的代理对象存到ioc容器中,service就可以拿到代理对象并注入,就可以调用dao中的方法。1、修改applicationContext.xml<?xmlversion="1.0"encoding="UTF-8"?><beansxm......