哈工大 2009 孟婆湯

2021-06-25 14:24:13 字數 1441 閱讀 6636

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

source

2014 winter holiday contest 2

第一眼我們就能看出來 

b[i]

就是除了

a[i]

項之外所有的項相乘;

腫麼辦??

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

n*n) 額……

所以肯定不能那麼暴力

不過 我們這樣想 

b[i]

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

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

我們可以開兩個陣列 

: 第乙個陣列 第

i項表示前

i項的乘積 

的二個陣列 第

i項表示

i+1項到最後一項的乘積

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

#includeconst int n=100010;

long long a[n],b[n],c[n];

int main()

c[n+1]=1;

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

printf("%lld",c[2]);

for(i=2;i<=n;i++)

printf(" %lld",b[i-1]*c[i+1]%m);

printf("\n");

}return 0;

}

哈工大LTP使用

coding utf 8 from pyltp import sentencesplitter from pyltp import segmentor from pyltp import postagger from pyltp import namedentityrecognizer from p...

哈工大對抗甲流

隨著哈爾濱部分高校發現甲流確診病例,隨著黑龍江大學封校,氣氛為之一緊,可是沒有執行一天的查證制度隨著時間的流逝而成了擺設。大家說 流感很遠,十一很近。但是十一也很遠了,學校發布公告,十一長假期間,除了十月一日外,其餘時間正常上課,不允許離開哈爾濱市。發現私自離開的,需要休學一年。本部的決定影響了哈工...

哈工大mooc測試1

在分組交換網路中,主要取決於網路擁塞程度的時間延遲是 伺服器端套接字繫結的ip位址是 通告smtp伺服器端開始傳送郵件內容的smtp命令是 下列tcp ip應用層協議中,可以使用傳輸層無連線服務的是 假設採用p2p方式為1000個客戶分發檔案f,檔案f初始位於某伺服器上 伺服器介入internet鏈...