09 2019 档案
摘要:"Luogu P2345 奶牛集会" 解析 + 先按照奶牛的听力从小到大排序,这样可以保证我们处理第 i 头奶牛时,已经处理过的奶牛都用这头奶牛的听力作为音量基础值 + 然后用两个树状数组分别维护数量和坐标之和,然后处理答案即可,具体看代码 Code cpp include include incl
阅读全文
摘要:"Luogu U72177 火星人plus" 解析 + 康托展开和逆康托展开的模板题 + 时间限制有点难受,线段树由于常数大过不了 Code 线段树(80分) cpp include include include include include define LL long long using
阅读全文
摘要:"Luogu P4392 [BOI2007]Sound 静音问题" 解析 + 挺简单的一道线段树题目,区间长度已经给定,只需用线段树处理区间最大、最小值,然后枚举区间左端点,判断这段区间是否合法即可 Code cpp include include include include include d
阅读全文
摘要:"Luogu P2672 推销员" 解析 + 按照向住户推销产品的疲劳值从大到小排序,然后记录前 i 家用户里最远的那家用户的距离 $ (ms[ ]) $ 以及前 i 家用户所造成的总疲劳值 $ (bef[ ]) $ ,然后处理出第 i 家用户后面贡献疲劳值最大的一家 $ (mbeh[ ]) $ +
阅读全文
摘要:"Luogu P3655 不成熟的梦想家 (未熟DREAMER)" 解析 + 记录差分数组,每次修改差分值即可 + 对被修改的位置先减去它之前的贡献,然后修改它的值,然后加上它之后的贡献 Code 法一(树状数组 $ \Theta (nlogn) $ ) cpp include include in
阅读全文
摘要:"Luogu P5057 [CQOI2006]简单题" 解析 + 简单的用树状数组或线段树处理,每次被修改的区间里的元素 +1 即可,最后判断这个点被修改奇数次还是偶数次即可 Code 法一(树状数组) cpp include include include include include defi
阅读全文
摘要:c_img">
阅读全文
摘要:"Luogu P3801 红色的幻想乡" 解析 + 首先想到暴力解法,开二维数组 e[i][j] 表示 (i,j) 点的状态,e[i][j]=1 表示该点有红雾,e[i][j]=0 则没有红雾,每次修改状态时只需让其 $ \bigoplus 1 $ 即可 + 我们知道每个点若被修改奇数次则它是红雾,
阅读全文
摘要:"Luogu P4122 [USACO17DEC]Blocked Billboard" 解析 + 画图想一想,莫得想复杂咯! Code cpp include include include include include define LL long long using namespace st
阅读全文
摘要:"Luogu P2181 对角线" 解析 + 法一:每 4 个顶点会有一个交点,答案为 $ C_n^4 $ + 法二:递推做差找规律 Code 法一 法二 cpp include include include include include define LL long long using na
阅读全文
摘要:"Luogu P1652 圆" 解析 + 认真读题,注意任意两个圆都相离,而且是画曲线,也就是说只有点在圆内才会需要穿过圆的边界,否则绕过去就可以了 + 注意一种情况,起点和终点都在同一个圆内,那么这个圆可以不需穿过边界 + 判断一个点是否在圆内看它到圆心的距离是否小于半径 Code cpp inc
阅读全文
摘要:"Luogu P2651 添加括号III" 解析 + $ a_1 $ 肯定是分子,$ a_2 $ 肯定是分母,那么尽可能多的是 $ a_3 $ 以后的变为分子 + $ a_1 / ( a_2 / a_3 / a_4 / ... ) = a_1 a_3 a_4 ... / a_2 $,所以我们只要确认
阅读全文
摘要:"手电筒—过桥问题" 四人过桥+一个手电筒 解析 + 考虑图论的方法,以桥的另一边有哪几个人为状态建点,按照规则连边并加上权值,然后从对岸没有人的状态点到四个人都在对岸的状态点跑最短路,最短路长度即为答案 + 我这里的建点和建图都有些麻烦而且不易推广, wyxdrqc 大佬说可以用一个四位二进制数来
阅读全文
摘要:"Luogu P2375 [NOI2014]动物园" 解析 + KMP 的神奇应用 Code
阅读全文
摘要:"Luogu P3435 [POI2006]OKR Periods of Words" 解析 + KMP 中 next 数组的神奇应用 Code include include include include include define LL long long using namespace s
阅读全文
摘要:"Luogu P4391 [BOI2009]Radio Transmission 无线传输" 解析 + KMP找最大循环节的长度 + ans = n next[n] Code
阅读全文
摘要:"Luogu P4555 [国家集训队]最长双回文串" 解析 + 看到回文串,先想 Manacher(马拉车) 算法 + 题目中要求最长双回文串的长度,注意这个双回文串不能有重叠部分,所以我们想到 Manacher 后枚举切断的位置,这个位置只能是 “ ” ,为了防止时间复杂度退化到 $ n^2 $
阅读全文
摘要:"Luogu P1659 [国家集训队]拉拉队排练" 解析 + 题意简单来说就是找所有回文串,按长度从大到小排序后将前K个长度乘起来 + 看到回文串问题,由于我太菜了,只会Manacher算法,所以只能用Manacher来做这道题了 + 注意K的数据范围 1e12,long long !!! + 快
阅读全文
摘要:本文共三道题目,都是 $ AC $ 自动机的模板题 初学AC自动机,AC自动机可以理解为“Trie树上KMP”(所以要先学会Trie树和KMP哦!) "1.Luogu P3808 【模板】AC自动机(简单版)" Code "2.Luogu P3796 【模板】AC自动机(加强版)" Code cpp
阅读全文
摘要:"Luogu P3375 【模板】KMP字符串匹配" Code cpp include include include include include define LL long long using namespace std; const int N=1000005; int n,m,p[N]
阅读全文
摘要:"Luogu P1470 最长前缀 Longest Prefix" 注释 这道题与 "上一篇博客" 的题几乎一样 解析 + 有点麻烦的地方就是字符串的输入 方法一:类dp Code cpp include include include include include define LL long
阅读全文
摘要:"Luogu P2292 [HNOI2004]L语言" 解析 + 看到单词和句子匹配,再看数据范围1M的字符串(长度大约 $ 10^6 $ 级别),所以用Trie树来处理 + 句子是没有标点符号的,所以需要我们自己断句,那么我们先将所有单词加入Trie树,然后让句子在树上匹配,匹配时可不可以匹配完一
阅读全文
摘要:"Luogu P3805 【模板】manacher算法" 初学 $ Manacher $ (马拉车)算法 Manacher算法用于处理回文串问题,可以求出每个字符所在的最长回文串的长度 Code
阅读全文
摘要:本文共三道题目,都算是 $ Trie $ 树的模板题 "1.Libre 10049 Phone List" Code "2.Libre 10050 The XOR Largest Pair" Code cpp include include include include include defin
阅读全文
摘要:"1.Luogu P1908 逆序对" 归并排序 cpp include include include include include include define LL long long using namespace std; const int N=1e5+5; int n,b[N],c[
阅读全文
摘要:Welcome to my blog!!! 本人是位名副其实的蒟蒻,因为实力太差,博客中难免会出现错误,请各位见谅
阅读全文

浙公网安备 33010602011771号