我是靠谱客的博主 鲤鱼纸鹤,最近开发中收集的这篇文章主要介绍九小时九个人九扇门,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#include<bits/stdc++.h>
using namespace std;

const int N = 1e5 + 10;
const int mod = 998244353;
typedef long long ll;

int n;
int a[N];
int f[N][10];
void solve() {
	cin >> n;
    for (int i = 1; i <= n ;i++) {
        cin >> a[i];
        a[i] %= 9;
    }
   
    for (int i = 1; i<= n; i++) {
        (f[i][a[i]] += 1) %mod;
        for (int j = 0; j < 9; j++) {
            (f[i][j] += f[i - 1][j]) %=mod;
            (f[i][(j +a[i]) % 9] += f[i -1][j]) %=mod;
        }
    }
    for (int i =1; i<= 8; i ++) cout << f[n][i] << " ";
    cout << f[n][0] << endl;
}
int main () {
	
	int t;
	t = 1;
	while (t --) solve();
	return 0;
}

https://ac.nowcoder.com/acm/contest/23106/A 关键在于每个数的根为对9取模。 然后就可以转换为01背包问题 为什么没想出来,没往dp的方向想,甚至没有认出是01背包。01背包就是每个物品取或者不取。

最后

以上就是鲤鱼纸鹤为你收集整理的九小时九个人九扇门的全部内容,希望文章能够帮你解决九小时九个人九扇门所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部