原创 【多重揹包】二進制優化 && 單調隊列優化 && w == v 的特殊情況的處理

爲了彌補之前沒有好好學的揹包 = = 花了一下午來研究這個神奇的東西。。。 當時覺得揹包九講好多東西根本看不懂啊各種跪啊其實現在看來也還好啊 = =唉。。當初真的太水了 (PS:我依舊還是沒覺得noip2014D1T3是個揹包) 其實其

原创 【線段樹】line

。。水題。。。 #include <cstdio> #include <iostream> using namespace std; int read() { int n = 0, sign = 1; char c = ge

原创 【01揹包】Uvalive4015 Caves && Uvalive3637 The Bookcase

我要相信LA已經掛掉了 不管是我的代碼還是網上的AC代碼 交上去全是WA WA WA!!! so。。我也不知道我寫的到底能不能過。。。以後找時間交吧。。 QAQ兩道01揹包。。當時學揹包就沒好好學T_T於是………… Uvalive4

原创 【整體二分】[ZJOI 2013] bzoj3110 K大數查詢

題目點這裏 樹套樹題解點這裏 調完這個。。一晚上居然就又過去了。。。TAT 先說下效率 我的樹套樹是283136 b 7556 ms(永久化標記的)分治是3148 b 1296 ms _(:з)∠)_代碼長度的話。。兩個都差不多T___

原创 【最大流】攻略世界樹!

【描述】 有四種定位,隊長,戰士,牧師,法爺。一個標準的小隊應當擁有這四種人至少每種各一個。 目前總共有h個隊長(Hero), w個戰士(Warrior), c個牧師(Claric), m個法爺(Mage)。 允許最多有nw個小隊沒有戰士

原创 【cdq分治】[Noi2007] bzoj1492 貨幣兌換Cash

題目點這裏 嗯。。倒騰了這麼久終於折騰出來了。。 對cdq有一點感覺了T_T當然。。還是很多不懂 = = 在雅禮寫cdq寫不出來的感覺實在是。。。。 首先這題有一個貪心 就是每天的買賣一定是100% 這樣才能保證收益最大 然後設x[

原创 【動態規劃】【雙調TSP與MTSP問題】 hdu2224 & hdu4281

一個月前寫的了。。。。 首先雙調TSP:hdu2224 給出平面上的N個點(1~N) 從 1 號點出發走到最右端的點 N 再返回 1  要求中途不能重複走某個點而且必須把所有點全走一遍 求最小的總路徑 這個東西不是NPC 算導上有介紹

原创 【省選模板】

並沒有力氣寫完了T_T 【數學】 - 快速冪/快速乘 int Pow(int a, int b, int Mod) { int temp = 1, cmp = a; while (b) { if (b

原创 【好餓】 = =

真的很餓可是不想起牀。。。 一下午居然又過去了。。 寫了一半的數位dp沒力氣寫下去了 要從牀上爬起來洗澡然後下去買東西吃。。。想想就好累啊。。 再有三天就回四川了。。。。 依舊像之前那樣。。每次都以爲一個月時間自己能提高很多呢。。。 其實

原创 【計數】tower

看了題解完全覺得是sb題。。。那麼 = =作爲一個sb題都做不來的。。。 設dp[i] 爲前i 個的方案數,那麼枚舉所有能在上面放i 的積木j,就會對答案帶來dp[i - 1]的貢獻。 #include <cstdio> #incl

原创 【AC自動機】西征羅馬之路

水題再沒有愛了。。。 西征羅馬之路(roma.c/cpp/pas) 2s 128MB 【背景】     一個偶然的機會(niabby出題),Bob穿越到了三國時期,憑藉天時,地利,人和以及修改器,Bob十年就成功統一了大陸版圖。接下來的

原创 【雙Treap】[Scoi2014] bzoj3595 方伯伯的Oj

題目點這裏 原來的題解點這裏 。。Treap+Map寫的。。。 。。然後聽說scoi的評測雞很傲嬌。。。。當場是卡了map的。。。。 所以我就重新寫了雙Treap。。。一個維護編號一個維護排名。。。。。。 叫bzoj比map慢了幾十m

原创 【並查集分塊】Codeforces 475D CGCDSSQ

題目點這裏 bin神說這題和他當年出的一道題差不多TAT 聽了半天終於聽懂了TAT。。。 利用gcd的遞減性 從左往右把一段的gcd和最新的數相同的的放到一個並查集裏去。。 可以證明段數是不會增加的 = = #include <cst

原创 【二分圖匹配】Codeforces 387D George and Interesting Graph

不想寫模板了來水幾篇題解。。。 題目點這裏 最開始窩寫的貪心。。然後就WA了。。 = = 正解是二分圖匹配。。。 首先枚舉中心點。。然後用需要添加的邊加上需要刪除的邊求個最小值就是答案了。。。 設與Center相關的邊數爲A 需要添加

原创 【樹形dp】Codeforces 238C World Eater Brothers

題目點這裏 嗯。。。其實就直接dfs就可以了。。。 就是先枚舉一條邊砍掉 = = 然後呢先計算 u 和 v 的答案。。 然後再dfs一遍修正答案。。。。。 #include <cstdio> #include <iostream>