zoukankan      html  css  js  c++  java
  • 牛客小白月赛16E

    小雨有一个 n×n 的矩阵,起点在(1,1),终点在(n,n),只能向下或向右走,且每次只能走 1 步。矩阵上每个点都有一个点权ai,j 。
    求走到终点的路径有多少不同的点权和。
    输入描述:
    第一行,输入一个正整数 n 。
    接下来 n+1 行,每行 n 个数,表示 aij。
    输出描述:
    共一行,输出有多少不同的点权和。

    在这里插入图片描述

    参考代码:

        #include<bits/stdc++.h>
        using namespace std;
        int a[10][10];
        int book[4000];
        void dfs(int x,int y,int n,int sum)
        {
        	if(x<0||y<0||x>n||y>n)
        		return;
        	if(x==n&&y==n)
        	{
        		book[sum]=1;
        		return;
        	}
        	else 
        	{
        		dfs(x+1,y,n,sum+a[x][y]);
        		dfs(x,y+1,n,sum+a[x][y]);
        	}
        }
        int main()
        {
        	int n,ans=0;
        	cin>>n;
        	memset(book,0,sizeof(book));
        	memset(a,0,sizeof(a));
        	for(int i=0;i<n;i++)
        		for(int j=0;j<n;j++)
        			cin>>a[i][j];
        	dfs(0,0,n-1,a[0][0]);
        	for(int i=0;i<4000;i++)
        		if(book[i]==1)
        			ans++;
        	cout<<ans<<endl;
        	return 0;
        }
    
  • 相关阅读:
    第几天
    计算一个歌手的平均分
    将单词的首字母改为大写
    两数求和
    做一板1寸照片
    Filter过滤器
    AJAX
    EL表达式
    session存取
    默认的前进,刷新,后退,代码
  • 原文地址:https://www.cnblogs.com/yonglin1998/p/11780834.html
Copyright © 2011-2022 走看看