jzoj5906】的更多相关文章

我們首先發現,每一條邊都至少走1次,因為我們必須走到每一個節點按按鈕 如果我們不走一個節點,說明這個節點已經有傳送門了,但是必須走到這個節點開傳送門,矛盾 然後我們發現,每一條邊至多經過2次 如果我們將傳送門設置在一個祖先,則邊fa->i會經過兒子個數次 但是如果將傳送門設置在兒子u處,則邊fa->i只會經過2次,更優 我們再次發現,傳送的位置和第一個傳送門有關係,而和第二個無關 所以我們可以先設置兒子的傳送門,再設置父親的傳送門 顯然,設置傳送門可以讓一些邊只走1次,我們可以計算最優方案 記…
emmm dpdpdp然鹅我考场上并想不到 还是凉凉 #include<cstdio> #include<cmath> #include<iostream> #include<algorithm> #include<cstring> #define rint register int using std::min; template <class T>inline void read(T &X) { X=;;; while(!…
因为这几天要加油,懒得每篇都来写题解了,就这里记录一下加上一句话题解好了 P4071 [SDOI2016]排列计数   组合数+错排 loj 6217 扑克牌 暴力背包 P2511 [HAOI2008]木棍分割 第一问二分,第二问记$dp[i][j]$为前$i$根砍$j$刀的方案,那么它可以由所有$sum[i]-sum[k]<=ans1$的$k$转移而来,用滚动数组优化空间,用队列的形式优化转移 P1410 子序列 贪心能过(数据水).dp的话,考虑$f[i][j]$表示前面$i$个数的最长上升…