原创 Hdu 4507 吉哥系列故事——恨7不成妻

求[L,R] 中不滿足以下任意一條的數的平方和 1 整數中某一位是7 2 整數的每一位加起來的和是7的整數倍 3 這個整數是7的整數倍; 一眼看去又是一個數位dp,但是怎麼統計平方和呢? 假設我們在統計最高位爲x的n個數的平方和

原创 Lonlife 1016 Change of Life

定義f(x) 爲LIS(a0,a1...am)(n=a0+a1×10+...+am×10m,0≤ai≤9,am≠0) 求∑ni=1f(i) 1≤n≤1015 一眼看過去就是一個數位dp ,但是我們用怎麼樣的狀態表示最長上升子序列

原创 UVA 1728 Toll Management IV

一個n(n≤104) 個點m(m≤105) 條帶權(0≤Ci≤1000) 邊的無向圖,給出原圖的一個最小生成樹(輸入的前n−1 條邊) 對於第i 條邊,定義Ai 和Bi 爲在不改變最小生成樹形態下增加和減少的最大的值 求 ∑i=1

原创 hihocoder 1387 A Research on The Hundred Family Surnames

題解網址 以下爲搬運 題意: 給一棵樹,每個節點上有個顏色,很多詢問,詢問兩種顏色,問從這兩種顏色中各取一個節點,距離最大是多少。 題解:處理出每種顏色的節點們的直徑(也就是距離最大的點對)。然後對於兩種詢問顏色(a,b) 的直

原创 Hdu 5921 Binary Indexed Tree

題解鏈接 題意搬運: 用樹狀數組維護一個序列,在給區間 [l,r] 加上一個t 的時候,要給 [1,r] 加上 t ,給 [1,l−1] 減去 t ,兩次操作後值真正發生變化的節點個數就是這一次區間修改的代價,現在要修改每

原创 Hdu 5909 Tree Cutting

n(n≤1000) 個點的樹上每個點有一個權值(0≤Ci<m,m≤210) ,定義一個子樹的權值爲這個子樹節點的權值的異或。分別求權值爲[0,m−1] 的子樹的個數mod(109+7) 對於一個無根樹的子樹,如果我們欽定一個點作

原创 計蒜客 青雲的機房組網方案

題面: 有一棵點數105 的樹,每個節點有一個權值,權值範圍是[1,105] 的,問所有兩個權值互質的節點之間距離的和 題解 關於虛樹,記下一些key point以後要是忘了可以回來看看 虛樹是保留原樹的所選定的一些節點,保

原创 Hdu 5456 Matches Puzzle Game

問有多少個等式滿足使用的火柴棍個數恰好爲n 個 輸出等式個數(modm) 5≤n≤500,3≤m≤2×109 就是求滿足a+b=c ,並且a,b,c 每一位按照使用的火柴棍個數加權之後恰好等於n−3 的等式個數 考慮到這個題的狀

原创 Hackerrank Coprime Conundrum

計算小於乘積小於n 的互質二元組的個數 具體的,計算\sum_\limits{i=1}^n\sum\limits_{j=i}^n[i \times j \le n][gcd(i,j)=1] 其中n≤109 可以考慮枚舉i ,計算

原创 Hdu 5890 Eighty seven

有50個數,每次拿走至多三個數詢問是否存在十個數滿足和等於87。 可以用bitset壓位跑一個揹包 摳一摳常數就能過去惹 #include<bits/stdc++.h> using namespace std; const i

原创 Codeforces 258B - Little Elephant and Elections

從[1,m] 中依次選擇7 個數,滿足前六個數中4 和7 的個數之和小於最後一個數的4 和7 的個數的方案數(mod1e9+7) 我們按照4和7的個數對[1,m]的數做等價類劃分。然後dfs就好。前半部分可以用數位dp解決。 #

原创 Codeforces 344C - Rational Resistance

剛開始有一個阻值爲1的電阻。 每次可以將一個電阻和某個阻值爲1的電阻串聯或者並聯來獲得一個新的電阻,問至少需要多少個阻值爲1的電阻能湊出阻值爲ab(1≤a,b≤1018) 的電阻 假設當前手頭上有xy 的電阻,那麼每一次加電阻可

原创 Bzoj 3530 數數

求[1,n](n≤101000) 中不包含給定數字作爲字串的數字個數(mod109+7) ,給定數字總長度≤1500 。 一眼看過去是一個用AC自動機表示狀態,用數位dp的模板題 注意前導零是不會被統計到的 具體見代碼 #inc

原创 Hdu 2243 考研路茫茫——單詞情結

求長度小於n(1≤n<231) 的串中包含至少一個模式串的個數。模式串總長度不超過25。 市面上的題解幾乎都是反着考慮。但是其實正着考慮也是可以的。 我們在AC自動機的狀態上額外添加一個狀態Acp ,也就是接受態。 對於兩個狀態

原创 Poj 3208 Apocalypse Someday

求第n 小的數位中含有三個連續的6的數。 考慮小於x 的數位中含有連續三個6的數的個數,可以數位dp。 狀態爲之前連續的6的個數,如果已經有三個6了,無論加什麼數字都是合法狀態,否則加一個不爲6的數就重置個數爲0。 然後二分就好