04 2019 档案

摘要:https://blog.csdn.net/nka_kun/article/details/81902421 阅读全文
posted @ 2019-04-30 14:17 羊肉汤泡煎饼 阅读(119) 评论(0) 推荐(0)
摘要:可以發現每個點經過次數恰好等於這個點的度數,所以把點權下放邊權,跑最小生成樹,原來邊權乘二在加上兩端點權,答案再加一遍起點最小點權 阅读全文
posted @ 2019-04-30 13:19 羊肉汤泡煎饼 阅读(123) 评论(0) 推荐(0)
摘要:思路来自题解 作者: Red_w1nE 更新时间: 2016-11-13 20:46 在Ta的博客查看 72 最近有点忙 没时间贴代码了== 【分析】 首先,把A和B两个序列分别从小到大排序,变成两个有序队列。这样,从A和B中各任取一个数相加得到N^2个和,可以把这些和看成形成了n个有序表/队列: 阅读全文
posted @ 2019-04-26 21:03 羊肉汤泡煎饼 阅读(131) 评论(0) 推荐(0)
摘要:首先理解这里的美味值相当于给你更多时间让你经过这个草垛的, 也就是在经过草垛时可以给你的时间减少w[i],这样能否比最短路不慢 然而我们并不容易知道怎么走才是最好的,所以要想办法避免找这个方案 我们新建一个点,向每个草垛连一个边权为 d[u]-w[u] 的有向边,从这个点跑一次最短路 效果就相当于求 阅读全文
posted @ 2019-04-25 22:05 羊肉汤泡煎饼 阅读(180) 评论(0) 推荐(0)
摘要:好像是个不需要vis数组的次短路,跑到收敛,然而给我脑袋弄炸了......到现在还没懂.......究竟次短路应该怎么求a...... 抄题解: 阅读全文
posted @ 2019-04-25 21:25 羊肉汤泡煎饼 阅读(142) 评论(0) 推荐(0)
摘要:一开始想着最短路时统计一下到每个点的牛数量,但是没写出来 建最短路树是个不错的想法,正常跑一次最短路,枚举每个点的前驱,如果d[y]==d[x]+w就是树上的一条边,优先连编号小的, 建好树以后做一次dfs,枚举一下每个点的贡献取个最大值即可 阅读全文
posted @ 2019-04-25 20:25 羊肉汤泡煎饼 阅读(180) 评论(0) 推荐(0)
摘要:有一点乱搞吧......对人对背包的理解有些考验,要想知道去掉某个点的值,可以选择对前缀求一次背包,后缀求一次背包,而且不省掉价钱那一维, 这样每个点就可以由前后组合成了,枚举一下价钱取max即可 直接01的多重背包就可以过 阅读全文
posted @ 2019-04-25 18:39 羊肉汤泡煎饼 阅读(123) 评论(0) 推荐(0)
摘要:清明講過一道類似的,難度略大的:P3545 [POI2012]HUR-Warehouse Store 兩道題類似,都是暫時先把前面的加進候選集合里,如果超出限制的話就拿現在這個和前面的交換, 相當於不選前面那個選當前這個,應該是比較好的思想 這道題還有一個就是如果最優解要你走到那個點,那麼中間的路程 阅读全文
posted @ 2019-04-24 18:24 羊肉汤泡煎饼 阅读(134) 评论(0) 推荐(0)
摘要:hack: 4 4 1 2 10000 2 3 10000 3 4 10000 1 4 10000 答案:13 不能邊最短路邊取模,因為取模后最大值不一定為原來最大值,所以利用log(m*n)=logm+logn 把邊權取log跑最短路,記錄路徑,最後邊乘邊取模 阅读全文
posted @ 2019-04-23 21:42 羊肉汤泡煎饼 阅读(134) 评论(0) 推荐(0)
摘要:比較簡單的單調隊列,但是有一些要注意的 維護單調隊列的時候裡面存的是入隊時間,而不是i,因為前面有l個沒有入隊(不可能走進),所以把i减一个l以达到延迟入队的效果 阅读全文
posted @ 2019-04-23 20:02 羊肉汤泡煎饼 阅读(106) 评论(0) 推荐(0)
摘要:d長度內區間最大值,單調隊列維護即可 由於需要滿足左右同時有2倍高度的牛才能更新答案,所以正反跑兩次 阅读全文
posted @ 2019-04-23 18:52 羊肉汤泡煎饼 阅读(108) 评论(0) 推荐(0)
摘要:P1917 -- 探险 时间限制:1000MS 内存限制:131072KB 题目描述(explore.cpp) π+e去遗迹探险,遗迹里有 N 个宝箱,有的装满了珠宝,有的装着废品。 π+e手上有 n+e的地图,所以他知道每一个宝箱的价值,但是他不喜欢走回头路,所以要按顺序拿这 N 个宝箱中的若干个 阅读全文
posted @ 2019-04-23 17:56 羊肉汤泡煎饼 阅读(177) 评论(0) 推荐(0)
摘要:P2616 --出题人大战工作人员 时间限制:1000MS 内存限制:131072KB 路 无 无 题目描述(fight.cpp) 邪恶的出题人在NOIP 夏令营的图论专场里出了一道丧题,他想要让可爱的小朋友们都被题目虐得惨惨的~ 这道题目是这个样子的: “小A拥有一个超大型的煤__________ 阅读全文
posted @ 2019-04-22 18:50 羊肉汤泡煎饼 阅读(226) 评论(0) 推荐(0)
摘要:P2510 -- The Number of Points in Shortest Path 时间限制:1000MS 内存限制:131072KB路 无 无 题目描述(points.cpp) 一张图有n个点,由m条带权无向边构成。对于两个点a,b你需要求出所有可能出现在a,b间最短路径上的点(包括a, 阅读全文
posted @ 2019-04-22 17:34 羊肉汤泡煎饼 阅读(288) 评论(0) 推荐(0)
摘要:首先要知道不能跑最短路,因為只有整2^k才能一秒到達,和倍增有關 所以我們想知道任意兩點間能否存在一條2^k長度的路徑,數據很小,可以考慮floyd 把倍增和floyd結合起來考慮發現如果i到k,k到j各有一條2^(k-1長的路徑,那麼i,j之間存在一條2^k長度的路徑 於是在更新一下實際時間,對時 阅读全文
posted @ 2019-04-19 21:25 羊肉汤泡煎饼 阅读(142) 评论(0) 推荐(0)
摘要:一道好題不出所料又抄的題解 1.首先對於這張圖肯定要考慮走哪些邊不走哪些邊,發現我們想要的肯定那些邊權最大的邊,所以想到最大生成樹 這樣能保證選到盡量大的邊 2.跑完最大生成樹后每兩點之間就有唯一路徑了,想要知道兩點間最小邊權,可以在LCA過程中求出(我竟然不會LCA),對lca做些許改動 阅读全文
posted @ 2019-04-19 20:27 羊肉汤泡煎饼 阅读(149) 评论(0) 推荐(0)
摘要:首先考虑最小生成树的模型,唯一不同的是第二种情形。 即“三个或三个以上的城市申请修建的公路成环” 考虑该情形,因为修路的申请是申请离它最近的城市,所以上述条件实质上为 “存在三个或三个以上的城市,他们两两间的最近城市连起来成环” 而题目保证有唯一解,所以第二种不存在 double的5000*5000 阅读全文
posted @ 2019-04-19 19:47 羊肉汤泡煎饼 阅读(103) 评论(0) 推荐(0)
摘要:果然又抄的題解... 顯然答案具有單調性,而對于平均數計算的式子我們移一下項, 若s[l..r]>mid*(r-l+1)无解, 於是我們把每個數都減去一個mid,看和的正負即可,如果為正就可能有更大的平均數, 求子串和最大值可以用單調隊列維護, 阅读全文
posted @ 2019-04-18 21:29 羊肉汤泡煎饼 阅读(148) 评论(0) 推荐(0)
摘要:大水題然而因為智障的錯誤调了半天......n,m别反着输入啊......內外循環和狀態數都不等價 别的就是記錄一下每一行不可行的點,也狀壓一下,dp的時候判一下即可 阅读全文
posted @ 2019-04-18 21:20 羊肉汤泡煎饼 阅读(135) 评论(0) 推荐(0)
摘要:對於每個強聯通分量,這些牛一定都互相喜歡,所以縮點(我也不知道怎麼想到的) 接下來就是統計答案,最後縮成了一個DAG圖,如果這個點是明星的話,其他每個點一定直接或間接的鏈接這個點 也就是說其他點一定有出度,把關係傳遞給其他點了,如果某個點沒有出度,那麼這個點沒有傳遞出他們的愛慕關係, 如果存在多個這 阅读全文
posted @ 2019-04-18 18:28 羊肉汤泡煎饼 阅读(131) 评论(0) 推荐(0)
摘要:雖然是裸題但是仍然沒有看出來...... 1.每個人都對應一張床(可以的話),這樣把人和床看成點,對應關係就是邊,跑最大匹配看匹配數量夠不夠即可 2.連邊條件:如果一個學生且不回家,那麼他可以睡自己的床,向自己的床連邊 如果外來人且認識一個回家學生,那麼他可以睡學生的床,向學生的床連邊 阅读全文
posted @ 2019-04-17 17:56 羊肉汤泡煎饼 阅读(133) 评论(0) 推荐(0)
摘要:是一道歐拉路的題竟然沒看出來...... 把每種顏色看成一個點,每根木棍看成一個邊,即相同顏色在圖中接好合併成了一個點, 問題轉化為了求是否存在歐拉路 如果用map會超時,所以可以用字典樹實現離散化/哈希,unordered_map需要c++11 注意判斷圖是否聯通,用并查集即可 阅读全文
posted @ 2019-04-17 17:31 羊肉汤泡煎饼 阅读(119) 评论(0) 推荐(0)
摘要:今天被老師留的作業搞死了,全是裸的水題,難題就那麼兩道我還沒寫......,狗屎 1.倒序處理,每個點至多會被更新一次 2.所以要做的就是快速找到下一個不同顏色的點, 3.然而不知道怎麼就 想到用并查集維護 了?用雙向鏈錶不是更自然碼(雖然也可以) 4.其實并查集就是把相鄰的相同顏色的點并成一個,直 阅读全文
posted @ 2019-04-16 22:01 羊肉汤泡煎饼 阅读(114) 评论(0) 推荐(0)
摘要:很簡單的水題,因為智障沒有A所以發篇博客 同樣的題:luogu_P1455 搭配購買 用并查集維護一下所有實力相等的人的size,然而你可以選多個size......,於是跑個背包就行了,只要注意一下背包空間2m就完了 阅读全文
posted @ 2019-04-16 19:53 羊肉汤泡煎饼 阅读(100) 评论(0) 推荐(0)
摘要:又來水題了...... 1.并查集: 我們想要盡量讓衝突值大的罪犯分到不同的監獄,所以自然按邊權排序 至於維護他們之間的關係,我們用帶擴展域的并查集 如果現在處理的兩個罪犯在同一監獄了,那麼他們一定是被迫安排的(為了避免更大的衝突值),所以這個衝突值一定是最小的 如果沒有的話,那麼就互相把對方加入自 阅读全文
posted @ 2019-04-16 17:59 羊肉汤泡煎饼 阅读(114) 评论(0) 推荐(0)
摘要:好久以前抄的題解,現在重新抄題解做一下 1.對所有木棍從大到小排序,後用小的比較靈活 2.限制加入的木棍單調遞減,因為先/后用長/短木棍等價,反正就是那兩根 3.預處理出重複木棍的位置,防止重複搜索相同的木棍 4.二分查找下一根小於等於未拼木棍長度的木棍 5.因為是從小到大枚舉原木棍長度,所以第一次 阅读全文
posted @ 2019-04-15 22:49 羊肉汤泡煎饼 阅读(107) 评论(0) 推荐(0)
摘要:1.無權圖最短路邊權為1 2.如果兩個點恰好不能被更新(d[y]==d[x]+1)那麼就能通過x的所有最短路到達y,所以ans[y]+=ans[x] 3.如果兩個點不能恰好被更新(d[y]>d[x]+1)那麼到達y的最短路目前只有通過x到達,所以ans[y]=ans[x] 阅读全文
posted @ 2019-04-15 21:32 羊肉汤泡煎饼 阅读(130) 评论(0) 推荐(0)
摘要:考试抄书(日常) P2038 -- 小叶子的故事之写代码 时间限制:1000MS 内存限制:131072KB 题目描述(correct.cpp) 小叶子要写一道砍手题,要写N个函数。小叶子作为一名强迫症患者,喜欢按从上到下的顺序写函数,他会在写代码之前给要写的函数排个顺序依次完成。现在小叶子给你M个 阅读全文
posted @ 2019-04-13 21:46 羊肉汤泡煎饼 阅读(241) 评论(0) 推荐(0)
摘要:一道好題,然而看題解做的...... floyed的實質:只經過前k個點i到j的最短路,原狀態轉移方程為 f [ k ] [ i ] [ j ]=min( f[ k-1 ] [ i ] [ j ],f[ k-1 ] [ i ] [ k ]+f [ k-1 ] [ k ] [ j ] ) 這樣壓掉一維 阅读全文
posted @ 2019-04-13 18:54 羊肉汤泡煎饼 阅读(98) 评论(0) 推荐(0)
摘要:看到最大的最小值應該想到二分答案,這樣就解決了最小點權的問題,判血量就很好說,直接比較就行, 一個點是二分點權數組,複製一份然後排序,二分下標,速度較快 這麼簡單的題我竟然寫了這麼長時間 阅读全文
posted @ 2019-04-12 20:35 羊肉汤泡煎饼 阅读(131) 评论(0) 推荐(0)
摘要:tarjan最重要的之一應該就是dfn和low兩個數組吧,這裡判割邊和割點都是根據的這兩個數組 這裡的思路來自李煜東算法競賽進階指南,好像還有一些其他寫法,但是自己比較菜不會...... 注意這裡的寫法cnt(邊的編號)要初始化為1 一、割邊 對於割邊的判定,需要: 搜索樹上存在一個x的子節點y要滿 阅读全文
posted @ 2019-04-12 17:49 羊肉汤泡煎饼 阅读(95) 评论(0) 推荐(0)
摘要:這麼簡單的算法現在才學...... https://segmentfault.com/a/1190000008484167?utm_source=tag-newest#articleHeader3 https://www.cnblogs.com/grandyang/p/4475985.html 1. 阅读全文
posted @ 2019-04-12 16:39 羊肉汤泡煎饼 阅读(78) 评论(0) 推荐(0)
摘要:簡單的區間dp,結果竟然寫掛了......還掛的很徹底......狗屎 如果區間左右端點相等,那麼不需要在多花一次去刷,對 f [ i+1 ] [ j ],f [ i ] [ j-1 ]取個min, 然後枚舉斷點k,直接就是左右區間相加,(簡單吧......) 阅读全文
posted @ 2019-04-11 21:56 羊肉汤泡煎饼 阅读(92) 评论(0) 推荐(0)
摘要:搜索:https://www.cnblogs.com/SiriusRen/p/6532506.html?tdsourcetag=s_pctim_aiomsg 來自 SiriusRen 數據範圍小,考慮直接dfs,剪枝:到達此層如果用時更長就不再搜了, 然而我有一個問題就是到達每層手柄的狀態並不一樣, 阅读全文
posted @ 2019-04-11 21:48 羊肉汤泡煎饼 阅读(135) 评论(0) 推荐(0)
摘要:其實把update看懂就很好說了,沒什麼特別難理解的 luogu_P4513小白逛公園 阅读全文
posted @ 2019-04-11 21:10 羊肉汤泡煎饼 阅读(110) 评论(0) 推荐(0)
摘要:好久沒有話多了,是覺得有點浪費時間,今天考試和一中用的一樣的題,結果反而考得不好,不過Jackpei一句知恥而後勇點醒夢中人偷偷@Jackpei 就是這樣吧 還有我極度懷疑我的鍵帽打油了......我買了假的PBT還是我的手實在是太油了...... 強制在線,因為不等關係沒有傳遞性,於是用set維護 阅读全文
posted @ 2019-04-11 00:06 羊肉汤泡煎饼 阅读(102) 评论(0) 推荐(0)
摘要:数学期望dp,题面第一次见很吓人,然而从CCF语翻译成人话就简单多了, 开始一般会想到用 f [ i ] [ j ]表示前 i 个课程申请 j 次的期望,然而其实会发现转移的时候还和上一次的情况有关(有某概率取上一次某种情况) 所以用 f [ i ] [ j ] [ 0/1 ]记录这次申请与否,然后 阅读全文
posted @ 2019-04-09 21:56 羊肉汤泡煎饼 阅读(187) 评论(1) 推荐(0)
摘要:调了半天,发现这个写法确实极易错...... 对于每列都维护一个单调队列记录最大最小值,这样一次操作后就把最大最小值压到了一维, 然后再对这一行维护一个单调队列,每次更新ans值,然而对于数组和队列下标的访问极易搞错 阅读全文
posted @ 2019-04-07 18:59 羊肉汤泡煎饼 阅读(136) 评论(0) 推荐(0)
摘要:https://www.cnblogs.com/fengzhiyuan/p/7588443.html 不会map,有点菜 1.要想知道三个字母出现次数相等, 为J [ i ]-J [ j ]== O[ i ]-O[ j ] == I [ i ]- I [ j ],移项得 J[ i ]-O[ i ]= 阅读全文
posted @ 2019-04-06 22:41 羊肉汤泡煎饼 阅读(171) 评论(0) 推荐(0)
摘要:小数据版本P3146,可以区间dp, 性质:对于一个区间如果能合并成一个数,那么这个数是确定的 理解:把每个数看做 2^x 的形式,那么如果合并:2^x + 2^x =2^(x+1) 所以 f [ i ] [ j ] 表示 i 到 j 能合并成的数x,不能合并成一个数则为-1 { x (f [ i 阅读全文
posted @ 2019-04-06 13:06 羊肉汤泡煎饼 阅读(127) 评论(0) 推荐(0)
摘要:懶得寫前言 板題:luogu P2731 1.可能是歐拉路和歐拉迴路相套,但是歐拉迴路可以看成一個點,所以無所謂 2.據題解中說求路徑的問題回溯時記錄結果倒序輸出比較穩妥,一定是符合條件的 3.這道題好像應該記錄點的最大和最小值,不過不記最小也能過 阅读全文
posted @ 2019-04-04 20:52 羊肉汤泡煎饼 阅读(153) 评论(0) 推荐(0)