2020牛客多校第三場

2021-10-24 08:16:14 字數 2489 閱讀 9998

沒有魚,沒有魚餌

沒有魚,有魚餌

有魚,沒魚餌

有魚,有魚餌

每個只能做其中乙個操作,如果在某個點之前已經拿過魚餌,還沒用,就能拿個魚,如果在某個點有魚,就能拿個魚。現在問最多能拿多少條魚?

思路:

貪心,如果有魚那肯定拿魚,魚+1,然後就剩0和1操作了,如果遇到1操作,直接拿魚餌,遇到0操作,看有沒有魚餌,沒魚餌就跳過,有魚餌就魚餌-1,魚+1,最後再加上魚餌數/2(向下取整)。

能乙個for解決的就別花裡胡哨寫一坨。

#include

using

namespace std;

const

int n=2*

(int

)1e6

+100

;int tc, n, bk[n]

;char s[n]

;int

main()

}else}if

(now>

0) ans+

=now/2;

cout<'\n';}

#ifdef local_define

cerr <<

"time elapsed: "

<<

1.0*

clock()

/ clocks_per_sec <<

" s.\n"

;#endif

return0;

}

題意:

給你乙個字串,現在有兩個操作。

m x當x>0時把字串左邊的x個字元移到右邊去,當x<0時候把右邊-x個字元移到左邊去。

a x問當前字串第x個字元是多少(字串下表1 based)。

題意:

需要動一下腦子的字串簽到題,弄乙個偏移量就沒了。

#include

using

namespace std;

string ts,s;

int q,x;

char op;

intmain()

else

}else

shift%

=len;

}#ifdef local_define

cerr <<

"time elapsed: "

<<

1.0*

clock()

/ clocks_per_sec <<

" s.\n"

;#endif

return0;

}

題意:

給你乙個手的圖形上面的20個點,可能順時針給你也可能逆時針給你這些點,現在問你這個手是左手還是右手。

思路:

可以找到兩條特徵邊,然後判斷一下兩種是右手的情況就行了,否則就是左手。

#include

using

namespace std;

const

double eps=

1e-3

;int tc;

intsgn

(double x)

struct point

point

(double _x,

double _y)

point operator-(

const point &b)

const

double

operator^(

const point &b)

const

double

distance

(point p)

}po[40]

;bool

clockwise

(point a, point b, point c)

intmain()

for(

int i=

20; i<40;

++i) po[i]

=po[i-20]

;bool ok=

false

;//clockwise

for(

int i=

0; i<38;

++i)

cout<<

(ok?

"right"

:"left"

)<<

'\n';}

#ifdef local_define

cerr <<

"time elapsed: "

<<

1.0*

clock()

/ clocks_per_sec <<

" s.\n"

;#endif

return0;

}

2020牛客多校第三場 E

給你乙個a序列,讓你求出對於某個p序列和q序列,pi qi 使得它們花費的費用最少。對於p序列的定義,可以知道,下標和值是交換的,即對於 i,j 這兩個位置,有 pi j,pj i,p pi i,p pj i.即如果p ip i pi 為 j,那麼p jp j pj 一定為i,即讓a陣列裡面的的兩個...

Magic Line(牛客多校第三場)

magic line 首先我先把所有的點按照先橫座標後縱座標 都是由小到大 然後由於題目給的範圍很大,我們可以想到,如果取一條最為豎的線,那麼一定能分開,然後考慮一下最中間的兩個點橫座標相同的情況即可。include include include include include include i...

2019牛客多校第三場

給乙個01字串,求0和1個數相同的最長子序列和子串長度。子串行長度就是 min cnt 0 cnt 1 2 子串的長度也是原題,記錄一下0和1個數差的字首和,然後用乙個陣列記錄前面掃過的0個數和1個數差值的最左位置,字首和的思想更新答案即可。include using namespace std c...