【BZOJ2142】禮物(擴充套件Lucas)
Description
一年一度的聖誕節快要來到了。每年的聖誕節小E都會收到許多禮物,當然他也會送出許多禮物。不同的人物在小E心目中的重要性不同,在小E心中分量越重的人,收到的禮物會越多。小E從商店中購買了n件禮物,打算送給m個人,其中送給第i個人禮物數量為wi。請你幫忙計算出送禮物的方案數(兩個方案被認為是不同的,當且僅當存在某個人在這兩種方案中收到的禮物不同)。由於方案數可能會很大,你只需要輸出模P後的結果。
Solution
容易看出答案是:
將
我們首先只考慮對於
Description
一年一度的聖誕節快要來到了。每年的聖誕節小E都會收到許多禮物,當然他也會送出許多禮物。不同的人物在小E心目中的重要性不同,在小E心中分量越重的人,收到的禮物會越多。小E從商店中購買了n件禮物,打算送給m個人,其中送給第i個人禮物數量為w
測試地址:禮物 做法: 本題需要用到Dilworth定理+優化建圖+拓撲排序。 對位運算感覺比較敏銳的話,可以看出,
a
&
sort 大小 int gin algorithm read oid n) 快速合並 題目分析
付費題哈哈。題意就是求區間眾數,由於區間眾數無法快速合並,所以不能使用傳統的數據結構如線段樹等。
這時分塊就能派上很大的用場。將序列分成$\sqrt{n}+$塊,每塊大小$\ return style pid cmp acm 防止 include 不能 fine http://acm.hdu.edu.cn/showproblem.php?pid=3367
題目大意
偽森林就是一個無向圖,這個無向圖有多個連通塊且每個連通塊只有一個簡單環。
給你一個 -- return cstring long long 表示 getchar() bom math while Description
題意就是找0到N有多少個數中含有49。
\(1\leq N \leq2^{63}-1\)
Solution
數位DP,與hdu3652類似 log turn logs efi read etc body pre 數量 Description
題意:有一排數量為N的方塊,每次可以把連續的相同顏色的區間消除,得到分數為區間長度的平方,然後左右兩邊連在一起,問最大分數為多少。
\(1\leq N\leq200\)
S sca ++ include 很多 queue 有一點 div body ont 【BZOJ3172】單詞(AC自動機)
題面
Description
某人讀論文,一篇論文是由許多單詞組成。但他發現一個單詞會在論文中出現很多次,現在想知道每個單詞分別在論文中出現多少次。
I 需要 記錄 表示 列隊 其中 truct ble read namespace 【BZOJ1899】午餐(動態規劃)
題面
BZOJ
題解
我太弱了
這種\(dp\)完全做不動。。
首先,感性理解一些
如果所有人都要早點走,
那麽,吃飯時間長的就先吃
吃飯時間短的就晚點吃
tin efi -s com 開始 ++ blog ble body 【BZOJ1997】Planar(2-sat)
題面
BZOJ
題解
很久沒做過\(2-sat\)了
今天一見,很果斷的就來切
這題不難呀
但是有個玄學問題:
平面圖的性質:邊數\(m\)的最大值為\(3 認識 全棧 rgs bubuko class a alt 創建 繼承 圖片 一、創建類的執行流程
二、元類的認識
什麽是元類呢?在Python3中繼承type的就是元類
二、元類的示例
# 方式一
class MyType(type):
‘‘‘繼承type 訪問 ins sin space 強制 queue str 一次 src 【BZOJ2115】Xor(線性基)
題面
BZOJ
Description
Input
第一行包含兩個整數N和 M, 表示該無向圖中點的數目與邊的數目。 接下來M 行描述 M 條邊,每行三個整數S query 題解 post sqrt ans rip string += 文件 【BZOJ4540】【HNOI2016】序列(莫隊)
題面
BZOJ
洛谷
Description
給定長度為n的序列:a1,a2,…,an,記為a[1:n]。類似地,a[l:r](1≤l≤ des NPU 解決 getc put ets 但是 拆分 etc 【BZOJ1176】Mokia(CDQ分治)
題面
BZOJ權限題啊,,,,
dbzoj真好
Description
維護一個W*W的矩陣,初始值均為S.每次操作可以增加某格子的權值,或詢問某子矩陣的總權值 cst 持久 tdi read lib bzoj mat modify -- 【BZOJ3166】ALO(主席樹)
題面
權限題qwq
資磁洛谷
題解
用一個\(set\)求出左右側比這個數大的第\(2\)個數,
然後用可持久化\(Trie\)算一下就好啦
#include tdi 位置 while 表示 ++ fine cstring pri com 【HDU4689】Derangement(動態規劃)
題面
Vjudge
給定一個\(+-\)組成的字符串,長度為\(n\)。
如果第\(i\)位是\(+\),那麽\(p_i>i\),否則 end out zoj strlen -- -a mut ostream bzoj1072 【BZOJ1072】排列(搜索)
題面
BZOJ
洛谷
題解
算下復雜度,如果用\(next\_permutation\)
那就是\(10!\times 10\times 15\), 時間 isdigit flow ast -s 不可 dinic ont 描述 題目描述
同一時刻有N位車主帶著他們的愛車來到了汽車維修中心。維修中心共有M位技術人員,不同的技術人員對不同的車進行維修所用的時間是不同的。現在需要安排這M位技術人員所維修的車及順序,使得顧客平 procedure 長度 push include rst mat second 記錄 first 題意:有n個依次編號的元素,要求維護以下兩個操作:
1.詢問整個數列中是否有長度>=x的連續的一段未被標記的元素,若無輸出0,若有輸出最小的開始編號ans並將[ans, 這裡的操作是區間翻轉
struct node* null;//注意這個要在主函式中初始化
struct node {
node *son[2], *fa;
int v;
int s;
bool tag;
node() {
son[0] = son[1] 題意:給定一個N位的由[0..9]組成的數字串和質數P,有M次不強制線上的詢問,每次詢問區間[l,r]中模P意義下為0的子串個數
N,M<=2e5,P<=1e10
思路:一次A,本來還以為要調好長時間……
考慮類似於字串雜湊的思路,預處理出每個字尾在模P意義下的餘數,設從第i位到第N位的字尾
像網上大多數部落格一樣,舉這個例子:
假設
那麼
然後將其中是3的倍數的數提出來:
然後發現這個式子可以分成三部分:
1、
2、對於階乘,我們可以遞迴求解
3、對於前面的缺了
即
注意相關推薦
【BZOJ2142】禮物(擴充套件Lucas)
【LuoguP4934】禮物(LGR-054)-Dilworth定理+優化建圖+拓撲排序
【bzoj2724】蒲公英(分塊)
【hdu3367】Pseudoforest(偽森林)
【Hdu3555】 Bomb(數位DP)
【Uva10559】Blocks(區間DP)
【BZOJ3172】單詞(AC自動機)
【BZOJ1899】午餐(動態規劃)
【BZOJ1997】Planar(2-sat)
python全棧開發基礎【補充】metaclass(元類)
【BZOJ2115】Xor(線性基)
【BZOJ4540】【HNOI2016】序列(莫隊)
【BZOJ1176】Mokia(CDQ分治)
【BZOJ3166】ALO(主席樹)
【HDU4689】Derangement(動態規劃)
【BZOJ1072】排列(搜索)
bzoj1070【SCOI2007】修車(費用流)
【POJ3667】Hotel(線段樹)
【模板】Splay(區間操作)
【BZOJ4542】大數(莫隊)