算法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 · 209 阅读 · 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 · 154 阅读 · 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 · 130 阅读 · 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 · 109 阅读 · 0 评论 -
Tunnel Warfare HDU - 1540(线段树,思维)
思路先考虑暴力,当询问一个村庄时可以暴力向左找第一个被摧毁的点,再暴力向右找第一个被摧毁的点,两点之间的距离减一就是答案.直接暴力肯定会超时,所以我们可以考虑用线段树维护区间信息;查询的点为x,则x-n的最小值值减去1-x的最大值再减一即为答案.摧毁一个点就把那个点的最大值和最小值改为那个点的序号.重建用栈保存之前的信息即可.还有就是点信息的初始化,把最大值置为0,最小值置为1.代码#inc...原创 2020-01-08 14:14:23 · 124 阅读 · 0 评论 -
splay树模板
对应模板题照着巨佬博客的代码打的https://blog.csdn.net/Clove_unique/article/details/50630280#include<map>#include<set>#include<cmath>#include<stack>#include<queue>#include<cstdi...原创 2019-12-16 10:35:34 · 112 阅读 · 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 · 203 阅读 · 0 评论 -
次小生成树(prim+堆)
我都不知道我为啥要用堆来优化,代码量大且毫无意义#include<map>#include<set>#include<cmath>#include<stack>#include<queue>#include<cstdio>#include<string>#include<vector>...原创 2019-12-08 20:39:43 · 100 阅读 · 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 · 110 阅读 · 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 · 107 阅读 · 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 · 220 阅读 · 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 · 164 阅读 · 0 评论