首页 > 其他分享 >2023.10.4测试

2023.10.4测试

时间:2023-10-04 16:22:23浏览次数:39  
标签:10 int res 2023.10 varphi leq 测试 max

T1 最短路

T2 欧拉函数

给定常数 \(B\),\(T\) 组测试数据,每次给定 \(l,r\),求

\[\sum_{x=l}^r\varphi^{(\max_{i=1}^x\varphi(x)-B)}(x) \]

当 \(\max_{i=1}^x\varphi(x)-B\leq 0\) 时 \(\varphi^{(\max_{i=1}^x\varphi(x)-B)}(x)=x\)

\(1\leq T\leq 10^5\),\(1\leq r,B\leq 10^9\)

暴力做 \(r\leq 10^6\) 拿到 \(72\) 分

其实很容易想到 \(\varphi\) 迭代 \(\log\) 次后就会变成 \(1\),但是一些具体的实现没有想到

对于 \(i\leq B\) 的贡献就是 \(i\),对于第一个 \(\varphi(x)>\log V+1\) 的 \(x\),\([x,r]\) 的贡献都是 \(1\)

问题是怎么找到这个 \(x\)

打表发现质数的密度并不小,而质数的 \(\varphi\) 值就是自己减 \(1\),所以 \(\max_{i=1}^x\varphi(x)\) 就约等于 \(i\) 前面的第一个质数的 \(\varphi\) 值。因此可以设一个阈值 \(M\),令 \(x=B+M+1\),这样对于 \([x,n]\) 的贡献都直接计算

对于 \([B,B+M]\) 的部分,暴力计算即可

#include<bits/stdc++.h>
#pragma GCC optimize(3,"Ofast","inline")
#define LL long long 
using namespace std;

const int N=1e6+10,M=200;

int T,l,r,B;
LL g[M+10];

int getphi(int x)
{
	int res=x;
	for(int i=2; i*i<=x; i++)
	{
		if(x%i==0)
		{
			res=1LL*res*(i-1)/i;
			while(x%i==0)
				x/=i;
		}
	}
	if(x>1)
		res=1LL*res*(x-1)/x;
	return res;
}

LL f(int k,int x)
{
	if(k<=0)
		return x;
	if(k==1)
		return (LL)getphi(x);
	if(x==1)
		return 1;
	return f(k-1,getphi(x));
}

bool isprime(int x)
{
	if(x==1)
		return 0;
	for(int i=2; i*i<=x; i++)
		if(x%i==0)
			return 0;
	return 1;
}

void prework()
{
	int mx=0;
	for(int i=B+1; i<=B+M; i++)
	{
		if(isprime(i))
			mx=i-1;
		g[i-B]=f(mx-B,i)+g[i-B-1];
	} 
}

LL calc(int x)
{
	if(x<=B)
		return 1LL*(1+x)*x/2;
	LL res1=1LL*(1+B)*B/2;
	LL res2=g[min(x,B+M)-B];
	if(x<=B+M)
		return res1+res2;
	LL res3=x-(B+M);
	return res1+res2+res3;
}

void mian()
{
	scanf("%d%d",&l,&r);
	printf("%lld\n",calc(r)-calc(l-1));
} 

int main()
{
	freopen("b.in","r",stdin);
	freopen("b.out","w",stdout);
	
	scanf("%d%d",&T,&B);
	
	prework();
	while(T--)
		mian();

	return 0;
}

标签:10,int,res,2023.10,varphi,leq,测试,max
From: https://www.cnblogs.com/xishanmeigao/p/17742405.html

相关文章

  • 软件测试之性能测试实践 、关键词解释 、测试方法
    一、关键词 性能测试中的关键词有响应时间、并发用户数、吞吐量、性能计数器、思考时间,这是性能测试中常用的几个概念,必须要有清晰的认识。(1)响应时间 响应时间的定义可以参考下图,通常的响应时间是指从C1一直到C2全部的时间,这里我想补充的一个知识点是,由于前端性能这些年越......
  • 445端口被屏蔽的解决办法(已测试)
         为了节省大家宝贵的时间,特收集了一些解决屏蔽445端口的方法,网上的方法很多,对于一些像我一样的小白来说,还真有点不知道具体如何操作,看了很多大神的解决方法后,于是总结了一下具体的操作流程,用以方便像我一样的小白,期望达到小白共勉的目的!1、原因说明:前两年勒索病毒WannaCr......
  • 2023.10.3——每日总结
    学习所花时间(包括上课):0h代码量(行):0行博客量(篇):1篇今天,上午学习+休息,下午学习+休息;我了解到的知识点:1.Vue2.终于有一段较长且不被打扰的时间,系统的学习一下JavaWeb,以https://www.bilibili.com/video/BV1m84y1w7Tb为准;明日计划:学习+休息......
  • 2023.10.3日报
    npminstallvue-router@3---用于vue2npminstallvue-router@4---用于vue3vue-router主要是用于跳转<template><!--<divid="app">--><!--<imgalt="Vuelogo"src="./assets/logo.png">--><!--<......
  • 2023.10.03补题两则
    2023.10.03T2Solution在\(\bmod{2}\)意义下,\(-x^{c}=x^{c}\)。对于\(A_i\equivC\pmod{B}\),变为\(A_i-C\equiv0\pmod{B}\),那么\(-C\)操作可以看成是异或上\(C\)。对于\(A^{'}_i\equiv0\pmod{B}\)的形式,欲找到最大的\(B\),则\(B\)显然是\(\gcd\......
  • 接口自动化测试
    基于pytest和allure构建自动化测试框架与项目框架目录结构我们要构建一个自动化测试框架,就要以项目的概念来对项目中的所有代码文件进行划分目录和文件结构,需要设计一个合理的目录结构,以便与测试开发团队的其他人员的开发和测试,也便于项目的维护设计的项目目录如下根目录├......
  • 2023.10.2日报
    今天继续配置idea和vue,又是大战bug的一天,yysy,需要使用这个项目,安装一个插件,很合理吧那为啥idea会和vue插件冲突,我不理解,反正报错就是failedtosaving......,所有的项目直接都打不开点击html或者java或者vue文件也没用,很离谱......
  • 2023.10.1记录
    被NOIP提高组的题暴虐。[NOIP2000提高组]方格取数NOIP2000提高组]方格取数-洛谷|计算机科学教育新生态(luogu.com.cn)题意从一个\(n\timesn\)的矩阵的左上角走到右下角,只能往右边和下边走,选择两条路,把这两条路经过的单位的数字取走,每个单位的数字只能取一次,求最大能......
  • 内网穿透:实现远程访问和测试内部网络的关键技术
    ......
  • 渗透测试实战-CS工具使用
    ★关于道德伦理的忠告★关于一些网络安全实战内容,我还是不厌其烦的写上这些忠告,请见谅。以下内容摘自《Metasploit渗透测试指南》作为一名渗透测试者,我们可以击败安全防御机制,但这是仅仅是我们工作的一部分。当你进行渗透攻击时,请记住如下的忠告:不要进行恶意的攻击;不要......