日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

蓝桥杯校内模拟值序列

發布時間:2023/12/15 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蓝桥杯校内模拟值序列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題描述

? 小明想知道,滿足以下條件的正整數序列的數量:

第一項為 n;

第二項不超過 n;

從第三項開始,每一項小于前兩項的差的絕對值。

? 請計算,對于給定的 n,有多少種滿足條件的序列。

輸入格式

? 每一行包含一個整數n。

輸出格式

? 輸出一個整數,表示答案。答案可能很大,請輸出答案除以10000的余數。

樣例輸入

? 4

樣例輸出

? 7

樣例說明

? 以下是滿足條件的序列:

? 4 1

? 4 1 1

? 4 1 2

? 4 2

? 4 2 1

? 4 3

? 4 4

評測用例規模與約定

? 對于 20% 的評測用例,1 <= n <= 5;

? 對于 50% 的評測用例,1 <= n <= 10;

? 對于 80% 的評測用例,1 <= n <= 100;

? 對于所有評測用例,1 <= n <= 1000。
思路:因為有課的原因所以沒有參加模擬賽。讓zmgg給我截的圖,然后本地運行的。所以代碼正誤并不清楚,借鑒著看看吧。
這個題目,用的記憶化搜索。按照題意去模擬就可以。1000的時候,跑的比較慢。可能會超時吧。。
代碼如下:

#include<bits/stdc++.h> #define ll long long #define mod 10000 using namespace std;const int maxx=1e3+100; ll dp[maxx][maxx]; int n;inline int dfs(int x,int Abs,int num) {if(num==2){ll sum=0;for(int i=1;i<=x;i++) sum=(sum+dfs(i,abs(x-i),num+1)%mod)%mod;return sum;}if(dp[x][Abs]!=-1) return dp[x][Abs]%mod;if(Abs<=1) return dp[x][Abs]=1ll;ll sum=1;for(int i=1;i<Abs;i++) sum=(sum+dfs(i,abs(x-i),num+1)%mod)%mod;return dp[x][Abs]=sum; } int main() {while(~scanf("%d",&n)){memset(dp,-1,sizeof(dp));cout<<dfs(n,n,2)<<endl;}return 0; }

部分結果如下,路過的大佬可以對照一下。

其實就1000個數字,賽場上可以全都計算出來,然后打出來。只要結果對,絕對不超時!
努力加油a啊,(o)/~

總結

以上是生活随笔為你收集整理的蓝桥杯校内模拟值序列的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。