NOIP - 数据结构
文章平均质量分 69
zhuo1ang
这个作者很懒,什么都没留下…
展开
-
最小生成树 || ( BFS && 二分答案) —— 营救
洛谷 1369 营救Code 1 最小生成树解法#include#include#include#include#define epx 10using namespace std;const int MAX_E = 20000 + epx;const int MAX_V = 10000 + epx;struct Edge{ int fm,to,dist;}原创 2017-04-27 14:08:35 · 293 阅读 · 0 评论 -
并查集 - 模板
class DisjointSet {private: int *father, *rank;public: DisjointSet(int size) { father = new int[size]; rank = new int[size]; for (int i = 0; i < size; ++i) {原创 2017-03-23 18:23:18 · 261 阅读 · 0 评论 -
Trie - 模板
#include #include using namespace std;const int SIZE = 26; // 假设只有小写字母,每一个节点下面开 SIZE 个空间const char BASE = 'a'; // 方便减法class TrieNode {public: bool is_terminal; //通过 is_terminal 标记判断这个节点是不原创 2017-04-22 17:57:32 · 170 阅读 · 0 评论 -
USACO - Chapter1 Section 1.3 - Ski Course Design
Ski Course Design原创 2017-05-13 19:03:28 · 247 阅读 · 0 评论 -
Dijkstra - 模板
const int INF = 0x3f3f3f3f;struct Edge { int vertex, weight;};class Graph {private: int n; vector * edges; bool * visited;public: int * dist; Graph (int input_n) {原创 2017-03-23 18:43:22 · 220 阅读 · 0 评论 -
Tarjan - 模板
vector > edges(105);vector > graph(105);int dfn[105], low[105];int vis[105], in_stack[105];int tag[105];int src = 1, cnt = 0;stack st;void init(){ memset(dfn, 0, sizeof(dfn)); memset(low,原创 2017-04-06 20:12:27 · 268 阅读 · 0 评论 -
Tarjan - 计蒜客 - 商业信息共享
有 NN 个公司,从每个公司都能单向的向另外一个公司分享最新商业信息,因为他们之间有着某种合作,你需要解决两个问题:现在有一个最新的商业信息,至少需要告诉多少个公司,使得所有的公司最终都能得到该信息。在原有基础上,至少需要再让多少对公司建立这种合作,使任意一个公司获得某个最新商业信息后,经过若干次分享,所有的公司最终都能得到该信息。输入格式第一行输入一个整数 NN (1\leq N\leq 100原创 2017-04-06 20:04:51 · 387 阅读 · 0 评论 -
欧拉回路 - 概念分析
概述:若图 GG 中存在这样一条路径,使得它恰通过 GG 中每条边一次,则称该路径为欧拉路径。若该路径是一个环路,则称为欧拉 (Euler) 回路。具有欧拉回路的图称称为欧拉图(简称 EE 图)。具有欧拉路径但不具有欧拉回路的图称为半欧拉图。判断:无向图存在欧拉回路的充要条件:当且仅当该图所有顶点度数都为偶数,且该图是连通图,则该转载 2017-04-07 21:33:09 · 385 阅读 · 0 评论 -
树状数组 BIT - 模板
树状数组(Binary Indexed Tree(BIT), Fenwick Tree) 是一个查询和修改的复杂度都为 log(n)log(n) 的数据结构。#include#include#include#includeusing namespace std;int n,m,a[500009],c[500009],x,y,t;int comma原创 2017-04-13 21:39:24 · 255 阅读 · 0 评论 -
Prim - 模板
const int INF = 0x3f3f3f3f;struct Edge { int vertex, weight;};class Graph {private: int n; bool * visited; vector * edges;public: int * dist; Graph (int input_n) {原创 2017-03-23 18:36:38 · 289 阅读 · 0 评论 -
SPFA 最短路 —— POJ 1062 昂贵的聘礼
昂贵的聘礼Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 48267 Accepted: 14396Description年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给原创 2017-04-04 20:10:06 · 293 阅读 · 0 评论 -
SPFA - 模板
bool spfa(int s){ memset(cnt, 0, sizeof(cnt)); memset(d, 0x3f, sizeof(d)); memset(vis, 0, sizeof(vis)); queue q; q.push(s); vis[s] = true; cnt[s]++; d[s] = 0; while (!q.empty()) { int te原创 2017-04-02 10:31:34 · 339 阅读 · 0 评论 -
DAG上的动态规划 - 算法竞赛入门经典 - 嵌套矩形问题
#include#includeusing namespace std;int n; // 矩形个数bool edges[1001][1001]; // 保存抽象出来的边集合int arc[1001][2]; // 保存读入的矩形数据int length[1001]; // 从矩形某一点出发得到的路径长度int max(int a, int b){原创 2017-03-27 19:27:47 · 641 阅读 · 0 评论 -
LCA 问题的倍增解法
洛谷 P3379 lca 模板题#include#include#include#include#includeusing namespace std;int n,m,r,a,b;int deep[500005],fa[500005],f[500005][35];bool vis[500005];vector > v(500005); void dfs原创 2017-08-07 11:22:54 · 230 阅读 · 0 评论