洛谷春季 ACM 多校訓練第二週

2022-05-02 05:18:08 字數 2326 閱讀 2439

這題我犯了乙個邏輯錯誤,人傻了,想了半天也沒debug出來;

做法:是這樣乙個邏輯問題,乙個點不是控制點,就是如果有控制點連到它就行了。

但,乙個點是控制點,不是說連到它的點不是控制點就行了,只要有乙個連到它的控制點,那它就不是控制點。

標準錯誤解法:

這個想法就是,vis=1表示他是控制點,如果乙個點不是控制點,那麼他的所有鄰居就是控制點。

這肯定是錯了,如果他的鄰居有其他控制點可以連到呢?那這個鄰居就不是控制點。

#includeusing

namespace

std;

const

int n=1e5+5

;#define pb push_back

bool

vis[n];

int ans,in

[n];

intn,m;

vector

e[n];

void

toposort()

}}intmain()

ans=0

; toposort();

printf(

"%d\n

",ans);

return0;

}

view code

正確解法:邏輯正確;

如果乙個點是控制點,那麼他的所有鄰居就不是控制點。這個是正確的邏輯;】

#includeusing

namespace

std;

const

int n=1e5+5

;#define pb push_back

bool

vis[n];

int ans,in

[n];

intn,m;

vector

e[n];

void

toposort()

}}intmain()

ans=0

; toposort();

printf(

"%d\n

",ans);

return0;

}

view code

中模擬:題意:給你乙個課的時間,讓你排乙個課表,每次問你這天的課程;

做法:這題主要是不好表示,setcourse[n][7];表示第幾周,第幾天的課程;

然後插入遍歷,本來想搞個優先佇列,但是無法遍歷,所以只能set;

#include using

namespace

std;

#define pb push_backtypedef

long

long

ll;typedef

long

double

ldb;

const

int n=1e4+5

;struct cla

friend

bool

operator

};bool cmp(cla a,cla b)

setcourse[n][7

];int mp[350

];int

main()

}if(i==n)q=sw;

}while(q--)

//system("pause");

return0;

}

view code

題意:給你兩個圖,判斷是否聯通同構;

做法:看明白以後這題真的是。。。。

其實判斷是否聯通同構真的很簡單,每次讀入u,v;

用乙個cnt表示兩個集合的差,那麼每次加入u,v的話,看看另乙個集合u,v是否聯通。

如果聯通,cnt--,否則cnt++;

#includeusing

namespace

std;

#define pb push_backtypedef

long

long

ll;const

int n=2e5+5

;const

int inf=0x3f3f3f3f

;int

fa1[n],fa2[n];

int find1(int x)

int find2(int x)

void build1(int x,int y)

void build2(int x,int y)

intmain()

else

if(!cnt)puts("a"

);

else puts("b"

); }

return0;

}

view code

洛谷春季 ACM 多校訓練第五周

二分圖匹配 回憶一下二分圖匹配演算法,乙個點被匹配當且僅當 match v findpath match v 但你記錄時一定要用乙個vis來記錄,不然一定會卡在某乙個點出不來。而且每次找增廣路都必須清空vis。注意 1.定義乙個vis,否則陷入乙個點找增廣路出不來,2.每次遍歷清空vis,否則答案必...

洛谷春季ACM多校賽 Final Spark

題目描述 有乙個長無限,寬為 w t 的長方形,去切割乙個半徑為 s 的圓,問如何切割可以使得其切割所對應的弧最長,求其佔據的比例,一共有t組測試資料 樣例3 2020 20100000 1001000 100100 1982000 1.000000000 0.000000000 0.5032153...

牛客網暑期ACM多校訓練營(第二場)

a run 基礎dp,直接做就行了。dp時候求出來到哪個距離有幾種走法,然後求一下字首和。輸出答案的時候減一下就行了。include include include include include include include include using namespace std define ...