Topcoder srm 653 div.2 500
题意: 两个人玩石头剪刀布,你知道对方每次要出什么,有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 <cstdlib> #include <cctype> #include <cstring> #include <cstdio> #include <cmath> #include <algorithm> #include <vector> #include <string> #include <iostream> #include <sstream> #include <map> #include <set> #include <queue> #include <stack> #include <fstream> #include <numeric> #include <iomanip> #include <bitset> #include <list> #include <stdexcept> #include <functional> #include <utility> #include <ctime> using namespace std; #define PB push_back #define MP make_pair #define REP(i,n) for(i=0;i=(l);--i) typedef vector<int> VI; typedef vector<string> VS; typedef vector<double> VD; typedef int LL; typedef pair<int> PII; typedef long long ll; class RockPaperScissorsMagicEasy { public: ll fact[2005]; const int mod = 1e9+7; RockPaperScissorsMagicEasy() { fact[0]=1; for(int i=1;i e2+e3) return 0; return a1*mod_inverse(a2*a3%p,p)%p; } ll extgcd(ll a,ll b,ll &x,ll &y) { ll d=a; if(b) { d=extgcd(b,a%b,y,x); y-=(a/b)*x; } else { x=1;y=0; } return d; } ll mod_inverse(ll a,ll m) { ll x,y; extgcd(a,m,x,y); return (m+x%m)%m; } ll mod_pow(ll a,ll n) { ll ans=1,b=a; while(n) { if(n&1) ans=ans*b%mod; n>>=1; b=b*b%mod; } return ans; } int count(vector <int> card, int score) { int t = card.size(); //printf("%d\n", t); if(score > t) return 0; if(score == t) return 1; if(score == 0) { return t*2; } int ans=modc(t,score,mod)*mod_pow(2,t-score)%mod; return ans; }</int></int></double></string></int></ctime></utility></functional></stdexcept></list></bitset></iomanip></numeric></fstream></stack></queue></set></map></sstream></iostream></string></vector></algorithm></cmath></cstdio></cstring></cctype></cstdlib>
第二种方法是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 <cstdlib> #include <cctype> #include <cstring> #include <cstdio> #include <cmath> #include <algorithm> #include <vector> #include <string> #include <iostream> #include <sstream> #include <map> #include <set> #include <queue> #include <stack> #include <fstream> #include <numeric> #include <iomanip> #include <bitset> #include <list> #include <stdexcept> #include <functional> #include <utility> #include <ctime> using namespace std; #define PB push_back #define MP make_pair #define REP(i,n) for(i=0;i=(l);--i) typedef vector<int> VI; typedef vector<string> VS; typedef vector<double> VD; typedef long long ll; typedef pair<int> PII; class RockPaperScissorsMagicEasy { public: ll dp[2005][2005]; ll cal(ll a, ll n, ll mod) { ll s = 1; while(n > 0) { if(n&1) s = s*a%mod; a = a*a%mod; n >>= 1; } return s; } int count(vector <int> card, int score) { int len = card.size(); ll mod = 1e9+7; if(len <br> <br> </int></int></double></string></int></ctime></utility></functional></stdexcept></list></bitset></iomanip></numeric></fstream></stack></queue></set></map></sstream></iostream></string></vector></algorithm></cmath></cstdio></cstring></cctype></cstdlib>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











500内部サーバー エラーは、HTTP 500 内部サーバー エラーを意味します。これは、サーバーがリクエストを実行できない予期しない状況に遭遇したことを意味しますが、特定のエラーやエラーの根本原因を説明することはできません。エラーが発生した場合、アクセスした Web サイトではエラーが表示されます。

イーサリアム価格は2,250ドルの水準を超えて回復の波を始めた。 ETHは2,280ドルのレジスタンスゾーンをクリアしてプラスゾーンに移行することができましたが、ビットコインに比べて勢いが弱かったです。

ビットコインは大幅な上昇を開始し、57,500ドルの抵抗レベルを超え、現在60,000ドルのマークに到達する可能性がある有望な兆候を示しています。

ある専門家によると、2011年の作品は2012年のロンドンオリンピックを記念して鋳造されたという。

新規プレイヤーは、プロモーション コード MLIVEMGM を使用することで、BetMGM ウェルカム ボーナスを獲得し、ボーナス ベットで最大 1,500 ドルの払い戻しを受け取ることができます。

このブロックチェーン技術の終わりのない競争の中で、ソラナ (SOL) とイーサリアム (ETH) の 2 つが傑出し、投資家の注目を集めることに成功しました。

SOL は週足チャートでカップアンドハンドルパターンを形成しており、Solana 価格が 2,600% 急騰し、4,500 ドルまで上昇する可能性があることを示しています。

2012年のロンドンオリンピックを記念して鋳造された2011年のコインは、「アクアティクス」デザインとして知られ、水泳選手のイメージが特徴です
