【題解】
如果乙個圖是競賽圖那麼如果存在邊,那麼a一定能走到b,反之亦然
還有,如果在圖p中存在邊,那麼圖q中一定不存在邊或(基圖是完全圖)
那麼,如果圖p中存在邊,圖q一定不能從a走到b或者從b走到a
既然如此,因為圖p+圖q是完全圖
所以,對於點u和點v,u和v之間的邊要不然在p裡,要不然在q裡,
所以要不然只能從u走到v,要不然只能從v走到u,
那麼,這不就是乙個dag嘛
於是我們把q裡的邊分別正著反著加入p
判斷是不是dag即可
#include#include#include
#include
#include
#include
#include
#include
#include
#include
#include
#define il inline
#define re register
using
namespace
std;
const
int n=3001
;int n,in
[n],t;
bool
s[n][n],p[n][n],q[n][n],d[n][n];
queue
que;
il bool
chk()
for(int i=1;i<=n;i++)
if(!in
[i]) que.push(i);
while(!que.empty())}}
for(int i=1;i<=n;i++)
return
true;}
il void
init()
}memset(d,
false,sizeof
(d));
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(!chk())
memset(d,
false,sizeof
(d));
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(!chk())
printf(
"t\n");
}int
main()
四校聯考 20171001
二分 期望得分 70 實際得分 10 列舉最高的高度可能為多少 二分。o logm 列舉最高高度應該位於哪一列上.o n 左右擴散列舉出需要用的積木總數,與m相比較。容易發現合法的高度的最高值,最終需要搭建乙個金字塔。1,3,5,7 正解是預處理出每一列作為最高列的左右邊界。然後再二分最大高度。ch...
四校聯考(20170910)
ditoly出的題目果然喪,待我一天啃一題。廢話不多說,開更 我是分割線 t1 最大值 max 問題描述 小c有n個區間,其中第i個區間為 li,ri 小c想從每個區間中各選出乙個整數,使得所有選出的數and起來得到的結果最大,請你求出這個值。輸入格式 第一行乙個正整數n,表示區間個數。接下來n行,...
四校聯考 點
題目描述 有n個點,初始時沒有邊。有m個操作,操作分為兩種 1 在i和j之間增加一條無向邊,保證1 i,j n。2 刪去最後新增的k條邊,保證k 當前邊數。你想要知道最多能選取多少個兩兩不連通的點,以及選取的方案數。在每次操作後輸出這兩個值。方案數對998244353取模。輸入資料 第一行兩個整數n...