AOJ_0168: Kannondou
DPの練習。さすがに方針は楽に立てられた。 また問題文を読み落とした(「一日に十回」の部分)。それで大幅なロスをしてしまった。 しっかり整理してから取り組むようにしなければならない。
#include <cstdio> using namespace std; int n,dp[34]; int main(){ while(1){ scanf("%d",&n); if(n==0) break; for(int i=0;i<34;i++) dp[i]=0; dp[0]=1; for(int i=0;i<n;i++){ dp[i+1]+=dp[i]; dp[i+2]+=dp[i]; dp[i+3]+=dp[i]; } int ans=(dp[n]/3650)+1; printf("%d\n",ans); } return 0; }