2017 9 23 迴圈格 思考記錄

2021-08-08 15:50:43 字數 986 閱讀 1001

終於不是失敗總結了,

這個題其實還是很好分析的,由於每個格仔只有乙個方向,所以可以考慮每個格仔選取唯一的哪個方向

(其實很多網路流的題都隱含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 左端點 右端點...