六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 43|回复: 0

7th_F

[复制链接]

升级  28%

28

主题

28

主题

28

主题

秀才

Rank: 2

积分
92
 楼主| 发表于 2013-1-26 14:00:17 | 显示全部楼层 |阅读模式
这道题目的解题思路是动态规划,通过N和K进行状态转移
#include <cstdio>#include <cmath>int a[40][900];int n,k;void work(){a[1][1]=1;for(int i=2;i<=n;i++){for(int j=0;j<=(i+1)*i/2;j++){a[i][j]=0;if((i+j)<=(i-1)*i/2){a[i][j]+=a[i-1][i+j];}if(j!=0){if(i>=j)a[i][j]+=a[i-1][i-j];if(i<=j)a[i][j]+=a[i-1][j-i];}//printf("%d %d %d\n",i,j,a[i][j]);}}}int main(){scanf("%d%d",&n,&k);if(k>(n+1)*n/2){printf("0\n");}else{work();printf("%d\n",a[n][k]);}return 0;}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表