CSU 1425 Prime Summation
原题链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1425
DP题。
f[i][j]表示当前数字为i,分解式中最大质数为j的方案数,那么,状态转移方程为:
f[i][j] = sum(f[i-j][k])
其中,k为小于等于j的所有质数。
求具体分解式时可以先转化为从小到大(如样例的“顺数第2”可以表述为“倒数第3”),更容易递推编程。
#include <stdio.h>
#include <string.h> #define N 205
int n, k; int f[N][N]; int prime[N], cnt;
bool isprime[N]; void get_prime()
{
cnt = ;
memset(isprime, , sizeof isprime);
for(int i = ; i < N; i++)
{
if(!isprime[i])
{
prime[cnt++] = i;
for(int j = i*; j < N; j += i)
isprime[j] = true;
}
}
} int main()
{
get_prime();
while(scanf("%d%d", &n, &k) != EOF)
{
memset(f, , sizeof f);
f[][] = ;
for(int i = ; i <= n; i++)
{
for(int j = ; j < cnt; j++)
{
if(prime[j] > i) break;
for(int t = ; t <= prime[j]; t++)
f[i][prime[j]] += f[i-prime[j]][t];
}
}
int sum = ;
for(int i = ; i <= n; i++)
sum += f[n][i];
if(k > sum) k = sum;
printf("%d\n%d=", sum, n);
k = sum - k;
bool flag = false;
do
{
int cnt = ;
int i;
for(i = ; i <= n; i++)
{
if(cnt + f[n][i] > k)
break;
cnt += f[n][i];
}
n -= i;
k = k - cnt;
if(flag) printf("+");
flag = true;
printf("%d", i);
}
while(n != );
printf("\n");
}
return ;
}
CSU 1425 Prime Summation的更多相关文章
- CSU 1425 NUDT校赛 I题 Prime Summation
这个题本来有希望在比赛里面出了的 当时也想着用递推 因为后面的数明显是由前面的推过来的 但是在计算的时候 因为判重的问题 ...很无语.我打算用一个tot[i]来存i的总种树,tot[i]+=tot[ ...
- csu 1756: Prime
1756: Prime Submit Page Summary Time Limit: 3 Sec Memory Limit: 128 Mb Submitted: 281 ...
- 【CSU 1756】Prime
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1756 直接暴力O(n^2logn)过不了 两两算gcd 考虑每个数的范围[1,1000]统计一下即 ...
- CSU 2018年12月月赛 F(2218): Finding prime numbers
Description xrdog has a number set. There are 95 numbers in this set. They all have something in com ...
- Summation of Four Primes - PC110705
欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/uva10168.html 原创:Summ ...
- UVA 10168 Summation of Four Primes(数论)
Summation of Four Primes Input: standard input Output: standard output Time Limit: 4 seconds Euler p ...
- CSU 1552 Friends(二分图 + 米勒测试)
题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1552 Description On an alien planet, every e ...
- Java 素数 prime numbers-LeetCode 204
Description: Count the number of prime numbers less than a non-negative number, n click to show more ...
- Prime Generator
Peter wants to generate some prime numbers for his cryptosystem. Help him! Your task is to generate ...
随机推荐
- 【bzoj3687】简单题
#3687. 简单题 内存限制:512 MiB时间限制:10 Sec 提交提交记录讨论 题目描述 小呆开始研究集合论了,他提出了关于一个数集四个问题:1.子集的异或和的算术和.2.子集的异或和的异或和 ...
- 【HEOI 2018】制胡窜
转载请注明出处:http://www.cnblogs.com/TSHugh/p/8779709.html YJQ的题解把思路介绍得很明白,只不过有些细节说得还是太笼统了(不过正经的题解就应该这个样子吧 ...
- 怎样才能高效地使用JQuery
1. 使用最新版本的jQuery jQuery的版本更新很快,你应该总是使用最新的版本.因为新版本会改进性能,还有很多新功能.下面就来看看,不同版本的jQuery性能差异有多大.这里是三条最常见的jQ ...
- Codeforces 932.D Tree
D. Tree time limit per test 2 seconds memory limit per test 512 megabytes input standard input outpu ...
- MSA(微服务简介)
1.为什么要使用微服务? 要说为什么要使用微服务,我们要先说下传统的企业架构模式-垂直架构/单块架构模式,简单点说:我们一般将系统分为三层架构,但是这是逻辑上的三层,而非物理上的三层,这就意味着经过编 ...
- Netfilter之连接跟踪实现机制初步分析
Netfilter之连接跟踪实现机制初步分析 原文: http://blog.chinaunix.net/uid-22227409-id-2656910.html 什么是连接跟踪 连接跟踪(CONNT ...
- docker-api
__author__ = 'zxp' import docker import sys class DockerManager_Slave(object): def __init__(self): s ...
- eclipse常用快捷键大全 (转)
Eclipse中10个最有用的快捷键组合 一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升. ...
- hdu 1846 Brave Gam
Brave Game http://acm.hdu.edu.cn/showproblem.php?pid=1846 Time Limit: 1000/1000 MS (Java/Others) ...
- CF821 C. Okabe and Boxes 栈模拟
Link 题意:给出操作,如果当前出栈操作使得出栈序列非顺序,可以在此之前自由排序栈中所有数,问最少排几次. 思路:已经出栈到第x个元素时,每次需要排序的操作后,能够保证前x元素出栈有序,否则说明该操 ...