返回列表 發帖

a053: 骰子點數 (加強版)

本帖最後由 李知易 於 2024-11-26 22:30 編輯


a053: 骰子點數 (加強版)
本帖隱藏的內容需要回復才可以瀏覽
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

  1. #include<bits/stdc++.h>
  2. using namespace std;

  3. int main()
  4. {
  5.     int n,m;
  6.     cin>>n>>m;
  7.     long long int DP[m+1]={0,1,1,1,1,1,1},MOD=1e16;
  8.     for(int i=1;i<n;i++)
  9.     {
  10.         for(int j=m;j>0;j--)
  11.         {
  12.             DP[j]=(DP[max(j-1,0)]+DP[max(j-2,0)]+DP[max(j-3,0)]+DP[max(j-4,0)]+DP[max(j-5,0)]+DP[max(j-6,0)])%MOD;
  13.         }
  14.     }
  15.     cout<<DP[m];
  16.     return 0;
  17. }
複製代碼

TOP

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main(){
  4.     int n,m;
  5.     cin>>n>>m;
  6.     long long int dp[m+1]={0,1,1,1,1,1,1},sum[m+1]={0},MOD=1e16;
  7.     for (int i=1;i<n;i++)
  8.     {
  9.         for (int j=m;j>=0;j--)
  10.         {
  11.             for (int k=1;k<=6;k++)
  12.             {
  13.                 if (j-k>=0)
  14.                 {
  15.                     sum[j]+=dp[j-k];
  16.                 }
  17.             }
  18.             dp[j]=sum[j]%MOD;
  19.             sum[j]=0;
  20.         }
  21.     }
  22.     cout<<dp[m];
  23.     return 0;
  24. }
複製代碼
    ⪔〠   

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5.     int a,b;
  6.     cin>>a>>b;
  7.     long long int bf[b+1]={0,1,1,1,1,1,1},hu=1e16;
  8.     for(int i=1;i<a;i++)
  9.     {
  10.         for(int j=b;j>=0;j--)
  11.         {
  12.             bf[j]=(bf[max(j-1,0)]+bf[max(j-2,0)]+bf[max(j-3,0)]+bf[max(j-4,0)]+bf[max(j-5,0)]+bf[max(j-6,0)])%hu;
  13.         }
  14.     }
  15.     cout<<bf[b];
  16. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;

  3. int main()
  4. {
  5.     int n,m;
  6.     cin>>n>>m;
  7.     long long int DP[m+1]={0,1,1,1,1,1,1},MOD=1e16;
  8.     for(int i=1;i<n;i++)
  9.     {
  10.         for(int j=m;j>0;j--)
  11.         {
  12.             DP[j]=(DP[max(j-1,0)]+DP[max(j-2,0)]+DP[max(j-3,0)]+DP[max(j-4,0)]+DP[max(j-5,0)]+DP[max(j-6,0)])%MOD;
  13.         }
  14.     }
  15.     cout<<DP[m];
  16.     return 0;
  17. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5.     long long a,b;
  6.     cin>>a>>b;
  7.     long long x[b+1]={0,1,1,1,1,1,1};
  8.     for(int i=2;i<=a;i++){
  9.         for(int j=b;j>=0;j--){
  10.             x[j]=(x[max(j-1,0)]+x[max(j-2,0)]+x[max(j-3,0)]+x[max(j-4,0)]+x[max(j-5,0)]+x[max(j-6,0)])%10000000000000000;
  11.         }
  12.     }
  13.     cout<<x[b];
  14.     return 0;
  15. }
複製代碼

TOP

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int n,m;
  4. int main()
  5. {
  6.     cin>>n>>m;
  7.     long long int DP[m+1]={0,1,1,1,1,1,1},sum[m+1]={0},MOD=1e16;
  8.     for(int i=1;i<n;i++)
  9.     {
  10.         for(int j=m;j>=0;j--)
  11.         {
  12.             for(int k=1;k<=6;k++)
  13.             {
  14.                 if(j>=k)
  15.                     sum[j]+=DP[j-k];
  16.             }
  17.             DP[j]=sum[j]%MOD;
  18.             sum[j]=0;
  19.         }
  20.     }
  21.     cout<<DP[m];
  22.     return 0;
  23. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5.     int n,m;
  6.     cin>>n>>m;
  7.     long long int DP[m+1]={0,1,1,1,1,1,1},sum[m+1]={0},MOD=1e16;
  8.     for(int i=1;i<n;i++){
  9.         for(int j=m;j>=0;j--){
  10.             for(int k=1;k<7;k++){
  11.                 if(j>=k){
  12.                     sum[j]+=DP[j-k];
  13.                 }
  14.             }
  15.             DP[j]=sum[j]%MOD;
  16.             sum[j]=0;
  17.         }
  18.     }
  19.     cout<<DP[m];
  20.     return 0;
  21. }
複製代碼

TOP

返回列表