【公式題】HDU 4651—— Partition

來源:互聯網
上載者:User

題目:點擊開啟連結

這個題目來自多校練習5,求整數劃分的種類數,二維DP一定逾時,一維打表試了試(參考poj上吃蛋糕的題,範圍是5000/5S),大於120KB,沒法提交。

找了半天,當時明明在wiki找到公式了(傳說中的五邊形數),但是卻沒有轉化好,慘遭wa。

連結:點擊開啟連結

#include <iostream>#include <cstring>#include <cmath>using namespace std;long long tar[100002];const int MOD=1000000007;void init(){    memset(tar,0,sizeof(tar));    tar[0]=1;    for(int i=1;i<=100000;i++)    {        int nbit;        for(int j=1;;j++)        {            int element1,element2;            element1=i-j*(3*j-1)/2;            element2=i-j*(3*j+1)/2;            if(j&1)                nbit=1;            else if(j%2==0)                nbit=-1;                    if(element2<0 && element1<0)                break;                            if(element1>=0)            {                tar[i]=(tar[i]+nbit*tar[element1])%MOD;            }            if(element2>=0)            {                tar[i]=(tar[i]+nbit*tar[element2])%MOD;            }        }        tar[i]=(tar[i]+MOD)%MOD;    }        }int main(){    int testcase;    init();    cin>>testcase;    while(testcase--)    {        int rat;        cin>>rat;        cout<<tar[rat]<<endl;    }    return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.