您當前的位置:首頁 > 舞蹈

(貪心)程式碼源每日一題 Div1 Ayoub's function

作者:由 嚴格鴿 發表于 舞蹈時間:2022-04-06

題目連結:Daimayuan Online Judge

題意:

(貪心)程式碼源每日一題 Div1 Ayoub's function

(貪心)程式碼源每日一題 Div1 Ayoub's function

思路:

我們需要轉換下思路,最後的答案應該為總的區間數,減去不包含

1

的區間數量。

我們希望不包含

1

的區間數量最少。

比如

n = 5, m = 1

我們得到答案為

00100

,我們希望0的區間儘可能的平均。

對於

m

,我們可以獲得

m+1

個0的區間,也就是將

n - m

個0平均的分配到

m+1

裡面,我們只需要簡單討論下即可。

比如

n - m = 5

m + 1 = 3

我們希望得到的是

[2 ,2 ,1]

具體證明呢,我不會啊,但是

x_1 + x_2 + x_3.... = sum

,我們希望

x_1^2 + x_2^2 + x_3 ^2 .....

最小,當然是讓

x_i

儘可能的相等。

code

void

slove

()

{

cin

>>

n

>>

m

int

tot

=

n

*

n

+

1

/

2

if

((

n

-

m

%

m

+

1

==

0

{

int

p

=

n

-

m

/

m

+

1

);

cout

<<

tot

-

m

+

1

*

p

*

p

+

1

/

2

<<

endl

}

else

{

int

p

=

n

-

m

/

m

+

1

);

int

r

=

n

-

m

%

m

+

1

);

cout

<<

tot

-

r

*

p

+

1

*

p

+

2

/

2

-

m

+

1

-

r

*

p

*

p

+

1

/

2

<<

endl

}

}

標簽: 區間  我們  INTP  cout  TOT