(精)hdoj 2151(特殊的dp)

来源:互联网 发布:游戏设计软件下载 编辑:程序博客网 时间:2024/05/27 01:34
//dp在这个题中关键就是找到状态转化方程。状态转移方程为 :  a[M][T] = a[M-1][T-1] + a[M-1][T + 1];#include<iostream>int main(){    int cmt[105][105];    int N,P,M,T;    while ( scanf ( "%d%d%d%d",&N,&P,&M,&T ) != EOF )    {          memset ( cmt, 0, sizeof ( cmt) );          cmt[M][T] = 1;//前一个代表剩余的时间,后一个代表步数。          for ( int i = M - 1; i >= 0; i-- )          {                for ( int j = 1;j <= N; j ++ )                {  //如果两个条件都合适,那么两个都加,如果只有一个,只加一个。                      if ( j - 1 > 0 )                      {                           cmt[i][j] += cmt[i+1][j-1];                      }                      if ( j + 1 <= N )                      {                           cmt[i][j] += cmt[i+1][j+1];                      }                }          }          printf ( "%d\n",cmt[0][P] );    }    return 0;}
这个代码是用bfs写的。如果有100颗树的话,在队列当中需要有100!个元素,所以肯定会内存超出。
#include<iostream>#include<stdio.h>#include<string>#include<queue>using namespace std;int dir[2]={1,-1};int N,P,M,T;int num=0;//N是苹果树的数量。P开始的位置。M分钟时刻。T结束的位置。class Point{public:int time;int step;};Point start,end,p,cs;int over(Point p){if(p.step<1||p.step>N)return 1;return 0;}void bfs(){start.step=P;start.time=0;queue<Point>q;q.push(start);int i;while(!q.empty()){p=q.front();q.pop();//是不是方案数加1if(p.time==M&&p.step==T){num++;}if(p.time>M){return;}for(i=0;i<2;i++){//修改位置和时间cs.step=p.step+dir[i];cs.time=p.time+1;if(!over(cs)){q.push(cs);}}}}void init(){num=0;}int main(){//freopen("in.txt","r",stdin);while(scanf("%d%d%d%d",&N,&P,&M,&T)!=EOF){init();bfs();cout<<num<<endl;}return 0;}



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 魅蓝5s运存占用太多怎么办 魅蓝e2手机照片被删了怎么办 魅蓝e2不小心删除了照片怎么办 魅蓝3s返回键失灵怎么办 糖猫电话手表屏碎了怎么办 魅蓝手机没下安装包强制更新怎么办 老婆赌博输了30多万现在怎么办啊 红米nt2手机通话声音小怎么办? 微信退出后重新登录忘记密码怎么办 微退出后再登录忘记密码了怎么办 忘记微信密码又退出微信怎么办 无线网自家密码忘了也连不上怎么办 无线网密码忘了连接不上怎么办 魅蓝手机插口半夜坏了怎么办 魅族手机换屏后出现跳屏怎么办 小米手机微信小程序转发不出怎么办 苹果手机ad码和密码忘了怎么办 魅族手机摔掉无法开机怎么办 魅族音量+电源键直接开机了怎么办 魅蓝2数字锁机了怎么办 苹果5s蓝屏开不了机怎么办 红米pro更新开发版发热卡怎么办 5s手机音量增大键失灵怎么办 眼睛看手机久了模糊应怎么办 华为无线自拍杆连opp手机怎么办 苹果手机进水后自动跳电怎么办 魅族手机返回键不好使怎么办 手机壳是玻璃的摔坏了怎么办 魅族手机进水了开不了机怎么办 打发票机屏忘记了密码怎么办 魅族手机升级显示电量不足怎么办 魅蓝手机的图库没了怎么办 魅蓝5s屏幕碎了怎么办 魅族手机中间的home键失灵怎么办 魅族手机突然关机开不了机了怎么办 魅蓝3s卡顿怎么办视频 魅蓝3s手机太卡怎么办 红米4x外放破音怎么办 魅族手机刷机后内存变小了怎么办 手机用久了内存越来越小怎么办魅族 贴了车膜左右后视镜反光怎么办