HDU 1723-Distribute Message-dp-(有向图途径模型)

HDU 1723-Distribute Message-dp-(有向图路径模型)

题意:一队人传递消息,一个人可以向后传给m个人,求最后一个人得到消息的方式有多少种。有向图求起点到终点有多少条路径模型。

分析:dp[i]表示第i个人得到消息的方式有dp[i]种,dp[i]=dp[i-1]+.....+dp[i-m]。求方式的状态转移方程基本上都是这个样子。

代码:

#include<iostream>
#include<algorithm> 
using namespace std;
int n,m;
int dp[100];
void DP()
{
	memset(dp,0,sizeof(dp));
	dp[1]=1;
	for(int i=2;i<=n;i++){
		for(int j=i-1;i-j<=m&&j>0;j--)
		   dp[i]+=dp[j];
	}
}
int main()
{
    while(cin>>n>>m){
    	if(!n&&!m) break;
    	DP();
    	cout<<dp[n]<<endl;
    }
}


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