bzoj 2597 石頭剪刀布

2021-07-07 05:34:05 字數 968 閱讀 7168

利用補集轉化建圖。可以得到ans=c(n,3)-sigma(c(win[i],2))。具體的意思就是兩個勝場會破壞乙個三元環。

之後展開,注意sigma(win[i])=n*(n-1)/2,因為比賽場次是c(n,2)個,因為寫成了n,一直wa

#include

#include

#include

#include

#include

#define md

#define ll long long

#define inf (int) 1e9

#define eps 1e-8

#define n 100010

#define m 400010

using namespace std;

struct yts e[2*m];

int v[n],dis[n],g[110][110],q[n];

bool vis[n];

int num=1,n,s,t;

int ans=0;

void put(int x,int y,int f,int c)

void add(int x,int y,int f,int c)

void ycl()}}

vis[x]=0;

}return dis[s]!=inf;

}int dfs(int x,int fl)

}return used;

}void zkw()

while (vis[t]);}}

void outit()

int main()

{int x;

scanf("%d",&n);

ycl();

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

for (int j=1;j<=n;j++)

{scanf("%d",&x);

if (j

bzoj 2597 剪刀石頭布(費用流)

傳送門biu 一張競賽圖中,任意選三個點如果不形成環,那麼一定有乙個點的出度為2。也就是每當在任意乙個點中找到任意兩個出度,圖中就會失去乙個三元環。令點i i 的出度為de gree i role presentation style position relative deg reei degr ...

1018 石頭剪刀布

現給出兩人的交鋒記錄,請統計雙方的勝 平 負次數,並且給出雙方分別出什麼手勢的勝算最大。輸入第 1 行給出正整數 n 10 5 即雙方交鋒的次數。隨後 n 行,每行給出一次交鋒的資訊,即甲 乙雙方同時給出的的手勢。c 代表 錘子 j 代表 剪刀 b 代表 布 第 1 個字母代表甲方,第 2 個代表乙...

1018石頭剪刀布(模擬)

時間限制 100 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 大家應該都會玩 錘子剪刀布 的遊戲 兩人同時給出手勢,勝負規則如圖所示 現給出兩人的交鋒記錄,請統計雙方的勝 平 負次數,並且給出雙方分別出什麼手勢的勝算最大。輸入格式 ...