首页 > 其他分享 >P2946 [USACO09MAR] Cow Frisbee Team S

P2946 [USACO09MAR] Cow Frisbee Team S

时间:2024-03-03 23:00:28浏览次数:27  
标签:Frisbee Cow P2946 sum 元素 USACO09MAR int

原题链接

题解

设 \(sum\) 为总能力
则若 \(sum\) 是 \(F\) 的倍数 \(\to\) \(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;
}

标签:Frisbee,Cow,P2946,sum,元素,USACO09MAR,int
From: https://www.cnblogs.com/pure4knowledge/p/18050938

相关文章

  • [USACO09MAR]Cow Frisbee Team S
    [USACO09MAR]CowFrisbeeTeamS题目描述老唐最近迷上了飞盘,约翰想和他一起玩,于是打算从他家的\(N\)头奶牛中选出一支队伍。每只奶牛的能力为整数,第\(i\)头奶牛的能力为\(R_i\)。飞盘队的队员数量不能少于\(1\)、大于\(N\)。一支队伍的总能力就是所有队员能力的总和。约......
  • P2946 [USACO09MAR]Cow Frisbee Team S
    从序列A中选出一些数,使得总和为m的倍数,求有几种选法?  f[i][j],考虑前i个,总和的余数为j时的方案数(a[i]%m) f[i][j]+=f[i-1][j]+f[i-1][j-a[i]] #includ......
  • 【题解】洛谷P2946 [USACO09MAR]Cow Frisbee Team S
    这题乍一看是一个朴素的01背包问题,将所有方案的集合按照能力值的和来划分成1~m,然后把m当作体积,把n当作物品数,做一个01背包的代码。于是我兴冲冲地写了代码交上去,然后十组样......