随笔分类 - 算法----------
摘要:敌兵布阵 HDU - 1166 多组输入,注意清除tr数组 维护一个前缀数组,耗时有点大 #include <cstdio> #include <cstring> using namespace std; const int maxn = 5e4 + 5; int t, n; int sum[max
阅读全文
摘要:题目描述 如题,已知一个数列,你需要进行下面两种操作: 将某区间每一个数加上 k。 求出某区间每一个数的和。 输入格式 第一行包含两个整数 n,,m,分别表示该数列数字的个数和操作的总个数。 第二行包含 n 个用空格分隔的整数,其中第 ii 个数字表示数列第 i 项的初始值。 接下来 m 行每行包含
阅读全文
摘要:During the Warring States Period of ancient China(476 BC to 221 BC), there were seven kingdoms in China they were Qi, Chu, Yan, Han, Zhao, Wei and Qin
阅读全文
摘要:The Cow Prom POJ - 3180 题意: 奶牛圆舞:N头牛,M条有向绳子,能组成几个歌舞团(团内奶牛数 n >= 2)?要求顺时针逆时针都能带动舞团内所有牛。 分析: 所谓能带动,就是舞团构成一个强连通分量,就是赤裸裸的SCC。 代码实现:很好的一道题,有利于理解 korasaju 算
阅读全文
摘要:P1379 八数码难题 题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最少步骤的移动方法,实
阅读全文
摘要:POJ 1236 Network of Schools 校园网:给定N所学校和网络,目标是分发软件其他学校都可收到,求①所需最少分发学校数;②若任选学校都能收到,最低新增边数。 思路:同一个强连通分量内的顶点合并为一个,在这个DAG上计算出度和入度。①其实是求入度为0的顶点数,②则是求0出度和0
阅读全文
摘要:本文由labuladong原创,本博文仅作为知识点学习,不会用于任何商业用途! 动态规划技巧对于算法效率的提升非常可观,一般来说都能把指数级和阶乘级时间复杂度的算法优化成 O(N^2),堪称算法界的二向箔,把各路魑魅魍魉统统打成二次元。 但是,动态规划本身也是可以进行阶段性优化的,比如说我们常听说的
阅读全文
摘要:kuangbin专题链接:https://vjudge.net/article/752 kuangbin专题十二 基础DP1 题解+总结:https://www.cnblogs.com/RioTian/p/13110438.html 最小生成算法 介绍 和 模板 次最小生成树:介绍及模板 总结: 文
阅读全文
摘要:思路 关于次小生成树,首先求出最小生成树,然后枚举每条不在最小生成树上的边(在原本的节点上添加一个vis属性进行判断即可),并把这条边放到最小生成树上面,然后就一定会形成环,那么我们在这条环路中取出一条(除了新加入的那一条边)最长的路(这里可以用d[u][v]来维护)。最终得到的权值就是次小生成树的
阅读全文
摘要:关于最小生成树的话,其实很早之前就接触了,当时也写了一篇关于最小生成树的文章,但一直没有好好刷题。 接下来几天会持续更新维护KB-最小生成树专题 最小生成树的算法没有其他算法那么复杂,算法思想比较简单,代码也比较容易。 常见的最小生成树算法由Kruskal算法和Prim算法。 1.Kruskal算法
阅读全文
摘要:一、内容 You have just moved from a quiet Waterloo neighbourhood to a big, noisy city. Instead of getting to ride your bike to school every day, you now g
阅读全文
摘要:定义 边有向,无环。 英文名叫 Directed Acyclic Graph,缩写是 DAG。 性质 能 拓扑排序 的图,一定是有向无环图; 如果有环,那么环上的任意两个节点在任意序列中都不满足条件了。 有向无环图,一定能拓扑排序; (归纳法)假设节点数不超过 \(k\) 的 有向无环图都能拓扑排序
阅读全文
摘要:在 OI 中,想要对图进行操作,就需要先学习图的存储方式。 约定 在本文中,用 \(n\) 代指图的点数,用 \(m\) 代指图的边数,用 \(d^+(u)\) 代指点 \(u\) 的出度,即以 \(u\) 为出发点的边数。 直接存边 方法 使用一个数组来存边,数组中的每个元素都包含一条边的起点与终
阅读全文
摘要:POJ 3259 http://poj.org/problem?id=3259 题意: 农夫 FJ 有 N 块田地【编号 1...n】 (1<=N<=500) 田地间有 M 条路径 【双向】(1<= M ⇐ 2500) 同时有 W 个孔洞,可以回到以前的一个时间点【单向】(1<= W ⇐200) 问
阅读全文
摘要:试除法判定质数 bool is_prime(int x) { if (x < 2) return false; for (int i = 2; i <= x / i; i ++ ) if (x % i == 0) return false; return true; } 试除法分解质因数 void
阅读全文
摘要:树与图的存储 树是一种特殊的图,与图的存储方式相同。 对于无向图中的边ab,存储两条有向边a->b, b->a。 因此我们可以只考虑有向图的存储。 (1) 邻接矩阵:$g[a][b] $存储边a->b (2) 邻接表: // 对于每个点k,开一个单链表,存储k所有可以走到的点。h[k]存储这个单链表
阅读全文
摘要:KMP —— 模板 // s[]是长文本,p[]是模式串,n是s的长度,m是p的长度 求模式串的Next数组: for (int i = 2, j = 0; i <= m; i ++ ){ while (j && p[i] != p[j + 1]) j = ne[j]; if (p[i] == p[
阅读全文
摘要:快速排序算法模板 —— 模板题 AcWing 785. 快速排序 void quick_sort(int q[], int l, int r){ if (l >= r) return; int i = l - 1, j = r + 1, x = q[l + r >> 1]; while (i < j
阅读全文

浙公网安备 33010602011771号