题意: 两个人玩石头剪刀布,你知道对方每次要出什么,有n(1~2000)局, 每局如果你赢了得1分,否则不得分,问你拿到某个分 score (0~2000)的方案数有多少。 0:石头, 1:布, 2:剪刀. 思路: 一开始想到的是组合数学的方法.每一局得分的情况只有一个,但是不得分的
题意:
两个人玩石头剪刀布,你知道对方每次要出什么,有n(1~2000)局, 每局如果你赢了得1分,否则不得分,问你拿到某个分值score(0~2000)的方案数有多少。0:石头, 1:布, 2:剪刀.
思路:
一开始想到的是组合数学的方法.每一局得分的情况只有一个,但是不得分的情况有两个,所以是任选score局*2...
但是要mod(1e9+7), 除数用mod, 要用逆元..
AC.
#line 7 "RockPaperScissorsMagicEasy.cpp"
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
第二种方法是DP.
dp[i][j]: 表示第i局中有j局得分的方案数. dp[i][j] = (dp[i-1][j] + dp[i-1][j-1]) % mod
AC.
#line 7 "RockPaperScissorsMagicEasy.cpp"
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include