原创 hdu 1533 Going Home (最大權匹配,KM算法)

題目鏈接:hdu 1533 #include<cstdio> #include<cstring> #include<iostream> using namespace std; #define inf (1e5) int N,M,L; c

原创 BZOJ 3209 花神的數論題 (數位DP)

題目鏈接:BZOJ 3209 10000007不是質數。10000007=941*10627。用費馬小定理的請注意。 組合數 1.組合恆等式:C(n,m)= C(n,n-m)= C(n-1,m-1)+C(n-1,m) 2.全組合數求和:s

原创 How I Became A Madman

You ask me how I became a madman. It happened thus: One day, long before many gods were born, I woke from a deep sleep

原创 Poj 2175 Evacuation Plan (消圈算法)

題目鏈接:poj 2175 消圈算法,可以用來判斷當前的方案是否是令費用最小的方案。若存在一個負環,那麼一定可以找到比當前方案更優的方案。對於這道題,我們只需用殘量網絡建圖,跑spfa判斷這個圖是否有環。若有環,沿着環更改方案即可。具體怎

原创 BZOJ 1833 [ZJOI 2010] 數字統計 (數位DP)

題目鏈接:BZOJ 1833 聽說這道是一道水DP(Orz). 我到現在都不知道BZOJ上long long要用I64d輸出,還是用lld輸出Orz。應該是lld吧(DK)。反正我用I64d輸出一直PE,改用cout就A了(這個傲嬌的評測

原创 BZOJ 1208 [HNOI 2004] 寵物收養所 (splay)

題目鏈接:BZOJ 1208 這道splay寫的我還有什麼話可說呢?一開始一直TLE,然後各種debug,最後才發現自己if語句寫掛了= =。 #include<cstdio> #include<cstring> #include<ios

原创 BZOJ 1090 [SCOI 2003] 字符串摺疊 (區間DP)

題目鏈接:BZOJ 1090 dp[i][j]表示區間[i,j]的最短折疊長度 轉移方程爲:dp[i][j]=min(j-i+1,dp[i][k]+dp[k+1][j]) 特別地若滿足區間[k+1,j]可以由區間[i,k]多次摺疊得到,那

原创 BZOJ 1069 [SCOI 2007] 最大土地面積 (凸包+旋轉卡殼)

題目鏈接:BZOJ 1069 #include<cstdio> #include<cstring> #include<iostream> #include<cmath> #include<algorithm> using namespac

原创 hdu 4336 Card Collector (概率與期望)

題目鏈接:hdu 4336 dp[i]表示在i這個狀態下,收集齊所有卡片所需要的買的袋數,轉移方程爲:dp[i]=(dp[i]+1)*(1-tot)+(dp[i|a[j]]+1)*p[j] (j爲i狀態中不包含的袋數,tot爲所有符合條件

原创 BZOJ 3571 [HNOI 2014] 畫框 (KM算法+分治)

題目鏈接:BZOJ 3571 思路: 用類似於最小乘積生成樹求解。 最小乘積生成樹:每個點有兩個權值x,y,求一棵生成樹使得sigma(x[i])*sigma(y[i])最小。 求解方法:建立平面直角座標系,將每個點看做座標(x[i],y

原创 BZOJ 3597 [SCOI 2014] 方伯伯運椰子 (分數規劃+消圈算法)

題目鏈接:BZOJ 3597 因爲總流量不可改變,只能改變流量的分佈,所以就用消圈算法吧。。。 因爲要求(x-y)/k的最大值,所以用0-1分數規劃吧。。。 #include<cstdio> #include<cstring> #incl

原创 hdu 2255 奔小康賺大錢 (最大權匹配,KM算法)

題目鏈接:hdu 2255 #include<cstdio> #include<cstring> #include<iostream> using namespace std; #define inf (1e8) int N; int A