
acm散篇填充
castomere
与君论心握君手,荣辱于余亦何有
展开
-
回文自动机题解
HYSBZ - 3676题意:考虑一个只包含小写拉丁字母的字符串s。我们定义s的一个子串t的“出现值”为t在s中的出现次数乘以t的长度。请你求出s的所有回文子串中的最大出现值。分析:直接用rcnt[] 数组和 len[] 数组 作乘法 取MAX 即可#include <cstdio>#include <cstdlib>#include <cs...原创 2019-08-26 17:10:14 · 251 阅读 · 0 评论 -
结构体运算符重载
我们可以把 结构体 放优先队列中 实现 l自动排序操作struct node{ int x , y; string ss; friend bool operator < (node a , node b) { if(a.x != b.x) return a.x < b.x; else if(a.y != b.y) ...原创 2019-05-17 19:19:58 · 407 阅读 · 0 评论 -
质因数的性质(美登杯”上海市高校大学生程序设计邀请赛 (华东理工大学) E题)
分解一个在 N范围内 的数 的 质因数我们首先想到的是把 N 范围内 的所有素数O(N)的筛选出来,然后while跑质数表,来达到加速查找的目的。但是现在 我们可以发现 , 一个数X , 它的质因数 肯定在 sqrt(X)内是 最多的 令 Y = sqrt(X) , 假设 Y现在是一个质数 , 那么 后面明显就不会有 X的质因数 , 所以 我们进行分解质因数的时候,可以只筛...原创 2019-05-19 17:14:51 · 281 阅读 · 0 评论 -
Spfa算法
Spfa算法今天又写了一遍Spfa , 感觉又熟悉了一次,怕忘了就写篇博客。先贴篇Spfa的版子,多用就记住了。<strong>#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<queue>#incl...原创 2018-05-23 21:13:13 · 169 阅读 · 0 评论 -
链式前向星建图
这是链式前向星的结构体写法其实就只一个cnt当作边标记的 方法,每个点的所有边之间加了点联系。加了点注释,感觉有助于帮助理解#include <cstdio>#include <cstdlib>#include <cstring>#include <string>#include <iostream>#includ...原创 2018-05-23 21:32:50 · 1141 阅读 · 0 评论 -
素数和质因数的一些东西
#include<bits/stdc++.h>using namespace std;typedef long long LL;const int Maxn = 1e8 + 7;const int Inf = 1e9 + 7;int N , M;int vis[Maxn] , prime[Maxn];int main(){ //素数筛选两种方式 //普通筛选素数...原创 2018-09-03 23:16:53 · 240 阅读 · 0 评论 -
树形DP个人分析(CodeForces - 1084D)
树形DP 尽量详细,题意是每个城市都有一个Wi油的数量,给出了一些道路将N个城市形成一个无根树,每条道路有不同的耗油量从任意一个城市x 到 任意一个城市y,在起始点 x 直接加 Wx 的汽油,到 y 城市最多能有多少汽油剩余量。之前遇见无根树题目总是发懵,因为当dfs查找的时候,这个点不是查找路径的上游点,就不会对以它为转折点的权值更新。在求 树的直径 问题时规避了这个问...原创 2019-01-23 13:15:31 · 201 阅读 · 0 评论 -
Dfs搜索树(Codeforces 1006E)
算是很水很裸的一道 dfs树上搜索原本是想记录 每个点的 子节点 所包含的 点集分支内 有多少个点如果结果在这个范围内,就搜索这个树枝,这样就是一条线路 的查询 平均查询复杂度为 O(log(n))然后完整复杂度为 n*logn ,估计数据出了那种一条直线的树,就T了,改用下面的方法就过了。先根遍历的节点记录每个点都有它的子节点记录每个点(算上这个点)的子图 ...原创 2019-01-25 12:45:23 · 521 阅读 · 1 评论 -
POJ - 3264(一个倔强的线段树男人)
虽然听说这是一道RMQ裸题,但是作为一个男人就要接受挑战。(其实是想记住这一种预处理的方式,否则也不会记录这么个RMQ裸题)证明线段树确实能搞定它本题就是求L,R内 最长 连续 相同数字 的长度因为线段树能做区间max,min,和sum进行O(3 * N)的预处理就可以直接O(lgN)查询了第一步把每段连续区间的最后一位(我们命名为计数点)记录这段连续区间长度第二步...原创 2019-01-25 19:27:32 · 222 阅读 · 2 评论 -
bellman-ford最短路(poj 1860判正环)
题意就是 现在有N种货币 , 你有其中一种S , 和这种S货币的数量WM行,每行都是其中一个城市 可以相互兑换的两种货币 A && B ,正汇率Rab, 正汇率兑换费Cab , 反贿赂Rba , 反贿赂兑换费Cba问 能不能最后换回 货币S 的时候,钱数比原来多(其实就是类似老电视剧里的倒爷,或者买卖黄金赚钱)一开始没想到就是判断正环,就是任意一种货币在 兑...原创 2019-01-27 21:05:39 · 148 阅读 · 0 评论 -
后缀自动机(探索)Codeforces 427D
想学后缀自动机的 弱鸡 表示真自闭啊开局一道题,内容全靠水 :Codeforces 427D有题目才能更好地学 算法题意很简单 :给两个字符串,求最短公共子串 的长度后缀自动机 模板很多 ,给了各种写法 , 匡斌的版本 , 一个俄罗斯人的版本 , clj的版本 ,还有一种全数组(不用结构体)的版本可真是太开心了(???我一个小白,到底哪个好理解??)● 如果你是一个...原创 2019-01-31 17:27:55 · 277 阅读 · 0 评论 -
字符串最小表示法
int n = strlen(s+1);for(int i = 1; i <= n; i++) s[n+i] = s[i];int i = 1, j = 2, k;while(i <= n && j <= n){ for(k = 0; k <= n && s[i+k] == s[j+k]; k++); if(k == ...转载 2019-04-03 14:00:56 · 179 阅读 · 2 评论 -
双重祖先(DFS序的应用)
题面Dfs序 可以让我们在 线性的数组内 处理树上的子树等问题所以我们只需要给第一个树 建立DFS序,然后用线段树(或者树状数组)维护一下就好了样例第一棵树的DFS序我们只需要计算第二颗树上,每个点的祖先中,哪些是第一棵树 此节点 也拥有相同祖先的个数。第二颗树直接查询 节点 3 的祖先 里 哪些 也是第一棵树的祖先用线段树1.对...原创 2019-04-19 16:40:07 · 522 阅读 · 2 评论