對於乙個含有 n+2n+
2 個元素的數列,a_0, a_1, \cdots a_na0
,a1
,⋯a
n,滿足這樣的遞迴公式
\displaystyle a_i = \frac + a_} - c_i\ \ \ 1 \le i \le nai
=2a
i−1
+ai+
1−
ci1
≤i≤n
現在我們知道 a_0, a_a0
,an
+1 和 c_1, c_2, \cdots c_nc1
,c2
,⋯c
n。現在請你幫忙計算 a_1a1
的值。
第一行輸入乙個整數 n(1 \le n \le 1000)n(
1≤n≤
1000
)。第二行輸入兩個數 a_0a0
和 a_an
+1,接著是 n
n 個資料分別是 c_1,c_2, \cdots c_nc1
,c2
,⋯c
n。所有的資料均是兩位小數的浮點數。
輸出 a_1a1
的值,結果保留兩位小數。
樣例輸入1
150.50 25.50
10.15
樣例輸出1
27.85
樣例輸入2
2-756.89 52.52
172.22 67.17
樣例輸出2
-761.49
當時做的時候死活不會做..哎.
這道題我們如果採取遞推或者dfs,我們會發現是個無限迴圈,根本找不到答案。我們需要用比較巧妙的方法。
我們假設要求的值為0.
根據公式x(i+1)=2*x(i)+x*c(i)-x(i-1).
我們一直求到xn+2上。 我們已知xn+2的值為b了。 我們假設x1=0的情況下xn+2的值為c。 所以我們相當於多了c-b。 而這c-b應該是由上述公式減去的,如果x1=0,我們找個例子推一下可知,是少加了n+1個。
所以(c-b)/(n+1)就是答案
#include
#include
using namespace std;
double a[1010];
double val[1010];
int main()
for (int i= 1; i <= n; ++i)
double ans= (q- a[n + 1]) /(n + 1);
printf("%.2lf\n",ans);
return 0;}
2018 藍橋杯省賽 B 組模擬賽(一)
給你乙個序列,請你在其中求出一段最長嚴格上公升的部分,它不一定要連續。include includeusing namespace std int f 10000 b 10000 int lis int n res max res,f i return res 1 int main printf d...
2019 藍橋杯省賽 B 組模擬賽(一)
d.結果填空 馬的管轄 e.填空 lis f.程式設計 找質數 思路 因為時間複雜度的問題,o n n 的時間複雜度可能會超時,可以選擇的篩選素數的方法有埃氏篩法o n logn 尤拉篩法,這裡選的是尤拉篩法o n 直接遍歷找兩個素數相加等於n 因為要求字典樹最小,所以不會超時 ac include...
2018 藍橋杯省賽 B 組模擬賽(五)整數劃分
蒜頭君特別喜歡數學。今天,蒜頭君突發奇想 如果想要把乙個正整數 n n 分解成不多於 k k 個正整數相加的形式,那麼一共有多少種分解的方式呢?蒜頭君覺得這個問題實在是太難了,於是他想讓你幫幫忙。共一行,包含兩個整數 n 1 leq n leq 300 n 1 n 300 和 k 1 leq k l...