【GDCPC2024】【min_25筛】J.另一个计数问题

题目

传送门
在这里插入图片描述

思路

考场上的思路和正解差远了,属实是反演学魔怔了。

首先,对于所有的 x x x,它可以通过 2 x 2x 2x 2 2 2 连通,而 2 2 2 又可以和所有 m i n p ≤ ⌊ n 2 ⌋ minp\leq \left\lfloor\frac{n}{2}\right\rfloor minp2n 的数连通。所以只有 p > ⌊ n 2 ⌋ p>\left\lfloor\frac{n}{2}\right\rfloor p>2n 是被孤立的点。

那么,答案就可以转换成
∑ u = 2 n − 1 ∑ v = u + 1 n [ m i n p ( u ) < ⌊ n 2 ⌋ & m i n p ( v ) < ⌊ n 2 ⌋ ] u v = ∑ u = 2 n − 1 ∑ v = u + 1 n u v − ∑ p > ⌊ n 2 ⌋ p ( ∑ v > p v + ∑ u < p u ) + ∑ p 1 > ⌊ n 2 ⌋ p 1 ∑ p 2 > p 1 p 2 = ∑ u = 2 n − 1 ∑ v = u + 1 n u v − ∑ p > ⌊ n 2 ⌋ p ∑ v = 2 n v + 1 2 ( ( ∑ p > ⌊ n 2 ⌋ p ) 2 + ∑ p > ⌊ n 2 ⌋ p 2 ) \sum_{u=2}^{n-1}\sum_{v=u+1}^n[minp(u)<\left\lfloor\frac{n}{2}\right\rfloor \& minp(v)<\left\lfloor\frac{n}{2}\right\rfloor]uv\\ =\sum_{u=2}^{n-1}\sum_{v=u+1}^nuv-\sum_{p>\left\lfloor\frac{n}{2}\right\rfloor}p\left(\sum_{v>p}v+\sum_{u<p}u \right)+\sum_{p_1>\left\lfloor\frac{n}{2}\right\rfloor}p_1\sum_{p_2>p_1}p_2\\ =\sum_{u=2}^{n-1}\sum_{v=u+1}^nuv-\sum_{p>\left\lfloor\frac{n}{2}\right\rfloor}p\sum_{v=2}^nv+\frac{1}{2}\left(\left(\sum_{p>\left\lfloor\frac{n}{2}\right\rfloor}p\right)^2+\sum_{p>\left\lfloor\frac{n}{2}\right\rfloor}p^2\right) u=2n1v=u+1n[minp(u)<2n&minp(v)<2n]uv=u=2n1v=u+1nuvp>2np(v>pv+u<pu)+p1>2np1p2>p1p2=u=2n1v=u+1nuvp>2npv=2nv+21 p>2np 2+p>2np2

所以我们只需要用 min25筛 求出质数的和还有平方和就可以啦。用 g ( n , ∣ P ∣ ) g(n,|P|) g(n,P) 即可。
注意,不要跑两遍,会T。 ⌊ n 2 ⌋ \left\lfloor\frac{n}{2}\right\rfloor 2n 是在整除分块中求过的,可以直接用。

代码

