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

2022-05-02 05:12:07 字數 1902 閱讀 3446

二分圖匹配;

回憶一下二分圖匹配演算法,乙個點被匹配當且僅當   (!match[v]||findpath(match[v]))  ,但你記錄時一定要用乙個vis來記錄,

不然一定會卡在某乙個點出不來。而且每次找增廣路都必須清空vis。

注意:1.定義乙個vis,否則陷入乙個點找增廣路出不來,

2.每次遍歷清空vis,否則答案必定不對。

#includeusing

namespace

std;

#define pb push_back

const

int n=300+5

;vector

e[n];

intmatch[n];

intn;

bool

vis[n];

bool findpath(int

u) }

}return0;

}

char s[150

];int

main();

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

}bool flag=1

;

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

for(int i=1;i<=n;i++)if(!match[i+100])flag=0

;

if(flag)puts("

yes"

);

else puts("no"

);

//system("pause");

return0;

}

view code

按題意模擬即可。

#includeusing

namespace

std;

#define pb push_backtypedef

long

long

ll;const

int n=300+5

;int

main()

view code

普通dp

#includeusing

namespace

std;

#define rep(i,j,k) for(int i=(int)j;i<=(int)k;i++)

#define per(i,j,k) for(int i=(int)k;i>=(int)j;i--)

#define pb push_back

#define pf push_front

#define fi first

#define se second 11typedef

long

long

ll;typedef unsigned

long

long

ull;

typedef

long

double

ldb;

typedef

double

db;const db pi=acos(-1.0

);const ll inf=0x3f3f3f3f3f3f3f3fll;

const

int inf=0x3f3f3f3f;//

0x7fffffff;

const

double eps=1e-9

;const ll mod=1e9+7

;const

int n=5e3+5

;ll dp[n][n];

intmain()

}printf(

"%lld\n

",dp[n][m]);

//system("pause");

return0;

}

view code

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

這題我犯了乙個邏輯錯誤,人傻了,想了半天也沒debug出來 做法 是這樣乙個邏輯問題,乙個點不是控制點,就是如果有控制點連到它就行了。但,乙個點是控制點,不是說連到它的點不是控制點就行了,只要有乙個連到它的控制點,那它就不是控制點。標準錯誤解法 這個想法就是,vis 1表示他是控制點,如果乙個點不是...

洛谷春季ACM多校賽 Final Spark

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

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

二分答案,然後就轉化為是否滿足 frac d sum s i c i sum s i d sum s i c i d 0 顯然科目越少gpa越高,於是去掉最小的k個判斷即可。include define rep i,a,b for int i a i b i define per i,a,b for...