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,求出的值,結果可以寫成p/q的形式,最後輸出 (p⋅q −1 )mod998244353 的值
沃利斯公式
直接有公式,帶入計算就行
#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牛客暑期多校訓練營(第一場)
g baxianguohai,gexianshentong h minimum cost flow i 1 or 2 j easy integration 2020牛客暑期多校訓練營 第一場 兩個字串a和b,對aaaa 和bbbb 字串a和b無限重複 方法一 字串a和b從第一位開始比較,當比到其中最...
2020牛客暑期多校訓練營 第一場
開始堇業,把之前欠的債補上。這題就是類似於觀察一下性質。其實可以發現把長度最長的那個串拼成兩倍,之後在這個範圍內一定能比較出大小。畫個圖,把相同的拼一拼就行了。如果到了兩倍還沒比較出大小就說明一定相等。include using namespace std typedef long long ll ...