农夫顿因开始玩飞盘之后,约翰也打算让奶牛们享受飞盘的乐趣.他要组建一只奶牛飞盘
队.他的N(1≤N≤2000)只奶牛,每只部有一个飞盘水准指数Ri(1≤Ri≤100000).约翰要选出1只或多于1只奶牛来参加他的飞盘队.由于约翰的幸运数字是F(1≤F≤1000),他希望所有奶牛的飞盘水准指数之和是幸运数字的倍数.
帮约翰算算一共有多少种组队方式.
标签:
组队方式有(2,3),(3,4),(1,2,4)共三种
题解:一开始还在想着怎么DFS剪枝= =。。。感觉自己水水哒
其实就是一个水水的DP就完事啦,记得最后要-1(你总不能一个都不要然后还要算一种方法吧)
1 /************************************************************** 2 Problem: 3400 3 User: HansBug 4 Language: Pascal 5 Result: Accepted 6 Time:260 ms 7 Memory:23704 kb 8 ****************************************************************/ 9 10 const p=100000000; 11 var 12 i,j,k,l,m,n:longint; 13 b:array[0..5000] of longint; 14 a:array[0..3000,0..2000] of longint; 15 begin 16 readln(n,m); 17 for i:=1 to n do readln(b[i]); 18 for i:=1 to n do b[i]:=b[i] mod m; 19 fillchar(a,sizeof(a),0); 20 a[0,0]:=1; 21 for i:=1 to n do 22 for j:=0 to m do 23 a[i,j]:=(a[i-1,(j-b[i]+m) mod m]+a[i-1,j]) mod p; 24 writeln(a[n,0]-1); 25 readln; 26 end.
3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队
标签:
原文地址:http://www.cnblogs.com/HansBug/p/4418755.html