這道題錯了好幾次,沒有看到一定從1號開始走。
題目的意思就是問你從一號開始走,最多可以吃多少草。
直接用到有向圖的雙連通的trajan演算法給圖縮點,
再重新新建乙個縮完點之後的圖,
然後直接從1號開始dfs就可以了。
#include#include#include#includeusing namespace std;
const int n=20010;
const int m=200020;
int pnt[m],nxt[m],head[m],e;
int pnt1[m],nxt1[m],head1[m],e1;
int low[n],dfn[n],belong[n],pan[n],st[n];
int cost[n];
int n,m,top,depth,cnt;
long long sum,maxk,num[n];
void addedge(int u,int v)
void addedge2(int u,int v)
void init()
void dfs(int now)
else if(pan[pnt[i]])//遇到回邊的處理,如果是之前已經處理過的強連通分量的點就不管了。
low[now]=min(low[now],dfn[pnt[i]]);
}if(low[now]==dfn[now])
}return ;
}void dfs2(int u,long long cc)
{ //printf("%d ",u);
if(sum
hiho一下 第五十八周
給定字串s,判定s是否存在子串s 滿足 aa abb bcc c 的形式。其中abc為連續的三個字母,且a,b,c的數量相同。原題目中數量相等的連續n n 3 個字母也是可行的,而實際上當n 3時一定包含有n 3的情況。比如 abcd 就包含有 abc 和 bcd 兩個合法子串。最基本的思路為對s的...
hiho學習日記 hiho一下 第五十八周
給定字串s,判定s是否存在子串s 滿足 aa abb bcc c 的形式。其中abc為連續的三個字母,且a,b,c的數量相同。原題目中數量相等的連續n n 3 個字母也是可行的,而實際上當n 3時一定包含有n 3的情況。比如 abcd 就包含有 abc 和 bcd 兩個合法子串。最基本的思路為對s的...
hihor日記 hiho一下 第五十九周
給定乙個單執行緒程式執行的記錄,包含有每個函式啟動和結束的時間。判定該份記錄是否錯誤,主要的錯誤包含 記錄中的時間不是嚴格遞增的 乙個函式的結束時間比啟動時間更早 記錄中乙個函式有不對應的啟動操作start或結束操作end,比如出現了start卻沒有對應的end,或出現了end卻沒有出現start。...