题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4651

题意:f(x) 为将 x 分成其他数和的形式的方案数.对于 t 组输入,输出 f(xi).

思路:直接套公式即可.

1、广义五边形数
qn 为 (3*n*n-n)/2 和 (3*n*n+n)/2
q1 = 1, 2
q2 = 5, 7
q3 = 12, 15
...
2、分割函数
p(n) = sigma(-1)^(i-1)p(n-qi) (qi <= n) //这里的 qi 对应前面的两个数

代码:

 #include <iostream>
using namespace std; const int mod = 1e9 + ;
const int MAXN = 1e5 + ;
int f[MAXN]; void get_f(void){
f[] = ;
for(int i = ; i < MAXN; i++){
for(int j = , cnt = ; i - ( * j * j - j) / >= ; j++, cnt *= -){
int cc = * j * j;
f[i] += f[i - (cc - j) / ] * cnt;
f[i] %= mod;
f[i] = (f[i] + mod) % mod;
if(i >= (cc + j) / ){
f[i] += f[i - (cc + j) / ] * cnt;
f[i] %= mod;
f[i] = (f[i] + mod) % mod;
}
}
}
} int main(void){
get_f();
int t, x;
cin >> t;
while(t--){
cin >> x;
cout << f[x] << endl;
}
return ;
}

hdu4651(广义五边形数 & 分割函数1)的更多相关文章

  1. hdu4658(广义五边形&分割函数2)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4658 题意:f(x) 为将 x 分成其他数和的形式的方案数.对于 t 组输入,输出 f(xi, k), ...

  2. hdu 4651 Partition(整数拆分+五边形数)

    Partition Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  3. 【C++实现python字符串函数库】一:分割函数:split、rsplit

    [C++实现python字符串函数库]split()与rsplit()方法 前言 本系列文章将介绍python提供的字符串函数,并尝试使用C++来实现这些函数.这些C++函数在这里做单独的分析,最后我 ...

  4. C++常见问题: 字符串分割函数 split

    C++标准库里面没有字符分割函数split ,这可太不方便了,我已经遇到>3次如何对字符串快速分割这个问题了.列几个常用方法以备不时之需. 方法一: 利用STL自己实现split 函数(常用,简 ...

  5. hive函数 -- split 字符串分割函数

    hive字符串分割函数 split(str, regex) - Splits str around occurances that match regexTime taken: 0.769 secon ...

  6. Split字符串分割函数

    非常非常常用的一个函数Split字符串分割函数. Dim myTest myTest = "aaa/bbb/ccc/ddd/eee/fff/ggg" Dim arrTest arr ...

  7. ASP.NET中常用的字符串分割函数

    asp.net字符串分割函数用法 先来看个简单的实例 但是其数组长度却是25,而不是3.下面这种方法是先将“[111cn.net]”替换成一个特殊字符,比如$,在根据这个字符执行Split 例如下面我 ...

  8. MSSQLSERVER数据库- 字符串分割函数返回类型表

    遇到这样一个问题,存储在数据库的数据是一串字符串如:1,2,3,4,5,6.想把这串字符串进行转变成一个表格,如下: 1 2 3 4 5 6 就是这样一个问题,有人同事,写了一个这样的封装函数,这样就 ...

  9. OC可变參数的函数实现va_start、va_end、va_list的使用

    一.简单介绍 我们常常在编程的时候看见类似这种代码,如图1.1 图1.1 或者是这种可变參数,如图1.2 图1.2 二.基本知识介绍 在学习怎样写这样的格式的函数前,先简介几个经常使用的宏: 下面摘自 ...

随机推荐

  1. Python内置:items()方法

    文章转载于:https://www.cnblogs.com/wushuaishuai/p/7738118.html(博主:IT技术随笔) #Python3中已取消iteritems()方法 描述 Py ...

  2. Python 中的0 和 1 的意思

    Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false,所以Python中的 1 代表 True,0代表False

  3. Java-API-Package:java.util

    ylbtech-Java-API-Package:java.util 1.返回顶部 1. java.util Interfaces Collection Comparator Deque Enumer ...

  4. AngularJS:实例

    ylbtech-AngularJS:实例 1.返回顶部 1. AngularJS 实例 实例 您可以在线编辑实例,然后点击按钮查看结果. AngularJS 实例 <div ng-app=&qu ...

  5. 如何通过ISO安装win7程序

    从下载u启动工具到安装Ghost Win7系统教程 来源:http://www.uqidong.com时间:2013-08-12 09:17:38 怎样用u启动u盘启动盘安装ghost系统?u启动制作 ...

  6. CSS3新特性详解

    本文讲解CSS3相关实用知识点 CSS3相关实用知识点目录 边框设置 颜色设置 背景设置 渐变使用 超出文本设置 阴影设置 CSS3变换设置 过渡设置 动画设置 多列布局 BoxSizing设置 弹性 ...

  7. windows服务编写和“以管理员运行”程序的方法

    本文将首先解释如何 创建 一个定期查询可用物理内存并将结果写入某个文本文件的服务.然后指导你完成生成,安装和实现服务的整个过程. 第一步:主函数和全局定义 首先,包含所需的头文件.例子要调用 Win3 ...

  8. 反向索引(Inverted Index)

    转自:http://zhangyu8374.iteye.com/blog/86307 反向索引是一种索引结构,它存储了单词与单词自身在一个或多个文档中所在位置之间的映射.反向索引通常利用关联数组实现. ...

  9. Shell编程进阶 1.8 for循环

    产生序列的命令 seq 1 2 3 4 5 6 7 8 9 10 seq 1 3 5 7 9  (从1开始增加2显示这个数字,到10结束) seq - 10 8 6 4 2 seq - 10 9 8 ...

  10. eclipse DDMS导出文件失败--android Failed to push the item

    我们在写安卓程序的时候,经常会用Eclipse导出模拟器的文件管理里面的文件,但有时候会报错,导致无法导出文件. 报错信息 Failed to push selection: Local path d ...