四校聯考 傳遞

2022-06-03 07:54:09 字數 1231 閱讀 5967

【題解】

如果乙個圖是競賽圖那麼如果存在邊,那麼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...