拓撲排序,鏈式前向星,bitset給定一張n個點m條邊的有向無環圖,分別統計從每個點出發能夠到達的點的數量。
const
int n =
30020
;int n,m;
struct edgeedge[n]
;int head[n]
,cnt;
int in[n]
,seq[n]
;//拓撲排序後的序列
bitsetf[n]
;void
add(
int a,
int b)
void
topsort()
int k =0;
while
(!q.
empty()
)}}int
main()
topsort()
;for
(int i=n-1;
~i;i--)}
for(
int i=
1;i<=n;i++
)cout << f[i]
.count()
<< endl;
//表示1的個數
return0;
}
簡單dfs每次纜車可以裝重量為w的貓,問需要多少次才能送完.
int n,w;
int a[maxn]
,v[maxn]
,ans;
bool
cmp(
int a,
int b)
void
dfs(
int x,
int cnt)
for(
int i=
1;i<=cnt;i++)}
v[cnt+1]
= a[x]
;dfs
(x+1
,cnt+1)
; v[cnt+1]
=0;}
intmain()
一串字元,解數獨;找到當前可能性最小的點bfs,對於點(x,y),每行每列每個九宮格都去除這個點的值
inline
intlowbit
(int x)
int ones[
1<< n]
,mp[
1<< n]
;int row[n]
,col[n]
,cell[3]
[3];
char str[
100]
;void
init()
}}inline
intget
(int x,
int y)
bool
dfs(
int cnt)}}
}for
(int i=
get(x,y)
;i;i-
=lowbit
(i))
return
false;}
intmain()
while
(cin >> str && str[0]
!='e'
)else cnt ++;}
}dfs
(cnt)
; cout << str << endl;
}return0;
}
HDU 5413 拓撲排序 BITSET
題意 給定一張有向圖,對於邊 ev 如果去掉它的話,u仍然可以到達v的話,那麼這條邊就是多餘邊。解法 顯然的乙個思路是倒著做。先topo一遍,然後倒著來,這裡需要用到bitset維護每個點可以和哪些點直接相連,利用bitset是為了不超記憶體,然後用bitset處理出關係之後就可以遍歷尋找答案了。i...
X 拓撲排序 一
描述 由於今天上課的老師講的特別無聊,小hi和小ho偷偷地聊了起來。小ho 小hi,你這學期有選什麼課麼?小hi 挺多的,比如 1,2還有 3。本來想選yyy2的,但是好像沒有先選過yyy1,不能選yyy2。小ho 先修課 是個麻煩的東西呢。小hi 沒錯呢。好多課程都有先修課程,每次選課之前都得先查...
將字串中出現的空格替換成0x20
背景,在網路程式設計中,如果url引數含有特殊字元,如空格,等,可能導致伺服器端無法獲得正確的引數值。我們需要將這些特殊符號轉換成伺服器可以識別的字元。轉換的規則是在 後面跟上ascii碼的兩位十六進製制數表示,比如空格的ascii碼是32,即十六進製制的20,因此空格被替換成 20。再比如 的as...