利用補集轉化建圖。可以得到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 大家應該都會玩 錘子剪刀布 的遊戲 兩人同時給出手勢,勝負規則如圖所示 現給出兩人的交鋒記錄,請統計雙方的勝 平 負次數,並且給出雙方分別出什麼手勢的勝算最大。輸入格式 ...