[Lydsy1806月赛] 质数拆分
2024-10-21 06:37:42
(mmp我已经不知道是第几次写NTT被卡了)
可以发现质数个数是 N/log(N) 级别的,1.5*10^5之内也只有 10000 多一点质数。
所以我们第一层暴力卷积,常数可以优化成 1/2。
然后第二层直接算就行了。
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=150000; int zs[N/5+5],t=0,f[N+5],n;
bool v[N+5];
ll ans; inline void init(){
v[1]=1;
for(int i=2;i<=n;i++){
if(!v[i]) zs[++t]=i;
for(int j=1,u;j<=t&&(u=zs[j]*i)<=n;j++){
v[u]=1;
if(!(i%zs[j])) break;
}
}
zs[t+1]=1e8; for(int i=1,u;(u=zs[i]*2)<=n;i++) f[u]++; for(int i=1;i<t;i++)
for(int j=i+1,u;(u=zs[i]+zs[j])<=n;j++) f[u]+=2;
} inline void solve(){
for(int i=1;i<n;i++) ans+=f[i]*(ll)f[n-i];
} int main(){
scanf("%d",&n);
init();
solve();
printf("%lld\n",ans);
return 0;
}
最新文章
- OpenSUSE下编译安装OpenFoam
- 关于<;appSettings file=";app.config"; >;引用外部文件的配置值
- MsSqlServer 复制分发概述
- windows安装pip 和easy_install
- Python脚本控制的WebDriver 常用操作 <;十二>; send_keys模拟按键输入
- Laravel5 路由问题 /home页面无法访问
- Linux分类笔记(一)-权限管理
- 反射操作辅助类ReflectionUtil
- IBM Minus One(water)
- css 定位功能position
- MySQL(二)之服务管理与初始化文件修改和连接MySQL
- hdu3016 线段树+简单DP
- 西门子S7-200SMART PLC视频教程(百度网盘)
- python 写入CSV出现空白行问题及拓展
- Scaleform Gfx的Demo
- 第四章&#160;栈与队列(c1)栈应用:进制转换
- 【BZOJ3280】 小R的烦恼(费用流,建模)
- 2 Scala基本语法
- Bootstrap 3之美07-插件Collapse、Accordion、Modal、Tab、Tooltip、Alert、Carousel
- 基于Web Service的客户端框架搭建四:终结篇
热门文章
- (转)梯度方向直方图HOG(Histograms of Oriented Gradients )
- Django【进阶】分页功能Pagination
- C++之容器
- [How to]如何通过xib来自定义UIViewController
- form 表单获取所有数据 封装方法
- tab切换 jQuery
- 使用 Visual Studio 部署 .NET Core 应用 ——ASP.NET Core 发布的具体操作
- Leetcode 之Binary Tree Preorder Traversal(42)
- python的多线程、多进程代码示例
- php文件上传错误信息