(number.pas/c/cpp)
【題目描述】
flower 有 n-1 個朋友,他們要一起玩乙個遊戲:首先確定三個非負整數 a,b,c,然後每個人依次在紙上寫乙個數,設第 i 個人寫下的數字為 f[i],flower 先寫下數字 f[1]=1,對於第 i 個寫數字的人(i>1)有: f[i]=(a*m[i-1]+b*i+c)mod1,000,000,007;其中 m[i-1]為前 i-1 個寫下的數字的中位數,如果 i-1 為偶數,那麼取靠前的那個數。flower 想要知道,所有人寫下的數字的和。
【輸入格式】
輸入僅一行,包含四個非負整數 a,b,c,n;意義如上;
【輸出格式】
輸出只有一行乙個整數,表示數字和。
【輸入樣例】
3 1 2 6
【輸出樣例】
103【資料規模】
對於 30%的資料: n≤1,000;
對於 100%的資料: n≤200,000; a,b,c≤1,000,000,007。code:
#include
#include
#include
#define mod 1000000007
#define c c = tc ( )
using
namespace
std;
inline
char tc()
inline
void read(long
long &x)
long
long a,b,c,n;
long
long f[200001];
priority_queuelong>w1;
priority_queuelong,vector
long>,greaterlong> >w2;
int main()
long
long ans=0;
for(int i=1;i<=n;i++)ans+=f[i];
printf("%lld",ans);
fclose(stdin),fclose(stdout);
return
0;}
最後引用cjj的話。
如果是pascal的話我也可以,用pascal打堆!
中位數的中位數
參照王曉東的演算法設計 中位數的中位數,即將一串數分成n段,求其排好序了的中間那個數,再把這些所有中位數再求一次中位數。for int i 0 i r p 4 5 i 找中位數的中位數,r p 4即上面所說的n 5 int x lineselect a,p,p r p 4 5,r p 4 10 線性...
BFPRT(中位數的中位數)演算法
又稱為 中位數的中位數演算法 該演算法由 blum floyd pratt rivest tarjan 在1973年提出,最壞時間複雜度為o n 最差的空間複雜度為o logn 演算法步驟 1 將 n 個元素劃分為 n 5 個組,每組 5 個元素,若有剩餘,捨去 2 使用排序方法找到 n 5 個組中...
hive 中位數 Hive的中位數
關於求解中位數,我們知道在python中直接有中位數處理函式 mean 比如在python中求解乙個中位數,很簡單。python計算中位數 import numpy as np nums 1.1,2.2,3.3,4.4,5.5,6.6 均值np.mean nums 中位數 np.median num...