• 蚂蚁觅食


    B. 蚂蚁觅食(二)

    单点时限: 1.0 sec

    内存限制: 512 MB

    一只饥饿的小蚂蚁外出觅食,幸运的的小蚂蚁发现了好多食物。 但是这些食物位于一个N∗M的方格魔法阵的右下角,而小蚂蚁位于方格法阵的左上角。
    并且小蚂蚁被施展了魔法,它只能向下或者向右走。 请你帮助小蚂蚁计算一下,它一共有多少条路可以走到有食物的方格。

    输入格式
    多组输入,

    每一组两个正整数N, M (N,M≤30)。表示一个方格魔法阵。

    输出格式
    一个整数表示一共有多少条路。

    样例
    input
    2 3
    output
    3

    解题思路:很简单的记忆化搜索加dfs;即使再简单这么菜的我还是不会写。写一下解题过程。

    Code:

    #include<iostream>
    #include<cstring>
    using namespace std;
    typedef long long ll;
    int n,m;
    ll dp[50][50];
    int d[2][2]={1,0,0,1};
    ll dfs(int x,int y){
    	if(dp[x][y]) return dp[x][y];
    	for(int i=0;i<2;i++){
    		int dx=x+d[i][0];
    		int dy=y+d[i][1];
    		if(dx>=0&&dy>=0&&dx<n&&dy<m){
    			dp[x][y]+=dfs(dx,dy);
    		}
    	}
    	return dp[x][y];
    }
    
    int main(){
    	while(cin>>n>>m){
    		memset(dp,0,sizeof(dp));
    		dp[n-1][m-1]=1;
    		cout<<dfs(0,0)<<endl;
    	}	
    	
    	return 0;
    } 
    
    七月在野,八月在宇,九月在户,十月蟋蟀入我床下
  • 相关阅读:
    hdu_5791_Two(DP)
    hdu_5783_Divide the Sequence(贪心)
    hdu_5769_Substring(后缀数组)
    hdu_5778_abs(暴力)
    hdu_5776_sum(前缀和维护)
    hdu_5777_domino(贪心)
    [wikioi2069]油画(贪心)
    [bzoj 1503][NOI 2004]郁闷的出纳员(平衡树)
    数据结构练习
    [poj3274]排排站(Hash)
  • 原文地址:https://www.cnblogs.com/voids5/p/12695030.html
Copyright © 2020-2023  润新知