公式題,沃利斯積分:\(\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 ...