spoj PARTIT
三维DP 第K字典序从左向右找 根据dp数组的值算出每一位该打印什么
代码:
#include <cstdio>
#include <cstring>
using namespace std;
long long memo[][][];
long long solve(int n, int m, int last)//n划分成m个数最小值为last;
{
if(n==)
{
if(m>=last) return ;
return ;
}
long long &ret = memo[n][m][last];
if(ret == -)
{
ret = ;
for(int i = last; (n+) * i <= m; ++i)
ret += solve(n-,m-i,i);
}
return ret;
} int main()
{
int T,M,N,K;
scanf("%d",&T);
while(T--)
{
scanf("%d %d %d",&M,&N,&K);
memset(memo,-,sizeof(memo));
int last = ;
for(int i = N-; i>; --i)
{
int tmp = ,j = last;
while(true)
{
if(tmp + solve(i-,M-j,j) >= K)//如果它的字典序超过了目标;
{
printf("%d ",j);
K -= tmp;
last = j;
M -= j;
break;
}
tmp += solve(i-,M-j,j);
++j;
}
}
printf("%d\n",M);
}
return ;
}
spoj PARTIT的更多相关文章
- BZOJ 2588: Spoj 10628. Count on a tree [树上主席树]
		2588: Spoj 10628. Count on a tree Time Limit: 12 Sec Memory Limit: 128 MBSubmit: 5217 Solved: 1233 ... 
- SPOJ DQUERY D-query(主席树)
		题目 Source http://www.spoj.com/problems/DQUERY/en/ Description Given a sequence of n numbers a1, a2, ... 
- SPOJ GSS3 Can you answer these queries III[线段树]
		SPOJ - GSS3 Can you answer these queries III Description You are given a sequence A of N (N <= 50 ... 
- 【填坑向】spoj COT/bzoj2588 Count on a tree
		这题是学主席树的时候就想写的,,, 但是当时没写(懒) 现在来填坑 = =日常调半天lca(考虑以后背板) 主席树还是蛮好写的,但是代码出现重复,不太好,导致调试的时候心里没底(虽然事实证明主席树部分 ... 
- SPOJ bsubstr
		题目大意:给你一个长度为n的字符串,求出所有不同长度的字符串出现的最大次数. n<=250000 如:abaaa 输出: 4 2 1 1 1 spoj上的时限卡的太严,必须使用O(N)的算法那才 ... 
- 【SPOJ 7258】Lexicographical Substring Search
		http://www.spoj.com/problems/SUBLEX/ 好难啊. 建出后缀自动机,然后在后缀自动机的每个状态上记录通过这个状态能走到的不同子串的数量.该状态能走到的所有状态的f值的和 ... 
- 【SPOJ 1812】Longest Common Substring II
		http://www.spoj.com/problems/LCS2/ 这道题想了好久. 做法是对第一个串建后缀自动机,然后用后面的串去匹配它,并在走过的状态上记录走到这个状态时的最长距离.每匹配完一个 ... 
- 【SPOJ 8222】Substrings
		http://www.spoj.com/problems/NSUBSTR/ clj课件里的例题 用结构体+指针写完模板后发现要访问所有的节点,改成数组会更方便些..于是改成了数组... 这道题重点是求 ... 
- SPOJ GSS2 Can you answer these queries II
		Time Limit: 1000MS Memory Limit: 1572864KB 64bit IO Format: %lld & %llu Description Being a ... 
随机推荐
- GitHub具体教程
			GitHub具体教程 Table of Contents 1 Git具体教程 1.1 Git简单介绍 1.1.1 Git是何方神圣? 1.1.2 重要的术语 1.1.3 索引 1.2 Git安装 1. ... 
- Objhdu2001java
			计算两点间的距离 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ... 
- JavaScript 应用开发 #4:切换任务的完成状态
			在勾选了任务项目左边的对号(复选框)以后,会将任务的状态标记为已完成,取消勾选的话,又会把任务的状态标记为未完成.所以, 我们需要一个可以切换任务完成状态的方法.在任务模型里面,表示任务状态的属性是 ... 
- spring security 11种过滤器介绍
			1.HttpSessionContextIntegrationFilter 位于过滤器顶端,第一个起作用的过滤器. 用途一,在执行其他过滤器之前,率先判断用户的session中是否已经存在一个Secu ... 
- webstorm  如何配置git
			2016-09-22 15:00:25 补充js 操作后 发现工具自动生成了两个文件,如果提交到git上 会造成不必要的麻烦,看看怎么去掉产生这个的原因吧! 去掉对应的监听:http://fronte ... 
- [Twisted] 事件驱动模型
			在事件驱动编程中,多个任务交替执行,并且在单一线程控制下进行.当执行I/O或者其他耗时操作时,回调函数会被注册到事件循环. 当I/O完成时,执行回调.回调函数描述了在事件完成之后,如何处理事件.事件循 ... 
- CSS 边框
			CSS 边框属性 CSS边框属性允许你指定一个元素边框的样式和颜色. 边框样式 边框样式属性指定要显示什么样的边界. border-style属性用来定义边框的样式 border-style 值: ... 
- free() 是如何释放不同内存区块大小的指针?
			最初是在知乎上看到这个问题的C++ delete[] 是如何知道数组大小的?,我也挺好奇,所以就作了一番工作. 申请内存时,指针所指向区块的大小这一信息,其实就记录在该指针的周围看下面这段代码: #i ... 
- css  兼容 position:fixed
			我是头 我是主体 有多少内容,我就有多高 我是脚 我要随滚动条滚动 我要随滚动条滚动 我要随滚动条滚动 <!DOCTYPE html PUBLIC "-//W3C//DTD XHT ... 
- CentOS 6下安装nodejs 0.9.0
			确保安装了python,大部分安装失败都是由于python版本过低导致.安装之前,升级python版本,升级步骤 http://www.tomtalk.net/wiki/Python. [root@S ... 
