1626. Recursively Palindromic Partitions

本文介绍了一种解决特定对称数列求和问题的方法,通过动态规划思想实现了一个有效的算法。该算法利用状态转移方程计算数列的和,并提供了一个C++示例程序。

传送门:http://soj.me/1626

题目中数字排列不需要考虑顺序的问题 ,且左右两边的数列也都是对称数列

因为左右是对称的,中间的数字可以任取,所以只需要考虑左边数列的和就可以了

状态转移方程是

x【i】=x【k】(2*k<=i)

---------------------------------------------------------------------------------

#include <iostream>

 2  using  namespace std;
 3  int p[ 1010];
 4  void setp()
 5 {
 6         p[ 0]= 1;
 7          for( int i= 1;i< 1010;i++)
 8                  for( int j= 0; 2*j<=i;j++)
 9                         p[i]+=p[j];
10 }
11  int main()
12 {
13          int t= 0;
14         setp();
15         cin>>t;
16          for( int i= 0;i<t;i++)
17         {
18                  int tm;
19                 cin>>tm;
20                 cout<<i+ 1<< " "<<p[tm]<<endl;
21         }
22 }

转载于:https://www.cnblogs.com/congzc/archive/2011/04/29/2329979.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值