码迷,mamicode.com
首页 > 其他好文 > 详细

HDU ACM 3284 Adjacent Bit Counts

时间:2015-05-18 16:44:06      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:c   c++   acm   算法   动态规划   

分析:dp[i][j][k]表示长度为i的串含j个相邻的1并且以k为结尾的种数。状态转移方程:dp[i][j][0]=dp[i-1][j][0]+dp[i-1][j][1];dp[i][j][1]=dp[i-1][j][0]+dp[i-1][j-1][1];边界dp[1][0][0]=dp[1][0][1]=1;。

#include<iostream>
using namespace std;

int dp[105][105][2];

void init()
{
	int i,j;

	dp[1][0][0]=dp[1][0][1]=1;
	for(i=2;i<=100;i++)
	{
		dp[i][0][0]=dp[i-1][0][0]+dp[i-1][0][1];
		dp[i][0][1]=dp[i-1][0][0];
		for(j=1;j<i;j++)
		{
			dp[i][j][0]=dp[i-1][j][0]+dp[i-1][j][1];
			dp[i][j][1]=dp[i-1][j][0]+dp[i-1][j-1][1];
		}
	}
}

int main()
{
	int P,n,k,t;

	ios::sync_with_stdio(false);
	cin>>P;
	init();
	while(P--)
	{
		cin>>t>>n>>k;
		cout<<t<<" "<<dp[n][k][0]+dp[n][k][1]<<endl;
	}
	return 0;
}


HDU ACM 3284 Adjacent Bit Counts

标签:c   c++   acm   算法   动态规划   

原文地址:http://blog.csdn.net/a809146548/article/details/45823709

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!