
ACM_算法模板
文章平均质量分 69
深海沧澜夜未央
这个作者很懒,什么都没留下…
展开
-
栈 模板
#include #include #include using namespace std;#define STACK_INIT_SIZE 10#define STACK_INCREMENT 2#define OVERFLOW 0#define TRUE 1#define FALSE 0#define ERROR 0#define OK 1typedef int Statu原创 2017-06-05 23:56:30 · 487 阅读 · 0 评论 -
二叉树 队列实现 模板
#include #include #include //在本程序中空==0using namespace std;#define FLASE 0#define TRUE 1#define ERROR 0#define OK 1typedef int TElemType;typedef int Status;typedef struct BiTNode{ TEl原创 2017-06-07 13:01:00 · 846 阅读 · 0 评论 -
二叉树 链表实现 模板
#include #include #include using namespace std;#define FLASE 0#define TRUE 1typedef int TElemType;typedef int Status;typedef struct BiTNode{ TElemType data; //结点的值 BiTNode *lchild, *r原创 2017-06-06 16:58:50 · 476 阅读 · 0 评论 -
队列模板
#include #include #include using namespace std;#define OVERFLOW 0#define TRUE 1#define FLASE 0#define OK 1#define ERROR 0typedef int Status;typedef int QElemType;typedef struct QNode{ Q原创 2017-06-01 19:09:37 · 635 阅读 · 0 评论 -
赫夫曼编码
#include #include #include #include using namespace std;#define MAX 100000000typedef char **HuffmanCode; //动态分配数组存储赫夫曼编码表typedef struct{ unsigned int weight; unsigned int parent,lchild原创 2017-06-08 18:29:34 · 523 阅读 · 0 评论 -
Rescue 3解法:(1.DFS 2. BFS 3.BFS+优先队列模板)
Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M Angel's friends want to save Angel. Their task is: approach Angel. We assume that "ap原创 2017-07-20 11:50:06 · 566 阅读 · 0 评论 -
Water Gate Management(二进制枚举组合排列模板 n个数的子集)
A dam has n water gates to let out water when necessary. Each water gate has its own capacity, waterpath and affected areas in the downstream. The affected areas may have a risk of flood when the wa原创 2017-05-01 15:17:44 · 524 阅读 · 0 评论 -
EOJ Monthly 2017.12 易位构词(贪心+STL特性容器 +头文件<bits/stdc++.h> )未解决
易位构词 (anagram),指将一个单词中的字母重新排列,原单词中的每个字母都出现有且仅有一次。例如 "unce" 可以被易位构词成 "ecnu"。在某些情况下,要求重排而成的依然是一个单词,但本题没有这种要求,因为我们根本没有词典。我们所感兴趣的是,有些单词中的字母进行适当的重排后,可以使得构成的单词每个对应的位置上字母都不一样。例如 "unce" 和 "ecnu",就有 "u" ≠ "e",原创 2017-12-09 20:35:58 · 426 阅读 · 0 评论 -
POJ 2524 宗教信仰 并查集 基础模板
世界上有许多不同的宗教,现在有一个你感兴趣的问题:找出多少不同的宗教,在你的大学中的大学生信仰了多少种不同的宗教。你知道在你的大学有n个学生(0<n<= 50000)。若直接问每一个学生的宗教信仰不大适合。此外,许多学生还不太愿意说出自己的信仰。有一种方法来避免这个问题,询问m(0<=m<=n(n- 1)/ 2)对学生,询问他们是否信仰同一个宗教(比如,可以询问他们是否都参...原创 2017-05-30 13:41:10 · 748 阅读 · 0 评论 -
【天梯赛 PTA】 哈利·波特的考试(弗洛伊德算法 模板)
哈利·波特要考试了,他需要你的帮助。这门课学的是用魔咒将一种动物变成另一种动物的本事。例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等。反方向变化的魔咒就是简单地将原来的魔咒倒过来念,例如ahah可以将老鼠变成猫。另外,如果想把猫变成鱼,可以通过念一个直接魔咒lalala,也可以将猫变老鼠、老鼠变鱼的魔咒连起来念:hahahehe。现在哈利·波特的手里有一本教材,里面列出了所有的...原创 2018-03-15 17:56:44 · 406 阅读 · 0 评论 -
AtCoder Regular Contest 092 C - 2D Plane 2N Points 贪心 匈牙利算法模板
Problem StatementOn a two-dimensional plane, there are N red points and N blue points. The coordinates of the i-th red point are (ai,bi), and the coordinates of the i-th blue point are (ci,di).A red...原创 2018-03-18 17:48:17 · 439 阅读 · 0 评论 -
HDU 6395 Sequence 矩阵快速幂+分块
Let us define a sequence as belowYour job is simple, for each task, you should output Fn module 109+7.InputThe first line has only one integer T, indicates the number of tasks.Then, for the ne...原创 2018-08-13 19:32:10 · 390 阅读 · 0 评论 -
第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 L 用来作弊的药水 (唯一分解定理 和 哈希+快速幂)
在一个风雨交加的夜晚,来自异世界的不愿透露姓名的TMK同学获得了两种超强药水A、B。根据说明书,TMK知道了这两种药水的作用: (1)药水A能使人的生命值提高,每饮用1个单位能使他生命值变成原来的x倍,即每饮用p个单位能使他的生命值变成原来的x^p(x的p次方)倍。 (2)药水B能使人的能量值提高,每饮用1个单位能使他能量值变成原来的y倍,即每饮用q个单位能使他的能量值变成原来的y...原创 2018-03-25 13:14:54 · 323 阅读 · 0 评论 -
HDU 1286 找新朋友 (欧拉函数 模板)
Problem Description新年快到了,“猪头帮协会”准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长是老朋友的,那么该会员的号码肯定和N有大于1的公约数,否则都是新朋友,现在会长想知道究竟有几个新朋友?请你编程序帮会长计算出来。Input第一行是测试数据的组数CN(Case number,1<CN<10000),接着有C...原创 2017-04-16 23:44:31 · 391 阅读 · 0 评论 -
HDU 4717 The Moving Points (三分 模板)
题意:给定n个点,然后这些点朝着给定的方向走,,在某个时间后,点停下来,可以求得此时任意两点之间的最大距离。问何时停止可以使得任意两点之间的最大距离最小。思路:三分时间,判断条件是求出时间的情况下,任意两点之间的最大距离就好了。#include #include #include #include #include using namespace std;const dou原创 2017-09-03 11:01:09 · 657 阅读 · 0 评论 -
水果消除(DPS模板) HNUST 1674
题目链接:http://acm.hnust.edu.cn/JudgeOnline/problem.php?cid=1310&pid=3思路:判断一个点周围的点是否与其值相同,直到周围的值都不相同,将该值“包围”。注意下是否出界与是否被访问#include #include using namespace std;#define N 1005int a[N][N],flag[N][N原创 2017-05-30 13:51:48 · 531 阅读 · 0 评论 -
POJ 1704 Georgia and Bob ( 阶梯博弈 模板 )
Georgia and Bob decide to play a self-invented game. They draw a row of grids on paper, number the grids from left to right by 1, 2, 3, ..., and place N chessmen on different grids, as shown in the fo原创 2017-08-16 14:15:50 · 383 阅读 · 0 评论 -
POJ 1067 取石子游戏 (威佐夫博奕 Wythoff Game 模板)
Description有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。Input输入包含若干行,表示若干种石子的初始情况,其中每一行原创 2017-08-14 13:55:53 · 420 阅读 · 1 评论 -
HDU 1848 Fibonacci again and again (SG函数 模板)
感觉教练挂上去的题目好难,实在切不动了,找一些水题慢慢提升水平吧Problem Description任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义的:F(1)=1;F(2)=2;F(n)=F(n-1)+F(n-2)(n>=3);所以,1,2,3,5,8,13……就是菲波那契数列。在HDOJ上有不少相关的题目,比如1005原创 2017-08-13 17:52:00 · 264 阅读 · 0 评论 -
HDU 1874 畅通工程续 (dijkstra +优先队列 模板+spfa)
Problem Description某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。 Input本题目包含多组数据,请处理到文件结束。 每组数据第一行包含两个正整数N和M(...原创 2017-08-11 08:48:53 · 395 阅读 · 0 评论 -
HDU 1907 John (Nim博弈 模板)
题意:约翰和他哥哥玩一个游戏,n堆糖果,每堆糖果Ai个,约翰先拿任意个同一种的糖果,然后轮到他的哥哥拿任意个同一种的糖果。谁最后拿完最后一堆的最后一个糖果,谁获胜。Nim博弈的模板题目。#include #include #include #include using namespace std;int main(){ int t; sca原创 2017-08-09 13:31:25 · 435 阅读 · 1 评论 -
HDU 1517 A Multiplication Game (组合博弈 ceil函数向下取整数 模板)
Stan and Ollie play the game of multiplication by multiplying an integer p by one of the numbers 2 to 9. Stan always starts with p = 1, does his multiplication, then Ollie multiplies the number, then原创 2017-08-06 17:43:11 · 385 阅读 · 0 评论 -
KMP 算法模板
转载自:http://www.cnblogs.com/kuangbin/archive/2012/08/14/2638803.html注意 :在C++某些版本中next可能会与函数库中的某些东东冲突,不建议用next做数组名假设主串:S: S[1] S[2] S[3] ……S[n]模式串:T: T[1] T[2] T[3]…..T[m]现在我们假设主串第i 个字符与模式串的转载 2017-11-02 08:33:39 · 258 阅读 · 0 评论 -
HNUST 1442 排列问题(顺序排列模板)
对于一个数列S{1,2,3,4...n},其全排列有n!种,如果按从小到大排序,则每一个排列都有唯一的大小,而它的大小也就是它的位置,现给n!中的一个排列,请求出其在全排列中的位置。如:S{1,2,3}有6个排列: 123 132 213 231 312 321;123在第一个位置,231在第四个位置。输入多组测试数据,每组数据占两行,第一行为一个整数n,第二行为1到n中的整数,中间有空格原创 2017-08-25 15:43:51 · 483 阅读 · 0 评论 -
Additions HNUST 1713(矩阵快速幂模板 )
Ada is 5 years old, and she is learning additions. Her father writes some exercises for her.1+11=?2+22=?3+33=?“It is easy”, she writes the answer correctly. “Try to answer the原创 2017-12-08 16:24:44 · 430 阅读 · 1 评论 -
ADA Ⅱ型数 (二分模板)
题目描述 ADA Ⅱ型数是指能表达成p^2与q^3两者之乘积的整数,p和q均大于1且不相等。72=2^3*3^2, 是最小的ADA Ⅱ型数。给定一个整数n,判定其是否为ADA Ⅱ型数。输入少于4000行数据组成,每行一个整数n(0<n<2^31)。输出 每个整数n对应一行输出,如果是ADA Ⅱ型数,则输出一行YES,否则输出一行NO。样例输入172样例输出NOYES思路:是p的2次方*...原创 2017-04-29 16:22:01 · 621 阅读 · 0 评论 -
J - Super Sum UVA - 7720 (逆元与快速幂模板)
题目链接:https://vjudge.net/contest/174844#problem/J题意: 给定N个 a,b,c 表示 每组有 a^b到 a^c, c-b+1个数,求每组取一个数相乘,所有可能的选取方法的乘积之和,对结果mod1000000007。思路:先分析所有情况的乘积公式,很容易发现可以合并,然后问题就转变成了每组 a^b到 a^c的和的乘积。求 a原创 2017-08-01 11:12:36 · 295 阅读 · 0 评论 -
求最小值 HNUST 1874(DFS模板)
题目描述给定一个小于99的正整数n, 编写函数找一个最小的m, 使得m为n的倍数, 且m的各个位数仅由1和0组成.例如输入:52098则输出:1010011000010输入测试数据有多组。每行输入一个正整数 n (0 输出与输入相对应,每行输出一个表示结果的整数m。样例输入52098样例输出10原创 2017-12-05 23:48:09 · 3138 阅读 · 6 评论 -
BFS 八数码问题 typedef int State[9]; (BFS A*算法与优先队列)
题目描述八数码问题,即在一个3×3的矩阵中有8个数(1至8)和一个空格,现在要你从一个状态转换到另一个状态,每次只能移动与空格相邻的一个数字到空格当中,问题是要你求从初始状态移动到目标状态所需的最少步数。如下图所示。123 1238原创 2017-07-18 08:15:26 · 1695 阅读 · 1 评论 -
快速读入外挂
针对n为10^5的数据有显著的作用,直接添加即可使用,输入为read.且次模板只能输入整数,对于题目中所有数据的输入都必须采用read,不然会报错。namespace fastIO { #define BUF_SIZE 100000 //fread -> read bool IOerror = 0; inline char nc() { static char buf[BU...原创 2018-08-13 19:20:12 · 1454 阅读 · 0 评论