poj 1221 UNIMODAL PALINDROMIC DECOMPOSITIONS(母函数)

原创 2012年03月30日 16:19:08

【题目大意】:给出一个数n,把它拆分成若干个数的和,要求最大的数在中间并向两边非递增。问拆法有多少种。


【解题思路】:母函数。枚举中间的那一个数,因为左右对称,所以只需要求左边部分的方案即可。注意,左右两部分的取数必须小于中间的数,中间的数是0的话则以n为最大取值。


【代码】:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <queue>
#include <cmath>
#include <string>
#include <cctype>
#include <map>
#include <iomanip>
                   
using namespace std;
                   
#define eps 1e-8
#define pi acos(-1.0)
#define inf 1<<30
#define linf 1LL<<60
#define pb push_back
#define lc(x) (x << 1)
#define rc(x) (x << 1 | 1)
#define lowbit(x) (x & (-x))
#define ll long long

ll c1[500],c2[500];
int n;

ll solve(ll m,ll n){
    for (int i=0; i<=n; i++){
            c1[i]=1,c2[i]=0;
        }
    if (m==0) m=n;
    for (int i=2; i<=m; i++){
        for (int j=0; j<=n; j++){
            for (int k=0; k+j<=n; k+=i){
                c2[j+k]+=c1[j];
            }
        }
        for (int j=0; j<=n; j++) c1[j]=c2[j],c2[j]=0;
    }
    return c1[n];    
}

int main() {
    while (~scanf("%d",&n)) {
        if (n==0) break;
        ll ans=0;
        for (int i=0; i<=n; i++) 
            if ((n-i)%2==0) {
                ll tmp=solve(i,(n-i)/2);
                ans+=tmp;
            }
        cout << n << " " << ans << endl;
    }
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

POJ 1221 UNIMODAL PALINDROMIC DECOMPOSITIONS__动态规划

DescriptionA sequence of positive integers is Palindromic if it reads the same forward and backward....

POJ 1121-UNIMODAL PALINDROMIC DECOMPOSITIONS 动态规划

题目来源:http://poj.org/problem?id=1221 解题报告: 这道题求的是给定一个数字n,求n可以拆成多少种unimodal palindromic decompositio...

ZOJ1353 Unimodal Palindromic Decompositions解题报告

#include #include #include #include using namespace std; unsigned num[1000][1000]; void f() {   ...

UNIMODAL PALINDROMIC DECOMPOSITIONS-----动态规划-------单峰回文序列分解

#include #include #include using namespace std; typedef long long LL; const int maxn = 250 + 5; LL F...
  • czkct
  • czkct
  • 2016-02-28 17:59
  • 411

动态规划之UNIMODAL PALINDROMIC DECOMPOSITIONS

UNIMODAL PALINDROMIC DECOMPOSITIONS Description A sequence ofpositive integers is Palindromic if i...

poj1221 dp

题意:题目首先告诉我们神马叫做A Unimodal Palindromic sequence,也就是一个序列先递增然后再递减(即单峰),而且是对称的。 已知一个数字N,我们可以把数字N拆分成很多个U...

POJ 1221

UNIMODAL PALINDROMIC DECOMPOSITIONS Time Limit: 1000MS   Memory Limit: 65536K Total ...

UVA 1221/HDU 2413/POJ 3343 Against Mammoths(二分+二分图匹配)

题目链接:点击打开链接 思路: 由于人类星球和外星球是一一对应的, 自然想到二分图匹配,  但是如果匹配, 必须是某人类星球能打赢某外星球才连边。  因为星球上的飞船数量随时间变化, 所以先考虑把...

poj1221

dp较水题,只要整数划分dp情况了,

CF 396A On Number of Decompositions into Multipliers

组合数问题。表示现在不会。dp写个。感谢波神教会我优化。。。不然死都过不鸟。。。 每种因子在转移时数目是一样的,可以预处理。但是三重循环必然超时,因为是从前一行转移到后一行,每次可以先处理出所有情况,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)