Rumah pangkalan data tutorial mysql Topcoder srm 653 div.2 500

Topcoder srm 653 div.2 500

Jun 07, 2016 pm 03:44 PM
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>
Salin selepas log masuk


第二种方法是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>
Salin selepas log masuk
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah yang dimaksudkan dengan ralat pelayan dalaman 500? Apakah yang dimaksudkan dengan ralat pelayan dalaman 500? Feb 21, 2023 pm 03:39 PM

Ralat pelayan dalaman 500 bermaksud ralat pelayan dalaman HTTP 500, yang bermaksud bahawa pelayan menghadapi situasi yang tidak dijangka yang menyebabkan ia tidak dapat memenuhi permintaan, tetapi ia tidak dapat menjelaskan ralat khusus atau punca ralat apabila ralat berlaku; laman web yang dilawati akan memaparkan ralat .

Harga Ethereum (ETH) Pulih Melebihi $2,320, Tetapi Bergelut untuk Mencapai Kadar Harga Ethereum (ETH) Pulih Melebihi $2,320, Tetapi Bergelut untuk Mencapai Kadar Sep 10, 2024 pm 03:20 PM

Harga Ethereum memulakan gelombang pemulihan di atas paras $2,250. ETH dapat mengosongkan zon rintangan $2,280 untuk bergerak ke zon positif, tetapi momentum adalah lemah berbanding Bitcoin.

Analisis Harga Bitcoin (BTC): BTC Memulakan Pergerakan Menaik Yang Ketara, Mensasarkan Markah $60,000 Analisis Harga Bitcoin (BTC): BTC Memulakan Pergerakan Menaik Yang Ketara, Mensasarkan Markah $60,000 Sep 12, 2024 pm 06:35 PM

Bitcoin telah memulakan pergerakan menaik yang ketara, melepasi paras rintangan $57,500 dan kini menunjukkan tanda-tanda menjanjikan yang berpotensi mencapai paras $60,000.

Brits menggesa untuk menyemak di rumah untuk syiling 50p yang jarang bernilai £2,500 Brits menggesa untuk menyemak di rumah untuk syiling 50p yang jarang bernilai £2,500 Oct 28, 2024 pm 04:20 PM

Menurut seorang pakar, karya 2011 itu dicetak untuk meraikan Sukan Olimpik London pada 2012.

Kod Bonus BetMGM Michigan MLIVEMGM: Dapatkan Tawaran Pertaruhan Pertama $1,500 Kod Bonus BetMGM Michigan MLIVEMGM: Dapatkan Tawaran Pertaruhan Pertama $1,500 Nov 18, 2024 am 03:36 AM

Pemain baharu boleh menuntut bonus alu-aluan BetMGM dan mendapat sehingga $1,500 dibayar balik dalam pertaruhan bonus dengan menggunakan kod promo MLIVEMGM.

Harga Solana Boleh Mencapai $4,500 Harga Solana Boleh Mencapai $4,500 Oct 22, 2024 am 06:42 AM

SOL telah membentuk corak cawan dan pemegang pada carta mingguannya, yang menunjukkan bahawa harga Solana boleh melonjak sebanyak 2,600% dan meningkat kepada $4,500.

Brits menggesa untuk menyemak syiling 50p mereka kerana versi jarang boleh bernilai £2.5k yang besar Brits menggesa untuk menyemak syiling 50p mereka kerana versi jarang boleh bernilai £2.5k yang besar Oct 28, 2024 pm 04:24 PM

Syiling 2011, yang ditempa sempena sambutan Sukan Olimpik London pada 2012, dikenali sebagai reka bentuk "akuatik" dan menampilkan imej seorang perenang

Rexas Finance (RXS): Pesaing Berpotensi kepada Solana (SOL) dan Ethereum (ETH) Rexas Finance (RXS): Pesaing Berpotensi kepada Solana (SOL) dan Ethereum (ETH) Nov 04, 2024 pm 06:44 PM

Dalam perlumbaan teknologi blockchain yang tidak berkesudahan ini, dua telah berjaya menonjol dan menarik perhatian pelabur - Solana (SOL) dan Ethereum (ETH).

See all articles