牛客演算法周周練9

2021-10-06 18:35:15 字數 3571 閱讀 5250

powered by:ab_in 局外人

注意題目裡區間是左閉右開,要想求區間內符合xx條件的值。則左區間--,右區間--

哎?那要是左開右閉呢?左區間,右區間就不用動。所以求區間滿足什麼條件時,是按左開右閉求的。

左開右開可咋辦?左區間,右區間--

左閉右閉呢?左區間--,右區間

花了好久才琢磨透。

其實也可以單獨判斷端點處的情況,那樣比較安心一點。

要是求i%7==0的數,讓區間端點 // 7即可。

要是i%7==1呢? 讓(端點處-1) //7即可。

py

n,m=

map(

int,

input()

.split())

n=1<1

((m-2)

//7-(n-2)

//7)

c++

第一次寫帶__int128 的**,這個數值大。

注意兩點:

__int128不能直接與別的資料型別運算。(pow(n,m),m還是可以int的)

不能用cout printf輸出,得自己寫輸入輸出。

#include

using

namespace std;

__int128 l,r,c=

1,n,m;

inline __int128 read()

while

(ch >=

48&& ch <=

57) s =

(s <<1)

+(s <<3)

+(ch ^48)

, ch =

getchar()

;return s * w;

}inline

void

write

(__int128 x)

char f[

200]

; __int128 tmp = x >

0? x :

-x;if

(x <0)

putchar

('-');

int cnt =0;

while

(tmp >0)

while

(cnt >0)

putchar

(f[--cnt]);

}int

main()

也可以

#include

typedef

unsigned

long

long ull;

using

namespace std;

ull n,m;

intmain()

1ull把int型別的變數轉化為 unsigned long long,然後再賦值給unsigned long long型別的變數。(保證後面運算不會溢位ull)

還可以會t

tt,但也是種方法,打表2

n2^n

2n。

#include

using

namespace std;

typedef

unsigned

long

long ll;

ll n,m,ans,f[69]

,cnt;

void

init()

}inline ll read()

while

(ch >=

48&& ch <=

57) s =

(s <<1)

+(s <<3)

+(ch ^48)

, ch =

getchar()

;return s * w;

}inline

void

write

(ll x)

char f[

200]

; ll tmp = x >

0? x :

-x;if

(x <0)

putchar

('-');

int cnt =0;

while

(tmp >0)

while

(cnt >0)

putchar

(f[--cnt]);

}int

main()

t=

int(

input()

)while

(t>0)

: t-=

1 n=

int(

input()

);ans=

0for i in

range

(n):

x,y=

map(

int,

input()

.split())

ans+=x*y

print

(ans)

用pypy3 和 python3(快) 耗時差距有點大。

cnt必須大於0

00如果資料全是1

11,那麼ali

ce

alice

alic

e必輸,此時cnt

=−

1cnt=-1

cnt=−1

。而pyth

on

python

python

裡− 1%

2=

1-1\%2=1

−1%2=1。c+

+c++

c++裡 −1%

2=−1

-1\%2=-1

−1%2=−

1

even=

0;cnt=

0input()

lst=

list

(map

(int

,input()

.split())

)for i in lst:

if i%2==

0:even+=

1else

: cnt+=i//

2cnt+=

(cnt+even-1)

if cnt%2==

1and cnt>0:

print

("alice"

)else

:print

("bob"

)

注:

完結。

牛客演算法周周練2

a 題意 求乙個數的順序和逆序之和。題解 其實就是個閹割版的高精度加法嘛。其實逆序數忽略前導零這個條件是沒有用的,因為順序數不可能有前導零,自然結果也不會有,然後注意下首位進製不取餘。include using namespace std int a 10 b 10 intmain for k j ...

牛客演算法周周練2

題目鏈結 include define sc x scanf lld x define pf printf define rep i,s,e for int i s i e i define dep i,e,s for int i e i s i using namespace std typede...

牛客演算法周周練3

只寫了乙個,打遊戲去了 就是個搜尋模板,直接寫就行 include include include include include include using namespace std define mid 1000000007 typedef long long ll int book 106 ...