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

2022-06-30 18:24:09 字數 1810 閱讀 6063

公式題,沃利斯積分:\(\int_^dx=\frac\)

一直按照分部積分公式:\(\int=u(x)v(x)-\int\)

推導:\(\int_^dx\)

\(=\frac\int_^]'\ (1-x)^n dx}\)

\(=\frac(x^(1-x)^n|_0^1-\int_^[(1-x)^n]'}dx)\)

\(=\frac\int_^(1-x)^}dx\)

以此類推,可得:

\(\frac^}}\)

\(=\frac\)

\(=\frac\)

#include using namespace std;

typedef long long ll;

const ll mod=998244353;

const int n=1e6+6;

const int maxn=2e6+1;

ll f[n<<1],inv[n<<1];

ll power(ll a,ll b)

return res;

}void init()

int main()

return 0;

}

拆點,求最大匹配。

但這樣寫,應該有問題的。不能保證上次從點 \(u\) 取了和 \(v\) 之間的邊,下次從 \(v\) 就會取和 \(u\) 之間的邊。

比如下面的圖就就有問題

應該輸出 \(no\),但輸出了 \(yes\)。

#include#define pb push_back

using namespace std;

const int n=110;

const int inf=0x3f3f3f3f;

struct node

;vectorpic[n<<1];

queueque;

int layer[n<<1],iter[n<<1];//iter陣列用於當前弧優化

int vn,s,t;

bool bfs()}}

return false;

}int dfs(int a,int c)//}}

return 0;//

}int dinic()

return max_flow;

//printf("%d\n",max_flow);

}void add(int u,int v,int w)

); pic[v].pb();

}int main()

int u,v;

for(int i=1;i<=m;i++)

int ans=dinic();//cout<

using namespace std;

typedef pairpii;

const int n=55;

int d[n],a[n];

vectorpic[n];

bool vis[n<<1];

int n,m;

bool cmp(int x,int y)

{ return pic[x].size()n) return 1;

if(d[a[k]]==0) return dfs(k+1);//該電的度已滿足,找下乙個點

for(int i=0;i

牛客暑期多校訓練營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 ...