- 博客(12)
- 收藏
- 关注
原创 Code Feat UVA 11754(记录美好时刻)
记录这个麻烦的数论题 用的是中国剩余定理(一个数除以Xi的余数为Yi(i >= 0)得到最小值 ) 中国剩余定理 //n个方程: x = a[i](mod m[i]) (0 <= i < n) ll china(int n, int *a, int *m) { ll M = 1, d, y, x = 0; for (int i = 1; i <= n; i+...
2019-12-04 17:15:34 127
原创 Parking Lot题解
一道线段树区间合并,一开始本小白并不会写,看了大佬的题解后才写出来。 传送门(Codeforces 46D) 思路:这道题的精髓在于最开始建树时,多加一个b和f,这样我们就很好停车了(大家可以自己仔细思考一下),当我们这样建好树之后就是一个很经典的区间合并了。 #include <iostream> #include <cstdio> #include <cstri...
2019-08-18 20:49:56 384
原创 线段树
线段树是树状数组的升级版,线段树等于把一个[l,r]的区间,分成很多个小区间,这样方便我们查找一段区间内的信息,不用暴力去跑一遍。 线段树的存储结构: 首先是最基本的建树(用的是递归): (求一段区间的和) void pushup(int rt){ // 更新当前结点的值,这里写的是求一段区间的和 sum[rt] = sum[rt << 1] + sum[r <<...
2019-08-06 21:03:03 136
原创 HDU - 1556 (差分数组,树状数组)
传送门 用差分数组和树状数组思路是一样的,都是运用到差分的原理,d[i] = a[i] - a[i-1],当我们在区间 [l,r] 涂气球时,只需要在d[l] -= 1,d[r+1] += 1,然后还需用到前缀和(sum[i] = a[1]+a[2]+…+a[i]),最后求i点的涂色次数:sum[i] = sum[i-1] + d[i]。 差分数组 //#include <bits/std...
2019-08-01 17:02:01 340
原创 食物链
动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是"1 X Y",表示X和Y是同类。 第二种说法是"2 X Y",表示X吃Y。 此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话...
2019-05-06 20:58:49 1649
原创 P3366 【模板】最小生成树(prim算法)
题目链接 使用的是prim算法,prim算法与最短路径中的Dijkstra算法很相像。一个点一个点进行排查,直到图中的所有点都遍历一遍。 #include <iostream> #include <algorithm> #include <cstdio> #include <string> #include <map> #include...
2019-04-21 21:56:50 461
原创 Wireless Network(并查集)
东南亚发生地震。 亚洲合作医疗队(ACM)已经与膝上型计算机建立了无线网络,但一次意外的余震袭击,网络中的所有计算机都损坏了。 计算机一台接一台地修好,网络逐渐恢复工作。 由于硬件的限制,每台计算机只能与距离它不超过d米的计算机直接通信。 但每一台计算机都可以看作是另外两台计算机之间通信的中介,也就是说,如果计算机A和计算机B可以直接通信,或者有一台计算机C可以同时与A和B通信,那么计算机A和计算...
2019-04-16 15:46:18 484
原创 P3371
P3371 【模板】单源最短路径 题目链接 用的方法是SPFA算法,还利用了链式前向星存储图。 链式前向星:利用结构体进行存储 struct Edge { int next,to,dist; //next是存储下一个点,to是这条边所要去的点,dist是边的长度。 }edge[maxm]; 存储: for(int i=1;i<=m;i++){ int a,b,c;...
2019-04-11 20:31:17 282
原创 P3367 并查集
P3367 并查集【模板】 题解 题目链接 思路:创立一个数组来记录这个元素的大哥,一开始的元素的大哥都是自己,当两个元素需要合并时,两个元素大哥设为相同的数,这时就可以认定他们两个元素已经合并了。 #include <iostream> #include <algorithm> #include <cstdio> #include <string>...
2019-04-09 14:29:49 208
原创 P1305
P1305 题解 题目描述 输入一串二叉树,用遍历前序打出。 输入输出格式 输入格式: 第一行为二叉树的节点数n。(n \leq 26n≤26) 后面n行,每一个字母为节点,后两个字母分别为其左右儿子。 空节点用*表示 输出格式: 前序排列的二叉树 输入输出样例 输入样例#1: 6 abc bdi cj* d** i** j** 输出样例#1: abdicj 题目链接 思路是先将最上面一层的树放入...
2019-04-01 20:44:19 252
原创 P1030
P1030 题解 题目描述 给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度 \le 8≤8)。 输入输出格式 输入格式: 22行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。 输出格式: 11行,表示一棵二叉树的先序。 输入输出样例 输入样例#1: BADC BDCA 输出样例#1: ABCD 题目链接 思路是从后序里面找根,然后从中序中找树...
2019-04-01 20:38:29 211
原创 P1087
洛谷 P1030 求先序排列 个人题解 题目链接 #include <iostream> #include <algorithm> #include <cstdio> #include <string> #include <map> #include <queue> #include <cstring> #inc...
2019-04-01 19:44:57 195
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人