P3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队

太水了,背包DP。

 1 const maxn=100000000;
 2 var n,f,i,j,ans,t,tt:longint;
 3 q:array[0..3000] of longint;
 4 a:array[0..3000,0..2000] of longint;
 5 begin
 6   readln(n,f);
 7   for i:=1 to n do
 8     begin
 9       readln(q[i]);
10       q[i]:=q[i] mod f;
11     end;
12   a[0,0]:=1;
13   for i:=1 to n do
14     for j:=0 to f do
15       a[i,j]:=(a[i-1,(j-q[i]+f) mod f]+a[i-1,j]) mod maxn;
16   writeln(a[n,0]-1);
17 end.
时间: 2024-08-27 16:11:12

P3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队的相关文章

3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队

3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 129  Solved: 84[Submit][Status][Discuss] Description 农夫顿因开始玩飞盘之后,约翰也打算让奶牛们享受飞盘的乐趣.他要组建一只奶牛飞盘 队.他的N(1≤N≤2000)只奶牛,每只部有一个飞盘水准指数Ri(1≤Ri≤100000).约翰要选出1只或多于1只奶牛来参加他的

BZOJ3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队

3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 89  Solved: 60[Submit][Status] Description 农夫顿因开始玩飞盘之后,约翰也打算让奶牛们享受飞盘的乐趣.他要组建一只奶牛飞盘 队.他的N(1≤N≤2000)只奶牛,每只部有一个飞盘水准指数Ri(1≤Ri≤100000).约翰要选出1只或多于1只奶牛来参加他的飞盘队.由于约翰的幸

BZOJ(begin) 1375 [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队:dp【和为f的倍数】

题目链接:http://begin.lydsy.com/JudgeOnline/problem.php?id=1375 题意: 给你n个数,你可以从中选任意多个,但不能不选.问你所选数字之和为f的倍数的方案数. 题解: 表示状态: dp[i][j] = num of ways i:考虑到第i个数(还没选) j:之前所选数之和 MOD f == j 找出答案: ans = dp[n][0] - 1 不选也是一种方案,但题目种要求不能不选,所以-1. 如何转移: 选或不选第i个数. dp[i+1][

P2946 [USACO09MAR]牛飞盘队Cow Frisbee Team

题目描述 After Farmer Don took up Frisbee, Farmer John wanted to join in the fun. He wants to form a Frisbee team from his N cows (1 <= N <= 2,000) conveniently numbered 1..N. The cows have been practicing flipping the discs around, and each cow i has a

牛飞盘队Cow Frisbee Team

老唐最近迷上了飞盘,约翰想和他一起玩,于是打算从他家的N头奶牛中选出一支队伍. 每只奶牛的能力为整数,第i头奶牛的能力为R i .飞盘队的队员数量不能少于 1.大于N. 一支队伍的总能力就是所有队员能力的总和. 约翰比较迷信,他的幸运数字是F,所以他要求队伍的总能力必须是F的倍数.请帮他 算一下,符合这个要求的队伍组合有多少?由于这个数字很大,只要输出答案除以 10^8的余 数就可以了. 输入格式 ?第一行:两个用空格分开的整数:N和F,1≤N≤2000,1≤F≤1000 ?第二行到N+1行:第

[USACO09MAR]牛飞盘队Cow Frisbee Team

传送门:https://www.luogu.org/problem/P2946 本题类似于01背包,定义  dp[i][j]  表示前  i  个牛,总和取模幸运值为  j  时的数量,a[i]为第j头牛的能力值,很明显dp[i][j]+=dp[i-1][j](不选择第i头牛)+dp[i-1][(j-a[i]+幸运值)%幸运值](选择第i头牛),这样就可以推出dp[n][0]第n头牛时余数为 0  的数量 1 #include<bits/stdc++.h> 2 using namespace

1638: [Usaco2007 Mar]Cow Traffic 奶牛交通

1638: [Usaco2007 Mar]Cow Traffic 奶牛交通 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 618  Solved: 217[Submit][Status] Description 农场中,由于奶牛数量的迅速增长,通往奶牛宿舍的道路也出现了严重的交通拥堵问题.FJ打算找出最忙碌的道路来重点整治. 这个牧区包括一个由M (1 ≤ M ≤ 50,000)条单行道路(有向)组成的网络,以及 N (1 ≤ N ≤ 5,000)个

bzoj1638[Usaco2007 Mar]Cow Traffic 奶牛交通*

bzoj1638[Usaco2007 Mar]Cow Traffic 奶牛交通 题意: N点M边有向图,每个入度为0的点都有无限只奶牛,现在它们要回宿舍(点1),求通过量最大的路的通过量.N≤5000,M≤50000 题解: 一条路的通过量=到达节点到入度为0节点的方案数*点1到出发节点的方案数(其实我也不知道为什么,这题意完全是模糊的),2次dfs就行了. 代码: 1 #include <cstdio> 2 #include <cstring> 3 #include <al

BZOJ 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛( dp )

一道水 dp ...然后我一开始用 BFS ...结果 MLE 了... dp[ i ][ j ][ k ] 由它四个方向上的 k - 1 转移. ----------------------------------------------------------------------------------------------- #include<cstdio> #include<algorithm> #include<cstring> #include<