01 2019 档案
摘要:vimvim 不得不说vim是真的毒瘤。 怪不得别人都说vim上手难,现在看来果真是这样。 vim的难点是几个模式的切换,还有快捷键的多以及插件和自己配置的多。其中有简单的也有难的。 现将自己的vim配置打上 " 半透明 if executable("vimtweak.dll") autocm
阅读全文
摘要:马拉车 Manacher算法是用来O(n)求解最长回文串长度或输出最长长度的一个由manacher发明的一个快速高效的算法。 BruteForce 改题目的暴力算法还是比较好想的,求出该串的所有子串,然后将每个串O(n2)的算法来判断是否回文,这样就可以求出最大回文
阅读全文
摘要:模拟退火(SA)和随机化贪心 物理上的模拟退火 固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。 启发 根据物理上的模拟退火,我们可以吸取一些经验,采用模拟退火
阅读全文
摘要:"题目" 此题主要是考察二分图匹配,而二分图匹配最主要的就是建图,而图一般都是要分成两个部分来分,比如该题就需要先将在学校住的人和床连在一起,因为在学校住就会与一个床。然后每两个人之间假如他们相互认识就可以相互连边,这样就可以通过人人相连实现人床相连。 Code c++ include incl
阅读全文
摘要:"题目" 这个题考察二进制分解。 Code c++ include pragma GCC optimize(2) pragma GCC optimize(3) using namespace std; long long n, data[100010], cnt; int main() { sc
阅读全文
摘要:"题目" 这个题是一个名副其实的考验细节和头脑清醒的一个题。 根据提议我们可以进行分类讨论。 我们用优先队列来模拟CPU,我们可以用在线的算法来写,每次输入一个进程都要判断这个进程是否可以挤掉优先队列里的进程,当可以挤掉时就可以换下一个进程了,我们可以把最大的挤掉,其余就都可以挤掉了,而如果该进程挤
阅读全文
摘要:"题目" 不得不说这个题非常毒瘤。 简化题意 这个题的暴力还是非常好想的,完全可以过50%的数据。但是100%就很难想了。 因为数据很大,所以我们需要用O(√n)的时间求出每个时间的前面第一个跟它满足均衡区间的时间。 此时我们会很快速的想到Hash或Map,他们的时
阅读全文
摘要:"题目" 这个题可以说是一个很基础偏中等的DP了,很像NOIpD1T2的难度,所以这个题是很好想的。 简化题意 可以先简化一下题意,这个题由于从上面向下调和从下向上爬都是一样的,所以我们就可以轻松的想到暴力的方法。 设dp[i][j]表示i编号的树的j高度从一开始跳最多能吃多少柿子,每次
阅读全文
摘要:打井 "题目" 该题是一个最小生成树的好题,但是比起一般的最小生成树来说他不仅仅有各个井相连,而且还要和地下水相连,所以地下水我们也可以看成一口井。 代码 cpp include using namespace std; struct edge { int a, b, c; }e[100100];
阅读全文
摘要:"题目" 这个题非常毒瘤,只要还是体现在其思维难度上,因为要停留的车站的等级一定要大于不停留的车站的等级,因此我们可以从不停留的车站向停留的车站进行连边,然后从入度为0的点即不停留的点全都入队,然后拓扑排序即可 代码 c++ include pragma GCC optimize(2) pragma
阅读全文