原创 HDU Legal or Not 有向圖拓撲找環模板題

題目鏈接 題目大意 判斷有向圖是否有環 題目思路 把所有入度爲0的節點刪去。然後刪除這個節點的所有的邊。即所有和它相連的點的入度減一。然後循環。就是放在隊列裏,看最後是否還有入度不爲0的點就行了。 代碼 #include<queu

原创 Codeforces Round #648 (Div. 2) F - Swaps Again 題解(思維)

題目鏈接 題目大意 有兩個長度爲n的數組a和數組b,可以選擇k(1<=k<=n/2)交換某一個數組的前綴k和後綴k,可以交換任意次數,看是否能使兩個數組相等 思路 這個就是要發現一個關鍵就是有a[i],與a[n-i+1]他們始終對

原创 Codeforces Round #648 (Div. 2)E. Maximum Subsequence Value 題解(位運算)

題目鏈接 題目大意 給你一個數組大小不超過500的數組,要你找出子序列的最大價值。 價值的定義爲:假設你找了k個元素,把他們都化爲二進制,如果在第i位有max(k-2,1)位1,那麼價值就加上2^i。 題目思路 我是沒什麼思路的,

原创 Codeforces Round #646 (Div. 2)E. Tree Shuffling 題解(dfs)

題目鏈接 題目大意 給你一顆樹,每一個節點有一個a[i],b[i],c[i]值,你要把b[i]變成c[i],b[i]和c[i]爲[0,1],你操作的方法是,選擇一個節點x,選擇他的k個子樹,然後進行交換他們的b[i]值,使滿足要求

原创 Codeforces Round #635 (Div. 2) D. Xenia and Colorful Gems 題解(二分)

題目鏈接 題目大意 三個數組,每個數組中挑出來一個數,求 (x−y)^ 2 + (x−z)^ 2+(y−z)^2的最小值。 題目思路 暴力是o(n^3)肯定會爆,但是顯然這個答案要使得這三個值最接近。 枚舉中間值,然後二分尋找比他

原创 Educational Codeforces Round 88 (Rated for Div. 2) E Modular Stability 題解(組合數學+逆元+取模)

題目鏈接 題目大意 讓你設計出長爲k,且1<=a[i]<=n,且數組嚴格單調上升。使任意正整數x使其以任意順序mod數組的所有元素值都相等 題目思路 感覺比較好想,當a1爲一個數d,其他數都爲d的倍數的時候,無論怎麼交換,答案都是

原创 Codeforces Beta Round #51 D. Beautiful numbers 題解(數位dp+離散化)

題目鏈接 題目大意 就是求區間內能被所有位上的數字(!0)整除的數的個數 題目思路 首先這很明顯是一個數位DP 滿足被所有位上的數字(!0)整除的數 其實就是滿足被這些位數的lcm整除 然後就是怎麼處理一個數在不斷變化中 還要對l

原创 Codeforces Round #636 (Div. 3) E. Weights Distributing 題解(思維+bfs+前綴和)

題目鏈接 題目大意 給出一個點數爲n,邊數爲m的無向圖,求分配m個權值給這些邊使得a到b到c的路徑的最小花費 題目思路 此題的難點就是a->b->c可能存在重複的邊,顯然重複的邊應該是權值最小的。那麼該怎麼求重複的邊呢? 在最優解

原创 HDU X mod f(x) 題解(數位dp)

題目鏈接 題目大意 在1<=L<=R<=1e9內,找出有多少個數mod(自己每一位數和)爲0 題目思路 顯然是數位dp,但是比較巧妙的是要,枚舉mod,還有這個卡空間,不能直接return dp[pos][mod][digsum]

原创 Codeforces Round #634 (Div. 3) E1 E2 Three Blocks Palindrome題解(暴力枚舉/枚舉優化)

E1題目鏈接 題目大意 給你一個大小小於2000的數組a,其中1<=a[i]<=26,讓你找出滿足條件的最長子序列。 條件爲:這個子序列滿足aba的即前綴和後綴的元素都爲一個數,中間的元素都相等即可 題目思路 看到這個數據,可以直

原创 Codeforces Round #637 (Div. 2) - Thanks, Ivan Belonogov! D. Nastya and Scoreboard題解(記憶化搜索)

題目鏈接 題目大意 一個n個數碼位的分數板,每一個數碼位都是一個七段數碼管,現在給出每個數碼位的顯示情況,問再點亮k段數碼管的話能顯示的最大的數是多少,如果不能構成一串數字,就輸出-1。答案允許有前導0,但是有前導0的時候答案長度

原创 HDU Balanced Number 題解(數位dp)

題目鏈接 題目大意 給定區間[a,b],求區間內平衡數的個數。所謂平衡數即有一位做平衡點,左右兩邊數字的力矩想等。 題目思路 顯然除了0以外,所有的數最多隻有一個平衡點 遍歷每一位做爲平衡點,進行搜索,sum保存數字乘以距離的和,

原创 Codeforces Round #644 (Div. 3) H - Binary Median 題解(二進制)

題目鏈接 題目大意 有一堆二進制數(01串,按字典序排序),從0到2^m-1 ,我們刪除其中n(n<=100)個數,再輸出這些數的中位數 題目大意 這個二進制化爲十進制真的有點巧妙。。。可以觀察其實,發現m最多爲60就應該要思考化

原创 Educational Codeforces Round 87 c1 c2 題解(計算幾何)

前置知識 #define pi acos(-1.0) 是因爲 acos爲cos的反函數 cos(pi)=-1 使用三角函數都要換爲弧度制,角度制*pi/180=弧度制 C1. Simple Polygon Embedding 題目

原创 第七屆Code+程序設計全國挑戰賽 補題

最小路徑串 題目描述 n 個點 m 條邊的無向圖中,所有點用從 0 開始的 6 位數字串編號,即 000000、000001、000002、……直到 n−1 對應的 6 位數字串。保證 n≤106,所以 6 位的編號不會溢出。 對