終於不是失敗總結了,
這個題其實還是很好分析的,由於每個格仔只有乙個方向,所以可以考慮每個格仔選取唯一的哪個方向
(其實很多網路流的題都隱含1的條件,找到1的條件限制網路流就好想了)
然後就是自帶的方向費用是0,修改的方向是1,限制每個點的流入流出,跑完mcmf就是答案了、
碼:
#include#include#includeusing namespace std;
#define n 15*15*6
#includequeueq;
int tot=-1,hou[n*4],xia[n],zhong[n*4],v[n*4],c[n*4],s,t,n,m,d[n],qj[n],ans;
bool vis[n];
char str;
void jian(int a,int b,int d,int ll)
void jia(int a,int b,int c)
bool spfa()
d[s]=0;
while(!q.empty()) }
} }if(d[t]>1000000007)return 0;
//coutjia((i-1)*m+j,n*m+(i-1)*m+lin,0);
lin=j-1;if(lin<=0)lin=m;
jia((i-1)*m+j,n*m+(i-1)*m+lin,1);
lin=i-1;
if(lin==0)lin=n;
jia((i-1)*m+j,n*m+(lin-1)*m+j,1);
lin=i+1;
if(lin>n)lin=1;
jia((i-1)*m+j,n*m+(lin-1)*m+j,1);
} if(str=='l')
if(str=='u')
if(str=='d')
}mcmf();
printf("%d",ans);
}
2017 9 7 騎士 思考記錄
這個題其實乙個月前就想寫了 但當時看到環基樹就嚇跑了 但其實這個題除了環要找出來單獨跑一邊dp 別的就真的沒了 先把環找出來 由於只有乙個環,所以直接dfs 然後對環上的每個點做一遍子樹的dp 然後把環拆下來,列舉第乙個點的狀態 從這個點左邊一直做到這個點右邊 然後就沒了 注意它可能有多個子集 乙個...
2017 10 6 單詞 思考記錄
少有的會做的ac自動機題 這個題是匹配模式串 所以就不需要匹配的過程,只需要建出fail樹,然後直接拓撲 由於每次加進去乙個單詞,這個單詞的每乙個字母都有可能作為最後乙個字母影響他的失配,所以詞路徑上的每個字母都需要標記 然後失配是保證了字尾相等,所以如果失配是詞,則這個點的所有繼承過來的標記都可以...
2017 10 28 壓縮 思考記錄
這個題首先要知道m和r不是棧的搭配,是貪心的搭配,就是向左找到第乙個m。如 abababab cdcdcdcd abababab cdcdcdcd abrrcdcdcdcdr mabrrcdrr r 然後如果你想使用r來重複兩個相同區間就必須保證m出現在最左端,或整串都不出現 所以f 左端點 右端點...