CSUSTOJ 白銀御行想展示(思維題)

2021-10-10 04:45:43 字數 3114 閱讀 1039

題目連線:

**御行有乙個不為人知的秘密,那就是身為學生會會長,他的排球打的有億點點差,於是熱心的藤原書記主動提出要幫助他練習排球,假設排球有很多技能要學, 比如發球,攔網,救球等,假設排球有 n

nn 個技能,雖然**排球打的很差,但也偷偷練習過每個技能,每個技能都有一定失誤率 a

ia_i

ai​ 和基礎熟練度 b

ib_i

bi​ , 我們把 n

nn 個技能標號為 1,2

,3,.

...,

n1, 2, 3, ....,n

1,2,3,

....

,n, **會先按編號從左到右的練習某些技能, 再從右到左的把餘下的技能練習一次,比如 1,2

,3,4

,5,6

1, 2, 3, 4 , 5, 6

1,2,3,

4,5,

6 ,六個技能, 它可以按照先 1,3

,4,6

1,3,4,6

1,3,4,

6 再 5,2

5, 2

5,2 的順序練習,或者先 1,2

,3

1, 2, 3

1,2,

3 再 6,5

,4

6, 5, 4

6,5,

4 的順序練習, 但是不可以 1,6

,4

1, 6, 4

1,6,

4 再 5,3

,2

5, 3, 2

5,3,

2 這樣的順序練習。

假設**第 j

jj 個練習技能 i

ii ,那麼他會獲得 j∗b

ij * b_i

j∗bi

​ 的熟練度,並且該技能的失誤率會下降 i

ii 由於**數學很好,他會選擇一種順序使得他最後獲得的熟練度的和最大, 如果存在多種方案,他會選擇一種字典序最小的方案。訓練結束後他會確認 t

tt 個技能的失誤率。

請你計算出**可以獲得的熟練度和的最大值,以及他確認的每個技能的失誤率。

第一行n(表示員工的個數)(

1<=n

,k

<=1

e6

)(1<=n,k<=1e6)

(1<=n

,k<=1

e6)

第二行n個整數數a1,

a2,a

3...

.a

na_1,a_2,a_3....a_n

a1​,a2

​,a3

​...

.an​

(表示每個技能的失誤率)(−1

e7

<=a

i<=1

e7

)(-1e7<=a_i<=1e7)

(−1e

7<=a

i​<=1

e7)

第三行n個整數b1,

b2,b

3...

bn

b_1,b_2,b_3...b_n

b1​,b2

​,b3

​...

bn​(表示每個技能的基礎熟練度)(

0<=b

i<=1

e6

)(0<=b_i<=1e6)

(0<=b

i​<=1

e6)

第四行t,表示詢問的次數(

t<=1

e5

)(t<=1e5)

(t<=1

e5)

接下來t行,表示詢問第 m

mm 個技能的失誤率

一行輸出**能獲得的熟練度和的最大值

對於每一組詢問輸出兩行,

第一行乙個答案,表示該技能的失誤率,如果該技能的失誤率為負數,那麼**會非常高興,並在第二行輸出"i love work!",否則請空一行。

sample input 1

8 8-1 -5 5 2 7 10 100 7

1 100 2 6 0 10 13 531

56sample output 1

996-2

i love work!

3對於樣例,**選擇的順序是:1 3 4 5 8 7 6 2

emmmm,可能是我語文不太好qaq,每次出的題目都是又臭又長導致許多可寫題都直接勸退了許多人。。。。遭人魔改之後題面出現了問題,真的很抱歉,題面的k被人刪了。。。

我們可以先假設所有的人都是第一波選擇,那麼我們從前往後決定這個人是否是應該在第二波選。對於第乙個人,它要麼第1個選,要麼第n個選,當它從第乙個移動到第n個的時候,它有的貢獻就是(n−

1)∗b

i(n-1)*b_i

(n−1)∗

bi​,但它會將後面的數全部往前移動乙個單位,所以他還有乙個貢獻為−∑i

=2nb

i-\sum_^b_i

−∑i=2n

​bi​

,如果這兩個數的和的貢獻為正數,那麼也就是說他移動到後面是更優的,那麼我們就直接決定選他在後面一波走人,那麼接下來的第二個人和第三個人也就出來了

以下是ac**:

#include

using

namespace std;

typedef

long

long ll;

const

int mac=

1e6+10;

ll sum[mac]

;int a[mac]

,id[mac]

,b[mac]

;int

main

(int argc,

char

const

*ar**)

else

} printf (

"%lld\n"

,ans)

;for

(int i=

1; i<=n; i++

) a[id[i]]-

=i;int t;

scanf (

"%d"

,&t)

;while

(t--

)return0;

}

ZROI 白銀御行

本題的男點大概在如何批量的計算兩個矩陣有交。設乙個矩陣的四個端點為 a,b,c,d 對於乙個矩陣 x,另乙個矩陣 y 和它有交,首先要滿足 y 的 a 在 x 的 d 左上方,如圖所示的四個區域,對於第 1 個區域已無問題。第二區發現如果 c 點在 1 內則有,否則無,無的情況正好是 y c x b...

CSUSTOJ 白銀探病篇(簡單思維)

在上乙個決定誰去探病的遊戲中,如果你沒有成功幫助藤原千花獲勝,那麼最終三人中最聰明的 獲得了探病權,如果你成功幫助藤原千花獲勝,那麼很抱歉,藤原書記作弊被抓了,你和她都被罰打掃學生會辦公室一周。回到正題,正在糾結去探病應該帶什麼禮物,他來到了商場,這裡擺著 n nn 個商品,以自己對輝夜的了解給每個...

融貫形上形下二界以道御學御術御器御萬殊

融貫形上形下二界 以道御學御術御器御萬殊 再談哲學專業人才培養模式 但是,人並不是生來就翱翔於 形而上 的星空的。儘管人人皆有超出有限融入永恆的 慧根 但是除了寥寥可數的聖哲可通過自修 自省,通達 大道 之外,絕大多數人仍需先行者的引導 啟迪 培養 訓練,才能登堂入室。因而,哲學專業的教師,就面臨著...