DP 组合数的存储

九小时九个人九扇门

https://ac.nowcoder.com/acm/contest/23106/A

DP 组合数的存储

题目

alt

重述

  1. 求解组合的数字根
  2. 累计组合数(在这里用dp求解)

求解

1.数字根问题

根据他所给的例子,猜测: 每个数字%9,最后的和为数字根

注意:原来是%10 -> 现在是∑%9

原因未知,但这个操作,将会决定若你打开的是第9号门,由于我们中间的操作都是%9,所以这个数要从dp[n][0]处输出。

2.dp计算组合数

1.初始值的设定

这里在一开始的时候,要把所有人只有他自己的时候的对应开哪号门给计算出来。因为我们是以人为单位进行大循环,所以可以直接写在循环内部。

2.dp更新

两个循环

外面的大循环用来遍历所有的人

里面的小循环用来刷新所有的门

1)dp[i][a[i]+j] = dp[i]][a[i]+j] + dp[i-1][j] 代表选择加上这个数进行刷新

2)dp[i][j] = dp[i][j] + dp[i-1][j] 代表不加上这个数进行刷新

最后所有的数刷新至dp[n][0-9]中

代码

c++

#define mod 998244353
using namespace std;
typedef long long ll;
ll num[100100] = {0};
ll dp[100100][10] = {0};
int main(void){
	ll n;
	cin >> n;
	ll num[n];
	for(int i=0; i<n; i++){
		cin >> num[i];
	}
	//ll dp[n][9] = {0};
	//dp[0][0] = 1;
	for(int i=0; i<n; i++){
		dp[i][num[i]%9] = (dp[i][num[i]%9] + 1) % mod;		
		for(int j=0; j<9; j++){
			dp[i][j] = (dp[i][j] + dp[i-1][j]) % mod;
			dp[i][(num[i]+j)%9] = (dp[i][(num[i]+j)%9] + dp[i-1][j]) % mod;
		}
	}
	for(int i=1; i<9; i++){
		cout << dp[n-1][i] << " ";
	}
	cout << dp[n-1][0];
} 

python

n = int(input())
## 读入长串
num = list(map(int, input().split(" ")))
## 初始化二维数组
dp = [[0 for i in range(0, 10)]for j in range(0, 100005)]

for i in range(0, n):
	dp[i][num[i] % 9] = (dp[i][num[i] % 9] + 1) % mod
	for j in range(0, 9):
		dp[i][j] = (dp[i][j] + dp[i-1][j]) % mod
		dp[i][(num[i]+j) % 9] = (dp[i][(num[i]+j) % 9] + dp[i-1][j]) % mod

for i in range(1, 9):
	print(dp[n-1][i], end=" ")

print(dp[n-1][0])

全部评论

相关推荐

10-15 18:02
已编辑
香港中文大学 golang
秋招有幸一开始就拿了淘天的笔面,并且美团转正的意向也顺利通过后续在淘天和字节两个&nbsp;9&nbsp;月主要流程都走到了&nbsp;hr&nbsp;面,国庆节后一个通过,一个横向挂了其他面过的包括:b&nbsp;站一面挂&nbsp;八股还行,最后手撕给了个笔试压轴限时&nbsp;15min...整段垮掉阿里控股&nbsp;kpi一面➕换部门走到二面,控股的都不喜欢开摄像头京东一面挂&nbsp;常规问题,但是疑似成都&nbsp;base&nbsp;hc&nbsp;很少,并且透露了已经转正,目前池子里无人捞腾讯正在二面&nbsp;一面体验不错,还指出了要改进的地方,提示二面不会再问问过的问题快手一面未知小红书一面未知字节换部门一面不喜欢业务,又回到了人才库大麦约面,准备拒掉虾皮一面&nbsp;无后续流程,面试聊的还行,感觉上海&nbsp;base&nbsp;池子满了---------------------------------------------------------------------------感觉秋招可以结束了,后续感觉走完这个腾讯流程就随缘面面&nbsp;t&nbsp;和&nbsp;b,主包家在南京,奈何南京没啥好的民营企业和互联网氛围,以及好国企又太难进,不知道淘天这个意向够不够直接结束秋招了...今天去深圳&nbsp;nip&nbsp;主场看了一下入围赛,主队不是这两家,还是觉得&nbsp;ig&nbsp;可惜了,有很好的机会没有抓住。感触和我字节&nbsp;hr&nbsp;面挂一样评论区有推荐的字节杭州上海base的业务线或者有字节&nbsp;hr&nbsp;uu&nbsp;可以捞一下吗?
肖先生~:大佬都这么强了还要干啥啊
我的求职进度条
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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