P2946 [USACO09MAR] Cow Frisbee Team S

原题链接

题解

sum 为总能力
则若 sumF 的倍数 sum mod F=0

根据加法求模的特性,我们可以设 dp[i][j] 为 加上第 i 个元素后, 模为 j 的方案数
转移方程移得
注意一个细节:按照遍历顺序,每个元素要么不是一套方案的第一个元素,要么是
所以先累加所有作为非首元素的方案数,再加上作为首元素的方案数

code

#include<bits/stdc++.h>
using namespace std;
const int mod=1e8;
int dp[2005][1005]={0};
int main()
{
    int n,k;
    cin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        int x;
        cin>>x;
        x%=k;
        for(int j=0;j<k;j++) dp[i][j]=(dp[i][j]+dp[i-1][j]+dp[i-1][(j+k-x)%k])%mod;
        dp[i][x]++;
    }

    cout<<dp[n][0]<<endl;
    return 0;
}

posted @   纯粹的  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示