2020牛客暑期多校訓練營(第一場)

2021-10-23 09:18:35 字數 2413 閱讀 5098

g baxianguohai, gexianshentong

h minimum-cost flow

i 1 or 2

j easy integration

2020牛客暑期多校訓練營(第一場)

兩個字串a和b,對aaaa…和bbbb…(字串a和b無限重複)

方法一:

字串a和b從第一位開始比較,當比到其中最後一位時再跳轉到第一位繼續。那什麼時候算等於呢,我一開始想的是a和b的最小公倍數,這樣會超時,我們其實只需比較較長字串的兩倍即可。因為如果兩個字串不相等,那麼在較長字串的兩倍範圍內必將可以必出大小關係

方法二:

很簡單,比較a+b和b+a的大小關係,直接輸出

如果a和b相等,那麼a+b肯定==b+a,否則兩者肯定能必出大小

方法一:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define max 1000010

using

namespace std;

typedef

long

long ll;

char a[max]

;char b[max]

;int

main()

else

if(a[ia]

)else}if

(flag==0)

}return0;

}

方法二:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

using int =

long

long

;template

<

classt1,

class

t2> ostream &

operator

<<

(ostream &os,

const pair

&a);

template

<

class

t>

void

pv(t a, t b)

template

<

class

t>

bool

chmin

(t &t,

const t &f)

return

false;}

template

<

class

t>

bool

chmax

(t &t,

const t &f)

return

false;}

char s[

100010];

char t[

100010];

intmain()

return0;

}

對於乙個n,求出沃利斯公式

直接有公式,帶入計算就行

#include

using

namespace std;

const

int manx=

2e6+5;

const

int n=

1e3+5;

const

int mod=

998244353;

ll dp[manx]

,n;ll poww

(ll a, ll b)

return ans%mod;

}ll inv

(ll x)

intmain()

return0;

}

牛客暑期多校訓練營B Boundary

給定n個點,然後確定乙個過原點的圓,要使這n個點盡可能多的存在與圓上,最後輸出最多的存在於圓上的點的個數 三點確定乙個圓,我們已知這個圓必定經過原點,所以再依次利用三點求圓心的公式列舉每兩個點與原點 三點不共線 確定的圓心,最後選擇確定次數最多的圓心構成的圓 include include incl...

2020牛客暑期多校訓練營 第一場

開始堇業,把之前欠的債補上。這題就是類似於觀察一下性質。其實可以發現把長度最長的那個串拼成兩倍,之後在這個範圍內一定能比較出大小。畫個圖,把相同的拼一拼就行了。如果到了兩倍還沒比較出大小就說明一定相等。include using namespace std typedef long long ll ...

2020牛客暑期多校訓練營(第一場)

g baxianguohai,gexianshentong h minimum cost flow i 1 or 2 j easy integration 2020牛客暑期多校訓練營 第一場 兩個字串a和b,對aaaa 和bbbb 字串a和b無限重複 進行比較,輸出 方法一 字串a和b從第一位開始比...