【HDU 5366】The mook jong 详解
2019獨角獸企業重金招聘Python工程師標準>>>
?????????????????????? ? ? ?????? The mook jong
Time Limit: 2000/1000 MS (Java/Others)????Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 767????Accepted Submission(s): 522
Problem Description
ZJiaQ want to become a strong man, so he decided to play the mook jong。ZJiaQ want to put some mook jongs in his backyard. His backyard ?consist of n bricks that is 1*1,so it is 1*n。ZJiaQ want to put a mook ? ? ? ?jong in a brick. because of the hands of the mook jong, the distance of two mook jongs should be equal or more than 2 bricks. Now ZJiaQ want to know how many ways can ZJiaQ put mook jongs legally(at least one mook jong).
Input
There ar multiply cases. For ?each case, there is a single integer n( 1 < = n < = 60)
Output
Print the ways in a single line for each case.
Sample Input
1 2 3 4 5 6Sample Output
1 2 3 5 8 12?Source
BestCoder Round #50 (div.2)
題意
大致模型就是說,有一個1*N的格子,(就像下面這樣),往里面塞東西,但是每兩個之間距離大于等于2.
| 1 | 2 | 3 | ··· | ··· | n |
對于樣例,輸入4有如下5種解法
| ☆ | ?? ? | ? ?? | ???? |
| ???? | ☆ | ???? | ???? |
| ???? | ???? | ☆ | ???? |
| ???? | ???? | ???? | ☆ |
| ☆ | ???? | ???? | ☆ |
通過自己舉幾個例子發現當輸入從1~60的時候
輸出是這樣的??????????????????? 1 2 3 5 8 12······
是不是好像發現了什么?
再結合每兩個元素之間至少要2個間距,仔細思考之后得出公式?????
a[i]=a[i-1]+a[i-3]+1;
Tips
當N接近60的時候數據會很大,注意數據的存儲類型!
#include<iostream> using?namespace?std; long?long?a[61]={0,1,2,3}; int?main(){int?n;for(int?i=4;i<=60;i++){a[i]=a[i-1]+a[i-3]+1;}while(cin>>n){cout<<a[n]<<endl;}return?0; }
轉載于:https://my.oschina.net/zmixed/blog/625406
總結
以上是生活随笔為你收集整理的【HDU 5366】The mook jong 详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决canvas画图模糊的问题
- 下一篇: CentOS YUM / RPM Err