
算法acm
megadeth丶
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Mysterious Bacteria LightOJ - 1220(质因数分解,gcd)
思路 将x质因数分解得到p1e1*p2e2 …*piei ,可知ans=gcd(e1,e2…ei).当x位负数时,指数必须为奇数,所以一直将答案除以二到奇数为止. 代码 #include<map> #include<set> #include<cmath> #include<stack> #include<queue> #include&...原创 2020-01-11 16:12:08 · 244 阅读 · 0 评论 -
Leading and Trailing LightOJ - 1282(数论)
思路 取后3位相当于%1000,直接快速幂取模. 前3位需要一点技巧,nk=10k*log10(n).而考虑到 klog10(n)为小数且值可能非常大我们还要把它对1取模,这是因为klog10(n)的整数部分其实只表示nk的位数,取模用fmod()函数,最后将答案乘100. 代码 #include <cstdio> #include <cstring> #include &...原创 2020-01-09 20:07:27 · 197 阅读 · 0 评论 -
Vases and Flowers HDU - 4614
思路 线段树维护区间空瓶的数量,然后每次放花二分位置得到左右端点的位置. 代码 #include<map> #include<set> #include<cmath> #include<stack> #include<queue> #include<cstdio> #include<string> #include...原创 2020-01-08 22:10:53 · 166 阅读 · 0 评论 -
Assign the task HDU - 3974(dfs序+线段树)
思路 将员工之间的关系建图,然后对图dfs将顺序记录下来(一个节点进去一次出来一次),再进行区间维护即可. 代码 #include<map> #include<set> #include<cmath> #include<stack> #include<queue> #include<cstdio> #include<st...原创 2020-01-08 16:46:08 · 140 阅读 · 0 评论 -
Tunnel Warfare HDU - 1540(线段树,思维)
思路 先考虑暴力,当询问一个村庄时可以暴力向左找第一个被摧毁的点,再暴力向右找第一个被摧毁的点,两点之间的距离减一就是答案.直接暴力肯定会超时,所以我们可以考虑用线段树维护区间信息;查询的点为x,则x-n的最小值值减去1-x的最大值再减一即为答案.摧毁一个点就把那个点的最大值和最小值改为那个点的序号.重建用栈保存之前的信息即可.还有就是点信息的初始化,把最大值置为0,最小值置为1. 代码 #inc...原创 2020-01-08 14:14:23 · 152 阅读 · 0 评论 -
splay树模板
对应模板题 照着巨佬博客的代码打的https://blog.youkuaiyun.com/Clove_unique/article/details/50630280 #include<map> #include<set> #include<cmath> #include<stack> #include<queue> #include<cstdi...原创 2019-12-16 10:35:34 · 152 阅读 · 0 评论 -
LCA模板(tarjan离线算法,倍增在线算法)
tarjan: 利用用并查集的高效,与父节点合并 一次性查询O(n+q). 对应模板题hdu2856 #include<map> #include<set> #include<cmath> #include<stack> #include<queue> #include<cstdio> #include<string&g...原创 2019-12-14 16:22:37 · 251 阅读 · 0 评论 -
次小生成树(prim+堆)
我都不知道我为啥要用堆来优化,代码量大且毫无意义 #include<map> #include<set> #include<cmath> #include<stack> #include<queue> #include<cstdio> #include<string> #include<vector> ...原创 2019-12-08 20:39:43 · 133 阅读 · 0 评论 -
dijkstra模板(fast)
对应题目Candies POJ - 3159,此题卡时间很紧,逼我各种优化… dijkstra+链式前向星+最小堆 #include<map> #include<set> #include<cmath> #include<stack> #include<queue> #include<cstdio> #include<s...原创 2019-12-05 20:16:12 · 137 阅读 · 0 评论 -
SPFA算法模板
#include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include<iostream> #include<vector> #include<set> #include<queue> #define MAX...原创 2019-12-04 16:03:49 · 132 阅读 · 0 评论 -
UVa12096 集合栈计算机
为每种不同的集合创建ID,用map和vector将集合与ID绑定 #include <bits/stdc++.h> using namespace std; map<set<int>,int>setmap; vector<set<int> >setvec; stack<int>s; int getid(set<int&...原创 2019-07-16 16:28:22 · 256 阅读 · 0 评论 -
The Morning after Halloween Uva-1061(搜索)
链接:https://vjudge.net/problem/UVA-1601 题目大意 有一个大小h*w的迷宫鬼屋,鬼屋中有障碍和鬼,万圣节过后鬼屋有n(n<=3)个鬼不在原来的位置了,要求通过操作将他们放回原来的位置,每次操作满足以下条件: 每只鬼可以在一次操作中选择移动一步或不动 不能有两只以上的鬼在同一格中,也不能两只鬼之间进行位置的互换 障碍不可行走 每一个2*2的格子都至少会有一...原创 2019-09-09 12:17:56 · 200 阅读 · 0 评论