模拟赛41 A. 四个质数的和
题目描述
给定了一个正整数 \(N\)。有多少种方法将 \(N\) 分解成为四个质数 \(a,b,c,d\)的和。
例如:
\(9=2+2+2+3=2+2+3+2=2+3+2+2=3+2+2+2\),故共有 \(4\) 种方法将 \(9\) 分解成为四个整数。
输入格式
本题多组数据测试:
第一行读入一个整数 \(T\) 表示数据组数。
接下来共 \(T\) 行,每行包含一个正整数 \(N\)。
输出格式
共 \(T\) 行,每行一个整数表示答案。
样例
样例输入
2
9
10
样例输出
4
6
数据范围与提示
对于 \(10\%\) 的数据,\(N \leq 10\)。
对于 \(40\%\) 的数据,\(N \leq 100\)。
对于 \(70\%\) 的数据,\(N \leq 1000\)。
对于 \(1000\%\) 的数据,\(T \leq 10,N \leq 100000\)。
分析
可以设 \(f[i][j]\) 为当前用了 \(j\) 个质数拼出 \(i\) 的方案数
状态数太多转移不动
可以改为先求出两两质数的和,再用这个和去拼出想要的数
代码
#include<cstdio>
#define rg register
inline int read(){
rg int x=0,fh=1;
rg char ch=getchar();
while(ch<'0' || ch>'9'){
if(ch=='-') fh=-1;
ch=getchar();
}
while(ch>='0' && ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*fh;
}
const int maxn=1e5+5;
int t,n,pri[maxn];
bool not_pri[maxn];
long long f[maxn][4];
void pre(int now){
not_pri[0]=not_pri[1]=1;
for(rg int i=2;i<=now;i++){
if(!not_pri[i]) pri[++pri[0]]=i;
for(rg int j=1;j<=pri[0] && 1LL*i*pri[j]<=now;j++){
not_pri[i*pri[j]]=1;
if(i%pri[j]==0) break;
}
}
for(rg int i=1;i<=pri[0];i++){
f[pri[i]][1]=1;
}
for(rg int o=2;o<=2;o++){
for(rg int i=1;i<=now;i++){
if(f[i][o-1]){
for(rg int j=1;j<=pri[0];j++){
if(i+pri[j]<=now){
f[i+pri[j]][o]+=f[i][o-1];
} else {
break;
}
}
}
}
}
}
long long ans;
int main(){
t=read();
pre(100000);
while(t--){
n=read();
ans=0;
for(rg int i=2;i<=n;i++){
ans+=f[i][2]*f[n-i][2];
}
printf("%lld\n",ans);
}
return 0;
}
模拟赛41 A. 四个质数的和的更多相关文章
- 常州模拟赛d2t1 小X的质数
题目背景 小 X 是一位热爱数学的男孩子,在茫茫的数字中,他对质数更有一种独特的 情感.小 X 认为,质数是一切自然数起源的地方. 题目描述 在小 X 的认知里,质数是除了本身和 1 以外,没有其他因 ...
- 【HHHOJ】ZJOI2019模拟赛(十四)03.12 解题报告
点此进入比赛 得分: \(50+5+24=79\) 排名: \(Rank\ 2\) \(Rating\):\(+79\) \(T1\):[HHHOJ197]古明地(点此看题面) 基本上全部时间都用来想 ...
- NOIp模拟赛三十四(yxq供题)
毒瘤yxq! 毒瘤yxq! 毒瘤yxq! 据yxq自己说,林导让他出题的时候要求是“代码量少”,“思维难度高”,“不涉及太复杂的算法”,而且“最好要让myh有一题做不出来”(狙击myh).于是今天的题 ...
- NOI.AC NOIP模拟赛 第四场 补记
NOI.AC NOIP模拟赛 第四场 补记 子图 题目大意: 一张\(n(n\le5\times10^5)\)个点,\(m(m\le5\times10^5)\)条边的无向图.删去第\(i\)条边需要\ ...
- NOIp2018模拟赛四十二
今天看标题终于回到了“NOIP模拟赛”,十分高兴啊! 然后一打开题目: ********** 所以今天又是一场NOIPlus模拟赛(微笑) 成绩:0+70+0=70 A题想了个贪心被myh两分钟cha ...
- 「CSP-S模拟赛」2019第四场
「CSP-S模拟赛」2019第四场 T1 「JOI 2014 Final」JOI 徽章 题目 考场思考(正解) T2 「JOI 2015 Final」分蛋糕 2 题目 考场思考(正解) T3 「CQO ...
- PKUSC 模拟赛 day1 下午总结
下午到了机房之后又困又饿,还要被强行摁着看英文题,简直差评 第一题是NOIP模拟赛的原题,随便模拟就好啦 本人模拟功力太渣不小心打错了个变量,居然调了40多分钟QAQ #include<cstd ...
- 2017-9-22 NOIP模拟赛[xxy][数论]
XXY 的 的 NOIP 模拟赛 4 4 —— 数学专场 A Description定义 f(x)表示 x 的约数和,例:f(12)=1+2+3+4+6+12=28给出 x,y,求Σf(i),i∈[x ...
- NOI.AC: NOIP2018 全国模拟赛习题练习
闲谈: 最后一个星期还是不浪了,做一下模拟赛(还是有点小虚) #30.candy 题目: 有一个人想买糖吃,有两家商店A,B,A商店中第i个糖果的愉悦度为Ai,B商店中第i个糖果的愉悦度为Bi 给出n ...
随机推荐
- vue路由传参及组件传参和组件方法调用
VUE路由和组件传参 第一种vue自带的路由传参的三种基本方式 1.通过name :id传参 子组件通过$route.name接收参数 { path: '/particulars/:id', name ...
- CodeForces 1344D Résumé Review
题意 给定一个长度为 \(n\) 的序列 \(a\) 和一个整数 \(k\),构造一个序列 \(b\) 使得满足以下条件: \(0\leq b_i\leq a_i\) \(\sum\limits_{i ...
- 如何将别人Google云端硬盘中的数据进行保存
查了好久终于知道! 如何将别人Google云端硬盘中的数据进行copy,而不是右键发现只有添加快捷方式 只要shift+z就可以保存了! 之后等我弄清楚怎么将别人家的云盘中的数据集导到colab再来详 ...
- sdsd
自本人拥有手机以来,由于有存短信的特殊嗜好,得出以下不完全统计: 累计中奖93次,资金共计2260万元(人民币),另有各种iphone68部, 电脑36台,轿车27辆,收到法院传票93张,被大学录取5 ...
- Pytest学习(六) - conftest.py结合接口自动化的举例使用
一.conftest.py作用 可以理解成存放fixture的配置文件 二.conftest.py配置fixture注意事项 pytest会默认读取conftest.py里面的所有fixture co ...
- Spider--实战--bs静态网页爬取TOP250电影
import requests from bs4 import BeautifulSoup def gettop250(): headers={ 'user-agent':'Mozilla/5.0 ( ...
- Javascript基础知识面试题
[]==![] 解题思路: step1, []==!Boolean([]);step2, []==!true;step3, []==false;step4, [].valueOf()= ...
- 聊聊Spark的分区、并行度 —— 前奏篇
通过之前的文章[Spark RDD详解],大家应该了解到Spark会通过DAG将一个Spark job中用到的所有RDD划分为不同的stage,每个stage内部都会有很多子任务处理数据,而每个sta ...
- tcp/udp注意事项
- shell编程之awk
awk是一种用于处理数据和生成报告的编程语言 awk可以在命令行中进行一些简单的操作,也可以被写成脚本来处理较大的应用问题 awk与grep.sed结合使用,将使shell编程更加容易 awk工作模式 ...