【洛谷】P3244 [HNOI2015]落憶楓音
首先沒有環的方案數是很好求的
根據朱劉演算法的推論,一個 DAG 中存在一個點能夠到達每一個點,那麼每個點都選一條入邊一定能構成一個樹型圖(有向樹)
所以DAG可以直接乘法原理
考慮有環的情況
只要將總方案數減去非法方案數就好了
非法方案數是什麼呢
首次加入的這條邊一定是環上的一條邊,所以一定存在一條或者多條迴路從 t 回到 s
設構造路徑 t 到 u 的方案數為 G(u),那麼 u 的後繼節點 v 的方案數是
那麼
解釋一波柿子 1:由於當前已經在 t,所以 t 的出邊是一定的,所以要除掉 t 的度數
解釋一波柿子 2:由於 v 的入邊的選擇對於每一種方案是一定的,所以要除去 v 的度數,然後加法原理搞定
建反向邊就可以更方便推柿子了
相關推薦
【洛谷】P3244 [HNOI2015]落憶楓音
首先沒有環的方案數是很好求的 根據朱劉演算法的推論,一個 DAG 中存在一個點能夠到達每一個點,那麼每個點都選一條入邊一定能構成一個樹型圖(有向樹) 所以DAG可以直接乘法原理 考慮有環的情況 只要將總方案數減去非法方案數就好了 非法方案數是什麼呢 首次加入的
BZOJ 4011 HNOI2015 落憶楓音 DAG上的dp(實際上重點在於分析)
ora can main span next 暴力 pre -m type 題目鏈接:http://www.lydsy.com/JudgeOnline/problem.php?id=4011 題意概述:給出一張N點的DAG(連通),點1的入度為0。現在加一條原圖沒有的邊
[HNOI2015] 落憶楓音
依次 load 徹底 long long 正是 效應 div 空格 long 題目描述 「恒逸,你相信靈魂的存在嗎?」 郭恒逸和姚楓茜漫步在楓音鄉的街道上。望著漫天飛舞的紅楓,楓茜突然問出這樣一個問題。 「相信吧。不然我們是什麽,一團肉嗎?要不是有靈魂......我們也不可
luogu3244 bzoj4011 HNOI2015 落憶楓音
做出 () 了吧 push AR 選擇 為什麽 成了 之前 這道題目題面真長,廢話一堆。 另外:這大概是我第一道獨立做出來的HNOI2011年以後的題目了吧。像我水平這麽差的都能做出來,dalao您不妨試一下自己想想? 題目大意:給一個DAG,其中1號點沒有入度,現在新
[luogu3244 HNOI2015] 落憶楓音(容斥原理+拓撲排序)
沒有 容斥 mes ont 一行 www 只需要 a* () 傳送門 Description 給你一張?n?個點?m?條邊的DAG,1?號節點沒有入邊。再向這個DAG中加入邊?x→y?,求形成的新圖中以?1?為根的外向樹形圖數 模?10^9+7?。 Input 輸入文件的第
BZOJ4011 HNOI2015落憶楓音(動態規劃+拓撲排序)
DAG中每個點選一條入邊就可以構成一棵有向樹,所以如果沒有環答案就是∏degreei。 考慮去掉含環的答案。可以看做把環縮點,剩下的點仍然可以任意選入邊。於是去除的方案數即為∏degreei/∏degreek,k為環上點。 環相當於考慮新加入邊的終點到起點的所有路徑。設f[i]為i為起點的所有
[bzoj4011] [HNOI2015]落憶楓音
題目描述 不妨假設楓葉上有 n個穴位,穴位的編號為 1 ~ n。有若干條有向的脈絡連線著這些穴位。穴位和脈絡組成一個有向無環圖——稱之為脈絡圖(例如圖 1),穴位的編號使得穴位 1 沒有從其他穴位連向它的脈絡,即穴位 1 只有連出去的脈絡;由上面的故事可知,這個有向無環圖存在一個樹形子圖,它是以穴位 1為根
4011: [HNOI2015]落憶楓音
return pre rod 個數 lin ret typedef https ++ 4011: [HNOI2015]落憶楓音 鏈接 分析: 原來是一個DAG,考慮如何構造樹形圖,顯然可以給每個點找一個父節點,所以樹形圖的個數就是$\prod\limits_u d
【洛谷】2822 組合數問題(遞推)
return bottom 初始化 list main sca set 如果 lld 題目描述 組合數C?n?m??表示的是從n個物品中選出m個物品的方案數。舉個例子,從(1,2,3) 三個物品中選擇兩個物品可以有(1,2),(1,3),(2,3)這三種選擇方法。根據組合
【洛谷】P2434 [SDOI2005]區間(暴力)
輸入輸出 pre spa scan break 輸入格式 我們 return 描述 題目描述 現給定n個閉區間[ai, bi],1<=i<=n。這些區間的並可以表示為一些不相交的閉區間的並。你的任務就是在這些表示方式中找出包含最少區間的方案。你的輸出應該按照區
【洛谷】P1052 過河(狀壓dp)
ron mic ont 由於 不同 amp 整數 輸入輸出格式 pac 題目描述 在河上有一座獨木橋,一只青蛙想沿著獨木橋從河的一側跳到另一側。在橋上有一些石子,青蛙很討厭踩在這些石子上。由於橋的長度和青蛙一次跳過的距離都是正整數,我們可以把獨木橋上青蛙可能到達的點看成數
【洛谷】P2983 [USACO10FEB]購買巧克力Chocolate Buying(貪心)
輸出格式 準備 anti radius rod money pri price -s 題目描述 Bessie and the herd love chocolate so Farmer John is buying them some. The Bovine Choco
【洛谷】P2725 郵票 Stamps(dp)
adg symbol 能夠 循環 tro 總數 技術分享 std 答案 題目背景 給一組 N 枚郵票的面值集合(如,{1 分,3 分})和一個上限 K —— 表示信封上能夠貼 K 張郵票。計算從 1 到 M 的最大連續可貼出的郵資。 題目描述
【洛谷】P1030 求先序排列
++ std name spa n) clu find main subst 這是一道圖論模板題,用分治的策略即可輕松AC! #include<bits/stdc++.h> using namespace std; string st1,st2,s1,s2;
【洛谷】P3367 【模板】並查集
space ret class cpp else if 並查集 scan == namespace #include<bits/stdc++.h> using namespace std; int fa[10005],n,m,type,a,b; int fa
【洛谷】P1197 [JSOI2008]星球大戰
如果 scanf node 新建 turn spa ble space ans 原題 這道題目在一開始想的時候我感覺沒有什麽思路,然後仔細一想,如果可以重新建邊呢??? 我們不妨先把所有點都設定為一個孤獨的島嶼,然後不斷連邊,所有第一個的答案就出來了!!! 然後每一次我們
【洛谷】P2671 求和
bit 顏色 data else %d 結構 求和 所有 要求 題目描述 一條狹長的紙帶被均勻劃分出了n個格子,格子編號從1到n。每個格子上都染了一種顏色color_i用[1,m]當中的一個整數表示),並且寫了一個數字number_i。 定義一種特殊的三元組:(x,y,z
【洛谷】P1227 [JSOI2008]完美的對稱
post != sin 關於 一個 cmp ble 這樣的 包含 題目描述 在峰會期間,必須使用許多保鏢保衛參加會議的各國代表。代表們除了由他自己的隨身保鏢保護外,組委會還指派了一些其他的特工和阻擊手保護他們。為了使他們的工作卓有成效,使被保衛的人的安全盡可能得到保障,保鏢
【洛谷】【堆】P1168 中位數
算法分析 相差 位數 class main family style 正整數 include 【題目描述:】 給出一個長度為N的非負整數序列A[i],對於所有1 ≤ k ≤ (N + 1) / 2,輸出A[1], A[3], …, A[2k - 1]的中位數。即前1,3,5
【洛谷】【堆+貪心】P1484 種樹
isp queue while std using pen mil OS 一條直線 【題目描述:】 cyrcyr今天在種樹,他在一條直線上挖了n個坑。這n個坑都可以種樹,但為了保證每一棵樹都有充足的養料,cyrcyr不會在相鄰的兩個坑中種樹。而且由於cyrcyr的樹種不夠,