1259 整数划分 V2
设dp[n]为整数n的分割函数,由五边形定理得到:
dp[n] = dp[n-1] + dp[n-2] - dp[n-5] - dp[n-7]……
我们将其分为两部分计算
第一部分为 :( dp[n-1] - dp[n-5] …… ) 奇数项为加,偶数项为减,第j项括号内的值为 : n-(j*(3*j-1)/2)
第二部分为:(dp[n-2] - dp[n-7]……) 奇数项为加,偶数项为减,第j项括号内的值为 : n-(j*(3*j+1)/2)
如此递推便可求出n的分割函数 dp[n]
#include <iostream>
#include <cmath>
#include <string.h>
#include <cstdio>
#include <queue>
#include <algorithm>
using namespace std;
#define LL long long
#define MAXSIZE 1000005
#define INF 1e11 const LL mod=1e9+; LL dp[MAXSIZE]; LL Solve(int n)
{
dp[] = ;
for(int i=;i<=n;i++)
{
for(int j=;j*(*j-)/<=i;j++)
{
if(j&)
dp[i] = (dp[i] + dp[i-(j*(*j-)/)] + mod)%mod;
else
dp[i] = (dp[i] - dp[i-(j*(*j-)/)] + mod)%mod;
} for(int j=;j*(*j+)/<=i;j++)
{
if(j&)
dp[i] = (dp[i] + dp[i-(j*(*j+)/)] + mod)%mod;
else
dp[i] = (dp[i] - dp[i-(j*(*j+)/)] + mod)%mod;
}
}
return dp[n];
} int main()
{
int n;
scanf("%d",&n);
LL ans = Solve(n);
printf("%lld\n",ans);
return ;
}
1259 整数划分 V2的更多相关文章
- 【题解】整数划分 [51nod1201] 整数划分 V2 [51nod1259]
[题解]整数划分 [51nod1201] 整数划分 V2 [51nod1259] 传送门:整数划分 \([51nod1201]\) 整数划分 \(V2\) \([51nod1259]\)** [题目描 ...
- 51Nod-1259-整数划分 V2
51Nod-1259-整数划分 V2 将N分为若干个整数的和,有多少种不同的划分方式,例如:n = 4,{4} {1,3} {2,2} {1,1,2} {1,1,1,1},共5种.由于数据较大,输出M ...
- 51nod p1201 整数划分
1201 整数划分 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 将N分为若干个不同整数的和,有多少种不同的划分方式,例如:n = 6,{6} {1,5} {2, ...
- 2014北大研究生推免机试(校内)-复杂的整数划分(DP进阶)
这是一道典型的整数划分题目,适合正在研究动态规划的同学练练手,但是和上一个随笔一样,我是在Coursera中评测通过的,没有找到适合的OJ有这一道题(找到的ACMer拜托告诉一声~),这道题考察得较全 ...
- 整数划分 (区间DP)
整数划分(四) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 暑假来了,hrdv 又要留学校在参加ACM集训了,集训的生活非常Happy(ps:你懂得),可是他最近 ...
- nyoj 90 整数划分
点击打开链接 整数划分 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 将正整数n表示成一系列正整数之和:n=n1+n2+-+nk, 其中n1≥n2≥-≥nk≥1,k≥ ...
- 整数划分 Integer Partition(二)
本文是整数划分的第二节,主要介绍整数划分的一些性质. 一 先来弥补一下上一篇文章的遗留问题:要求我们所取的 (n=m1+m2+...+mi )中 m1 m2 ... mi连续,比如5=1+4就不符合 ...
- 整数划分 Integer Partition(一)
话说今天百度面试,可能是由于我表现的不太好,面试官显得有点不耐烦,说话的语气也很具有嘲讽的意思,搞得我有点不爽.Whatever,面试中有问到整数划分问题,回答这个问题过程中被面试官搞的不胜其烦,最后 ...
- 51nod1201 整数划分
01背包显然超时.然后就是一道神dp了.dp[i][j]表示j个数组成i的方案数.O(nsqrt(n)) #include<cstdio> #include<cstring> ...
随机推荐
- selinux 的使用
SELinux 的启动.关闭与查看 1,并非所有的 Linux distributions 都支持 SELinux 的 目前 SELinux 支持三种模式,分别如下: •enforcing:强制模式, ...
- Kubernetes的负载均衡问题(Nginx Ingress)
nginx 反向代理 https://www.cnblogs.com/ericnie/p/6965091.html Kubernetes 集群中使用 Traefik https://blog.csdn ...
- 微信小程序中出现:脚本错误或者未正确调用 Page()
错误: 解决方法: //在页面当中的.js文件里面加上 Page({ })即可
- social-auth-app-django集成第三方登录
GitHub:https://github.com/python-social-auth/social-app-django 官网文档:http://python-social-auth.readth ...
- Hadoop序列化-流量汇总案例
Hadoop序列化案例-流量汇总需求 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Hadoop序列化 1>.为什么要序列化 一般来说,“活的”对象只生存在内存里,关机断 ...
- spring-data-redis时效设置
本人转自http://hbxflihua.iteye.com/blog/2320584#bc2396403 spring目前在@Cacheable和@CacheEvict等注解上不支持缓存时效设置,只 ...
- PHP7 学习笔记(十四)Reids 键空间通知配合TP5 实现分布式延时任务
测试环境:windows 10 + phpStudy 配置redis配置文件 redis.windows.conf notify-keyspace-events "Ex" 重启re ...
- Redis基本概念、基本使用与单机集群部署
1. Redis基础 1.1 Redis概述 Redis是一个开源.先进的key-value存储,并用于构建高性能.可扩展的应用程序的完美解决方案. Redis从它的许多竞争继承了三个主要特点: ...
- mysql修改表结构语句
mysql alter 用法,修改表,字段等信息 一: 修改表信息 1.修改表名 alter table test_a rename to sys_app; 2.修改表注释 alter table ...
- c3p0配置之preferredTestQuery参数默认值探秘
http://www.mchange.com/projects/c3p0/ c3p0的配置参数preferredTestQuery用于检测数据库连接测试,检测数据库是否能连接成功. Default: ...