一月17日新生冬季練習賽解題報告C 孟婆湯

2022-05-19 04:20:58 字數 2444 閱讀 7655

c題也是好題啊

暴力水過之後  又重判了 額 有點悲哀   不過這也是一種 一種學習的機會啊  哈哈   廢話不多說了  

題目是這樣的 :

c.孟婆湯

time limit: 1000 ms

memory limit: 32768 k

total submit: 48 (19 users)

total accepted: 5 (5 users)

special judge: no

description

男從戎,女守家。一夜,狼煙四起,男戰死沙場。從此一道黃泉,兩地離別。最後,女終於在等待中老去逝去。逝去的最後是換盡一生等到的相逢和團圓。

某日兩人至奈何橋前,服下孟婆湯。

每滴孟婆湯都有強度不一的藥效,設一碗孟婆湯共n滴(0

<n<100000)

,其中第i滴(

0≤i<

n)用b[i]

表示。孟婆湯的藥效與原料有關,設熬制前同樣有n

滴原料,第

i滴原料用

a[i]

表示,0

≤a[i]

<2^32

。藥效b[i]

的計算方法為

b[i]=(a[0]*a[1]*...*a[n-1]/a[i])%m

(假設0/0=1),0

<b[i]

<2^32

。input

多組輸入資料。

每組第一行給出原料數量n

,取模數

m,緊接著的一行按順序給出原料

a[i]

。output

求出熬製所成每份孟婆湯的藥效b[i]

,每份之間用空格隔開,每組資料之後以換行結尾。

sample input

5 11

2 7 5 3 9

3 79 8 5

sample output

10 6 4 3 1

5 3 2

第一眼我們就能看出來  b[i]

就是除了

a[i]

項之外所有的項相乘;

腫麼辦??

求每個元素都便利一遍?肯定是不行的時間複雜度o

(n*n

)  額……

所以肯定不能那麼暴力  

不過  我們這樣想   b[i]

不就是前面的乘積乘上後面的乘積嗎   就差一點就找到出路了

是不是很興奮   啊啊啊啊啊  是啊

我們可以開兩個陣列  :

第乙個陣列   第i

項表示前

i項的乘積   

的二個陣列   第i

項表示i+1

項到最後一項的乘積

問題迎刃而解   時間複雜度完全降下來 

是不是很開森吶                                     是啊          

那我們用**來實現吧:

#include

#include

using namespace std;

long long int a[100001];

long long int start[100001],end[100001];

int main()

end[n+1]=1;

for(int i=n;i>=1;i--)

coutcout<<" "<<(start[i-1]*end[i+1])%mod;

cout<}

return 0;

}///**沒有註解   主要是理解  思路  思路理解  **便是傻瓜**了

分類: 筆試題2012-08-07 23:07 2278人閱讀

測試給定乙個陣列a[n],我們希望構造陣列b [n],其中b[j]=a[0]*a[1]…

a[n-1] / a[j],在構造過程中,不允許使用除法:要求o(1)空間複雜度和o(n)的時間複雜度;除遍歷計數器與a[n] b[n]外,不可使用新的變數(包括棧臨時變數、堆空間和全域性靜態變數等)

解析:設b[0]=1

由b[i]=b[i-1]*a[i-1]可得

b[1] = a[0]

b[2] = a[0]a[1]

…b[i] = a[0]a[1]a[2]…

a[i-1]

…b[n-1] = a[0]a[1]…

a[n-2]

那麼再通過b[0]這個變數來迭代出1, a[n-1], a[n-2]a[n-1], a[n-3]a[n-2]a[n-1], … 

, a[1]a[2]a[3]

…a[n-1],迭代過程中分別乘以b[n-1], b[n-2], … 

, b[0]

**如下

1 for (int i = 1; i <= n-1; i++)  

2       

5   

6     for (int i = n-1; i >= 1; i--)  

7       

一月17日新生冬季練習賽解題報告H 龜兔賽跑

h是最後加上的乙個題 看起來很厲害還5秒 其實如果做過類似的題的話就一點都不難了 今天的比賽就從最後加上的h 題開始寫吧 h.龜兔賽跑 time limit 5000 ms memory limit 65536 k total submit 12 9 users total accepted 3 3...

一月24日新生冬季練習賽解題報告C 極差

c.極差 time limit 1000 ms memory limit 32768 k total submit 22 18 users total accepted 18 18 users special judge no description 小輝是個頑皮的胖孩紙,總愛在老師的黑板上亂塗亂畫...

一月24日新生冬季練習賽解題報告A 通報批評

a題太水了解題沒啥意思 我用的佇列模擬 讀入乙個名字和數,數是0就輸出名字 然後完事了 include int main printf n a.通報批評 time limit 1000 ms memory limit 32768 k total submit 204 68 users total a...