hdu3555 Bomb 數位DP

來源:互聯網
上載者:User

數位DP初學者,代碼就是網上千篇一律,相似性極高的數位DP代碼

一個不錯的題解http://www.cnblogs.com/luyi0619/archive/2011/04/29/2033117.html

#include<iostream>#include<cstring>#include<cstdio>#define llong long longusing namespace std;llong dp[20][3];int digit[20];int main(){int i;int t;memset(dp,0,sizeof(dp));dp[0][0]=1;for(i=1;i<20;i++){dp[i][0]=dp[i-1][0]*10-dp[i-1][1];dp[i][1]=dp[i-1][0];dp[i][2]=dp[i-1][2]*10+dp[i-1][1];}scanf("%d",&t);while(t--){int len=0,last=0;llong ans=0;unsigned llong n=0;scanf("%I64d",&n);n++;   //有人問這一步用途,可以分別帶入49和50類比一下代碼的運行過程memset(digit,0,sizeof(digit));while(n){digit[++len]=n%10;n/=10;}bool flag=0;for(i=len;i>=1;i--){ans+=dp[i-1][2]*digit[i];if(flag) ans+=dp[i-1][0]*digit[i];if(!flag&&digit[i]>4) ans+=dp[i-1][1];if(last==4&&digit[i]==9) flag=1;last=digit[i];}printf("%I64d\n",ans);}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.