Integer Partition

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 22    Accepted Submission(s): 15

Problem Description
Given n, k, calculate the number of different (unordered) partitions of n such that no part is repeated k or more times.
 
Input
First line, number of test cases, T.
Following are T lines. Each line contains two numbers, n and k.

1<=n,k,T<=105

 
Output
T lines, each line contains answer to the responding test case.
Since the numbers can be very large, you should output them modulo 109+7.
 
Sample Input
4
4 2
4 3
4 4
4 5
 
Sample Output
2
4
4
5
 
Source
 
Recommend
zhuyuanchen520
 
 
 
跟上次多校求数的划分很类似。
 
 
所谓的五边形数定理还没有搞懂。
 
 
先贴个代码先,胡搞弄过去的
 
 
 /*
* Author: kuangbin
* Created Time: 2013/8/8 11:53:35
* File Name: 1004.cpp
*/
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <string>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <time.h>
using namespace std;
const int MOD = 1e9+;
int dp[];
void init()
{
memset(dp,,sizeof(dp));
dp[] = ;
for(int i = ;i <= ;i++)
{
for(int j = , r = ; i - ( * j * j - j) / >= ; j++, r *= -)
{
dp[i] += dp[i -( * j * j - j) / ] * r;
dp[i] %= MOD;
dp[i] = (dp[i]+MOD)%MOD;
if( i - ( * j * j + j) / >= )
{
dp[i] += dp[i - ( * j * j + j) / ] * r;
dp[i] %= MOD;
dp[i] = (dp[i]+MOD)%MOD;
} } }
} int solve(int n,int k)
{
int ans = dp[n];
for(int j = , r = -; n - k*( * j * j - j) / >= ; j++, r *= -)
{
ans += dp[n -k*( * j * j - j) / ] * r;
ans %= MOD;
ans = (ans+MOD)%MOD;
if( n - k*( * j * j + j) / >= )
{
ans += dp[n - k*( * j * j + j) / ] * r;
ans %= MOD;
ans = (ans+MOD)%MOD;
} }
return ans;
} int main()
{
init();
int T;
int n,k;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&k);
printf("%d\n",solve(n,k));
}
return ;
}
 
 
 
 
 
 

HDU 4658 Integer Partition (2013多校6 1004题)的更多相关文章

  1. HDU 4699 Editor (2013多校10,1004题)

    Editor Time Limit: 3000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Su ...

  2. HDU 4679 Terrorist’s destroy (2013多校8 1004题 树形DP)

    Terrorist’s destroy Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Othe ...

  3. HDU 4669 Mutiples on a circle (2013多校7 1004题)

    Mutiples on a circle Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Oth ...

  4. hdu 4651 Partition && hdu 4658 Integer Partition——拆分数与五边形定理

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=4651 参考:https://blog.csdn.net/u013007900/article/detail ...

  5. HDU 4678 Mine (2013多校8 1003题 博弈)

    Mine Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submis ...

  6. HDU 4681 String(2013多校8 1006题 DP)

    String Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Subm ...

  7. HDU 4666 Hyperspace (2013多校7 1001题 最远曼哈顿距离)

    Hyperspace Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Tota ...

  8. HDU 4705 Y (2013多校10,1010题,简单树形DP)

    Y Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submiss ...

  9. HDU 4704 Sum (2013多校10,1009题)

    Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submi ...

随机推荐

  1. 多线程伪共享FalseSharing

    1. 伪共享产生: 在SMP架构的系统中,每个CPU核心都有自己的cache,当多个线程在不同的核心上,并且某线程修改了在同一个cache line中的数据时,由于cache一致性原则,其他核心cac ...

  2. Yii 1.1.17 四、属性标签、AR类增删改查、使用上传类与扩展第三方类库

    一.属性标签与规则设置 当进入网站页面,将会读数据库返回信息到视图上.那么,现在定义模型中的属性在视图标签上的显示, 也就是模型属性到前台标签的映射 // 定义模型属性到前台标签的映射 public ...

  3. 【bzoj4695】最假女选手

    zcy的励志故事.jpg 傻逼zcy突然想立一个flag,写一个segment-tree-beats的题娱乐一下 于是他就想起了这道题. 他打算今晚写完 然后光是写他就写的头昏脑涨,还犯了询问写反这种 ...

  4. 关于:TypeConverter 无法从 System.String 转换

    TypeConverter 无法从 System.String 转换 处理方法: 1: [DX Support Team: The issue was resolved by its Owner] i ...

  5. Linux系统编程——进程间通信(System V IPC 对象)

    基本查看命令 ipcs  -m查看共享内存        ipcs -s查看信号量        ipcs -q查看消息队列 ipcrm  -m  id 删除共享内存   -M+key值 ipcrm ...

  6. 利用h5,chart.js监测手机三轴加速度,用以研究计步算法等

    用window.DeviceMotionEvent来判断手机浏览器是否支持访问硬件资源,window.addEventListener('devicemotion',deviceMotionHandl ...

  7. echarts3.0版本断点连线的处理

      项目应用到echarts图表组件.官网的demo中出现空数据会断开.经过跟踪调试.修改echarts.js以下代码即可实现断点连线功能(需要将空数据处理成'-'.这样才能均值): for (var ...

  8. P2327

    code[class*="language-"] { padding: .1em; border-radius: .3em; white-space: normal; backgr ...

  9. 线程同步工具 Semaphore类的基础使用

    推荐好文: 线程同步工具(一) 线程同步工具(二)控制并发访问多个资源 并发工具类(三)控制并发线程数的Semaphore 简介 Semaphore是基于计数的信号量,可以用来控制同时访问特定资源的线 ...

  10. vue css动画

    .toggle-cart-enter-active, .toggle-cart-leave-active { transition: all .3s ease-out; } .toggle-cart- ...