#include<bits/stdc++.h>
#define int long longusing namespace std;
const int N=1e6+7,inf=1e18,mod=998244353;
int sqr,n,tot;
vector<int> sp1(N),sp2(N),g1(N),g2(N),w(N),id1(N),id2(N),p;
int power(int x,int t)
{int b=1;while(t){if(t&1) b=b*x%mod;x=x*x%mod; t>>=1;}return b;
}
void init(int n)
{p.push_back(0);tot=0;vector<bool> bz(n+1);for(int i=2; i<=n; i++){if(!bz[i]){p.push_back(i);int now=p.size()-1;sp1[now]=(sp1[now-1]+i)%mod;sp2[now]=(sp2[now-1]+i*i%mod)%mod;}for(auto j:p){if(!j) continue;if(i*j>n) break;bz[i*j]=1;if(i%j==0) break;}}
}
void O_o()
{cin>>n;sqr=sqrt(n);init(sqr);int inv2=power(2,mod-2),inv3=power(3,mod-2);for(int i=1,j; i<=n; i=j+1){j=n/(n/i);w[++tot]=n/i;int now=w[tot]%mod;g1[tot]=now*(now+1)/2%mod-1;g2[tot]=now*(now+1)%mod*(2*now+1)%mod*inv2%mod*inv3%mod-1;if(w[tot]<=sqr) id1[w[tot]]=tot;else id2[n/w[tot]]=tot;}for(int i=1; i<p.size(); i++){for(int j=1; j<=tot,p[i]*p[i]<=w[j]; j++){int k=w[j]/p[i]<=sqr?id1[w[j]/p[i]]:id2[n/(w[j]/p[i])];//g(w[j],i) = g(w[j],i-1) - f'(p[i])*(g(w[k],j-1)-sp[i-1])(g1[j]-=p[i]*(g1[k]-sp1[i-1])%mod)%=mod;(g2[j]-=p[i]*p[i]%mod*(g2[k]-sp2[i-1])%mod)%=mod;}}int f1=g1[1],f2=g2[1];//g(n,|P|)int k=n/2<=sqr?id1[n/2]:id2[n/(n/2)];int h1=g1[k],h2=g2[k];//g(n/2,|P|)n%=mod;int ans=inv2*(inv2*(n*n%mod+n)%mod*(n*(n-1)%mod-2)%mod-inv2*inv2%mod*n%mod*n%mod*(n-1)%mod*(n-1)%mod+2-inv2*inv3%mod*n%mod*(n-1)%mod*(2*n-1)%mod)%mod;ans=ans-(n*(n+1)/2%mod-1)*(f1-h1)%mod+((f1-h1)*(f1-h1)%mod-(f2-h2))*inv2%mod+(f2-h2);ans%=mod;(ans+=mod)%=mod;cout<<ans<<"\n";
}
signed main()
{ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);cout<<fixed<<setprecision(2);int T=1;
//	cin>>T;while(T--){O_o();}
}

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

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

相关文章

浏览器插件利器--allWebPluginV2.0.0.16-alpha版发布

allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品&#xff0c;致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX插件直接嵌入浏览器&#xff0c;实现插件加载、界面显示、接口调用、事件回调等。支持chrome、FireFo…

江协科技51单片机学习- p27 I2C AT24C02存储器

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

Wikijs 部署教程

以下是一个 Wikijs 部署的简单教程&#xff0c;涵盖了使用 Docker 和直接安装两种方式&#xff1a; 方法一&#xff1a; 使用 Docker (推荐) Docker 是一个方便快捷的方式来部署 Wikijs&#xff0c;它可以避免许多手动配置步骤。 安装 Docker: 按照 https://docs.docker.com/…

JRE、JVM、JDK分别是什么。

JDK JDK的英文全称是Java Development Kit。JDK是用于制作程序和Java应用程序的软件开发环境。JDK 是 Java 开发工具包&#xff0c;它是 Java 开发者用来编写、编译、调试和运行 Java 程序的集合。JDK 包括了 Java 编译器&#xff08;javac&#xff09;、Java 运行时环境&…

【已解决】如何在一篇笔记中呈现另一篇笔记的内容,hover editor插件?obsidian

问题 问题&#xff1a;【已解决】如何让一篇笔记内容在另一篇的笔记里呈现&#xff1f; - 疑问解答 - Obsidian 中文论坛 如何在一篇笔记里&#xff0c;在插入内链接时&#xff0c;同时展示内链接的笔记中的内容&#xff1f; 比如&#xff1a; 哲学是一门[[学问]]这篇笔记…

2024年上半年信息系统项目管理师——综合知识真题题目及答案(第1批次)(3)

2024年上半年信息系统项目管理师 ——综合知识真题题目及答案&#xff08;第1批次&#xff09;&#xff08;3&#xff09; 第41题&#xff1a;在应用集成中&#xff0c;有多个组件帮助协调连接各种应用。其中&#xff08;&#xff09;利用特定的数据结构&#xff0c;帮助开发人…

电脑硬盘里的文件能保存多久?电脑硬盘文件突然没了怎么办

在数字化时代&#xff0c;电脑硬盘作为我们存储和访问数据的重要设备&#xff0c;承载着无数珍贵的回忆、工作成果和创意灵感。然而&#xff0c;硬盘里的文件能保存多久&#xff1f;当这些文件突然消失时&#xff0c;我们又该如何应对&#xff1f;本文将深入探讨这两个问题&…

13-《鸭跖草》

鸭跖草 鸭跖草&#xff0c;拉丁学名&#xff1a;&#xff08;Commelina communis&#xff09;&#xff0c;别名碧竹子、翠蝴蝶、淡竹叶等。属粉状胚乳目、鸭跖草科、鸭跖草属一年生披散草本。鸭跖草叶形为披针形至卵状披针形&#xff0c;叶序为互生&#xff0c;茎为匍匐茎&…

实验发现AI提高了个人创造力,但降低了整体创造力

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

【ingress-nginx】安装配置及Helm工具安装

【ingress-nginx】安装配置及Helm工具安装 安装时候需要用到一个工具——Helm【相当于linux中的yum工具】。 一&#xff0c;Helm安装 官网&#xff1a;https://helm.sh/docs/intro/install # 下载 wget https://get.helm.sh/helm-v3.2.3-linux-amd64.tar.gz# 解压 tar -zxv…

【数据结构】初探数据结构面纱:栈和队列全面剖析

【数据结构】初探数据结构面纱&#xff1a;栈和队列全面剖析 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;数据结构 文章目录 【数据结构】初探数据结构面纱&#xff1a;栈和队列全面剖析前言一.栈1.1栈的概念及结构1.2栈的结构选择1.3栈的…

Win10工具:批量word转png图片

首先声明这个小工具是小编本人开发的&#xff0c;无任何广告&#xff0c;会员收费机制等&#xff0c;永久使用。允许公司或个人使用&#xff0c;不允许倒卖&#xff0c;否则发现后会追究法律责任&#xff0c;毕竟开发不易。工具是用python开发的。 功能非常单一&#xff0c;就…

做过的试卷怎样才能去掉答案打印

对于做过的试卷&#xff0c;如想将其打印比较难以解决的困难就是“去除打印”。当然&#xff0c;目前应用上市场上也会有很多能够去除打印的应用软件&#xff0c;如“试卷擦除宝”这是一款专业的试卷擦除软件&#xff0c;能够擦除试卷上的手写笔迹&#xff0c;并将试卷转化为电…

python:绘制一元三次函数的曲线

编写 test_x3_3x.py 如下 # -*- coding: utf-8 -*- """ 绘制函数 y x^33x4 在 -3<x<3 的曲线 """ import numpy as np from matplotlib import pyplot as plt# 用于正常显示中文标题&#xff0c;负号 plt.rcParams[font.sans-serif] […

Games101——光珊化——深度缓存——shading着色 1

深度缓存 如何解决远近的问题&#xff0c;能正确的覆盖 按照画作来说&#xff0c;先画出远处的物体&#xff0c;再画出近处的物体&#xff0c;近处会将其覆盖&#xff0c;这种算法叫做画家算法 但事实上&#xff0c;排序不仅要花更多的时间&#xff0c;而且排序并不容易&…

RIP路由协议概述

RIP【Routing Information Protocol】 RIP是为TCP/IP 环境中开发的第一个路由选择协议标准 RIP是一个【距离——矢量】路由选择协议 当路由器的更新周期为30s到来时&#xff0c;向邻居发送路由表 RIP以跳数作为唯一度量值 RIP工作原理 RIP路由协议向邻居发送整个路由表信息RI…

农场资源的获取

一、网站 资源 二、搜索土壤资源 1、找到类别&#xff0c;点击Browse Texture 2、搜索、选择 3、搜索Brown Mud Dry 4、搜索Brown Mud 三、

[web]-图片上传、文件包含-图片上传

题目内容提示&#xff1a;上传图片试试吧&#xff0c;注意统一时区问题 打开页面如图&#xff0c;源码没有过滤&#xff0c;随便输入&#xff0c;进入上传目录 根据链接可以看到是文件包含&#xff0c;可以利用编码读取源码&#xff0c;这里只列出有用页面的编码&#xff08;?…

【Hive SQL 每日一题】在线峰值人数计算

文章目录 测试数据需求说明需求实现 测试数据 -- 创建 user_activity 表 DROP TABLE IF EXISTS user_activity ; CREATE TABLE user_activity (user_id STRING,activity_start TIMESTAMP,activity_end TIMESTAMP );-- 插入数据 INSERT INTO user_activity VALUES (user1, 2024…

银河麒麟高级服务器操作系统 V10 SP3 2403

系统简介 银河麒麟高级服务器操作系统V10是一款为企业级关键业务设计的新一代自主服务器操作系统&#xff0c;它满足虚拟化、云计算、大数据等时代需求&#xff0c;具备高可靠性、安全性、性能和扩展性。该系统基于CMMI5级标准开发&#xff0c;支持多种国产处理器平台&#xf…