蓝桥杯 历届试题 地宫取宝 递推

题目链接
思路:考虑递推 f [ i ] [ j ] [ a ] [ b ] f[i][j][a][b] f[i][j][a][b]表示,表示第 i , j i,j i,j个宝藏选了 a a a个,其中最大是 b b b的方案数。
每个宝藏都有两种,选或者不选。
初始条件为: f [ 1 ] [ 1 ] [ 0 ] [ 0 ] = f [ 1 ] [ 1 ] [ 1 ] [ a [ 1 ] [ 1 ] ] = 1 f[1][1][0][0]=f[1][1][1][a[1][1]]=1 f[1][1][0][0]=f[1][1][1][a[1][1]]=1
不选: f [ i ] [ j ] [ x ] [ p ] + = f [ i 1 ] [ j ] [ x ] [ p ] + f [ i ] [ j 1 ] [ x ] [ p ] f[i][j][x][p]+=f[i-1][j][x][p]+f[i][j-1][x][p] f[i][j][x][p]+=f[i1][j][x][p]+f[i][j1][x][p]
选: f [ i ] [ j ] [ x ] [ a [ i ] [ j ] ] + = f [ i 1 ] [ j ] [ x 1 ] [ p ] + f [ i ] [ j 1 ] [ x 1 ] [ p ] , p &lt; a [ i ] [ j ] f[i][j][x][a[i][j]]+=f[i-1][j][x-1][p]+f[i][j-1][x-1][p],p&lt;a[i][j] f[i][j][x][a[i][j]]+=f[i1][j][x1][p]+f[i][j1][x1][p],p<a[i][j]
注意处理一下细节即可。

#include<bits/stdc++.h>

#define LL long long
#define fi first
#define se second
#define mp make_pair
#define pb push_back

using namespace std;

LL gcd(LL a,LL b){return b?gcd(b,a%b):a;}
LL lcm(LL a,LL b){return a/gcd(a,b)*b;}
LL powmod(LL a,LL b,LL MOD){LL ans=1;while(b){if(b%2)ans=ans*a%MOD;a=a*a%MOD;b/=2;}return ans;}
const int N = 2e5 +11;
const LL mod=1e9+7;
LL f[55][55][14][14],n,m,k,a[100][100];//第i行第j个选a个最大是b的方案,f[i][j][a][b]
int main(){
	ios::sync_with_stdio(false);
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>a[i][j],a[i][j]++;
	f[1][1][1][a[1][1]]=1;
	f[1][1][0][0]=1;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(i==1&&j==1)continue;
			for(int x=0;x<=k;x++){
				for(int p=0;p<=13;p++)f[i][j][x][p]+=f[i-1][j][x][p]+f[i][j-1][x][p],f[i][j][x][p]%=mod;
				if(x>=1)for(int p=0;p<a[i][j];p++)f[i][j][x][a[i][j]]+=f[i-1][j][x-1][p]+f[i][j-1][x-1][p];
				f[i][j][x][a[i][j]]%=mod;	
			}
		}
	}
	LL ans=0;
	for(int i=1;i<=13;i++)ans+=f[n][m][k][i],ans%=mod;
	cout<<ans<<endl;
	return 0;
}

全部评论

相关推荐

05-15 14:58
已编辑
南昌航空大学科技学院 C++
站队站对牛:工资是低的离谱
点赞 评论 收藏
分享
在下uptown:山东的哥们得好好回答 第一问题,专业技能太少了,现在写的大部分都是模型迭代过渡期的技术栈,说白了今天用明天可能就不用,多补一些看家的本事 第二个问题,项目偏学术学习体现不出工程能力,deepresearch核心在于模型自我反馈自我纠正,没体现出来,RAG本身在落地应用上就是个伪命题。 再有就是,有实习经历可以弥补学历不足,建议放到学历下面,别人筛简历可能第一眼觉得学校不过关,但第二眼有实习经历,就给你面试了,藏到后面可能就没有第二眼了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务