• 牛客小白月赛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;
        }
    
  • 相关阅读:
    kail
    scp命令
    搭建LNMP
    PHP7.3.2安装
    nginx的安装
    CentOS7部署NFS
    Linux使用mailx通过外部smtp发邮件
    kickstart自动化安装
    centos7下单用户模式,救援模式的应用以及虚拟机下的克隆
    putty和xsheel远程连接centos7
  • 原文地址:https://www.cnblogs.com/yonglin1998/p/11780834.html
Copyright © 2020-2023  润新知