ACM
本科acm经历+刷题记录
hahahaer~
这世界上真的有人在过着你想要的生活,也必曾走过你所未经历的苦难。
展开
-
输入不注意就会T
这几天因为学了一些效率很高的算法,所以对时间卡的较严,已经有好几道题卡了我的cin,cout,真的是卡到没脾气。以后碰到这种数据结构类的题,每次开始敲代码都要在心中默念:“要用scanf,printf”!!!千万不能忘,千万不能忘,千万不能忘话说回来,还是好怀念写那些 评测姬当初只会wa不会T的题的单纯时光(顶锅盖溜。。。。。。)...原创 2019-08-08 10:08:05 · 82 阅读 · 0 评论 -
线段树定义理解与模板
超级开心,今天的屁屁踢有详细注释!(虽然这仍然弥补不了我抄错模板的事实。。。)今天七夕,虽然我不过节,但是让我应景的来一句土味情话(对每一个我A出来的题):我能想到最浪漫的事,就是看着你由wa到T,再T又T还T,TTTTTTT,最终成为那抹绿色靓丽的AC(撒花~~~)废话不再说,附上具有详细注释的带有我个人理解的模板代码!建树模板void build(int rt,int...原创 2019-08-07 17:32:52 · 132 阅读 · 0 评论 -
链式向前星详解与模板
我们首先来看一下什么是前向星.前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按照终点从小到大排序,并记录下以某个点为起点的所有边在数组中的起始位置和存储长度,那么前向星就构造好了.用len[i]来记录所有以i为起点的边在数组中的存储长度.用head[i]记录以i为边集在数组中的第一个存储位置.那么对于下图:...转载 2019-07-26 14:22:15 · 417 阅读 · 0 评论 -
STL----deque
头文件:#include <deque>创建一个没有任何元素的deque对象:deque<int> d尾部压入元素n:d.push_back(n)头部压入元素n:d.push_front(n)弹出首元素:d.pop_front()弹出尾元素:d.pop_back()粘两个讲的比较详细的博文:stl之deque双端队...原创 2019-07-30 10:38:22 · 95 阅读 · 0 评论 -
网络流&费用流 C
先占个板子,有空再来写注释题目#include <stdio.h>#include <iostream>#include <string.h>#include <queue>using namespace std;const int maxn=4e2+5;const int inf=0x3f3f3f3f;struct ac{...原创 2019-07-24 15:12:32 · 96 阅读 · 0 评论 -
扩展欧几里得算法证明与模板
扩欧证明:模板:#define ll long longll ex_gcd(ll a,ll b,ll &x,ll &y)//将x,y转换为静态变量,在函数体内改变x,y的值,即相当于x,y变为全局变量,在整个程序中x,y的值均改变 { if(!b) { x=1; y=0; return a; } ll d=ex_gcd(b,a%b,...原创 2019-07-30 09:34:11 · 167 阅读 · 0 评论 -
oulaG
题目Dr. Mob has just discovered a Deathly Bacteria. He named it RC-01. RC-01 has a very strange reproduction system. RC-01 lives exactly x days. Now RC-01 produces exactly p new deadly Bacteria where ...原创 2019-07-18 17:02:34 · 73 阅读 · 0 评论 -
Tarjan(A)强连通分量
传送门思路:是一道强连通题。运用深搜,如果最后可以连通,并且所有的点都被遍历,则说明两两可达,否则不能#include <stdio.h>#include <iostream>#include <vector>#include <stack>#include <string.h>using namespace st...原创 2019-08-05 22:08:27 · 130 阅读 · 0 评论 -
拓扑排序模板
思路:1、找入度为0的点A,放入队列2、找与A相关联的边,去边3、重复1,2,直到图中不存在入度为0的点如果最后cnt!=n说明图中有环复杂度:O(V+E) 点数+边数#include <stdio.h>#include <iostream>#include <vector>#include <string.h>#inc...原创 2019-07-26 08:46:24 · 104 阅读 · 0 评论 -
网络流&费用流 D
老规矩,先占代码,有空再补注释题目#include <stdio.h>#include <iostream>#include <string.h>#include <queue>#include <cmath>const int maxn=2e2+5;const int inf=0x3f3f3f3f;using n...原创 2019-07-24 17:21:16 · 74 阅读 · 0 评论 -
无向图判断是否为欧拉回路(以HDU1878为板子题)
题目传送门题目欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路。现给定一个图,问是否存在欧拉回路?Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是节点数N ( 1 < N < 1000 )和边数M;随后的M行对应M条边,每行给出一对正整数,分别是该条边直接连通的两个节点的编号(节点从1到N编号)。当N为0时输入结束。O...原创 2019-07-26 16:09:45 · 1293 阅读 · 0 评论 -
Tarjan(C)----割边
传送门题意:给出若干组数据,每组数据的第一行为下面输入数据的行数。接下来依旧是每一行的第一个数代表的点与它后面的几个点直接相连,让你求出每一组数据所代表的图有多少条割边。思路:套模板#include<stdio.h>#include<string.h>#include<iostream>#include<vector>#...原创 2019-08-06 15:31:00 · 96 阅读 · 0 评论 -
oula H
题目链接思路:这是一道版子题,即欧拉降幂的运用欧拉降幂公式大概可以这样理解:a的b次方对p取模的值是会循环的,循环节为欧拉(p)因此,用一个欧拉函数和快速幂就可以解决这道问题啦#include <stdio.h>#include <iostream>#include <string.h>using namespace std;...原创 2019-07-21 16:04:38 · 104 阅读 · 0 评论 -
计算几何基础详解与模板
理论理解:不知道为啥,还是比较喜欢手写公式,大概是因为比较方便吧//判等const double eps = 1e-9;int dcmp(double x,double y){ if(fabs(x - y) < eps) return 0; if(x > y) { return 1; } return -1;} //头文件#...原创 2019-08-12 17:25:40 · 128 阅读 · 1 评论 -
Tarjan(B)----割点
传送门题意:多组数据,每组数据给出一个数n,接下来最多有n行,表示每一行第一个数字与该行的后面几个数字是直接连接的。让你找出每一组数据有几个割点。注意:1.每次敲回车都跳出循环 2.判断一个点为割点的两个条件 3.用链式向前星存图#include<stdio.h>#include<string.h>...原创 2019-08-06 11:46:55 · 110 阅读 · 0 评论 -
牛客练习赛60--A 大吉大利(数论)
题意:题意就是给定一些数,求他们互相&的和比如样例分析a1,a2,a3,a4,a5ans=a1&a1+a1&a2+a1&a3+a1&a4+a1&a5+a2&a1+a2&a2+a2&a3+a2&a4+a2&a5+......+a5&a1+...+a5&a5由于0&任何数...原创 2020-03-28 10:48:25 · 119 阅读 · 0 评论 -
判断点是否共线
原创 2020-01-13 17:41:52 · 1521 阅读 · 0 评论 -
Pawn‘s Revenge (暴力)
先将k周围标记,然后找出所有失败的情况。剩下的就是一定会成功的情况,对于每个‘*’,先判断左下是否已经放过兵,如果没有,在它右下放兵并标记,结果+1。如果它的右下无法放,在左下放兵并标记,结果+1。#include <stdio.h>#include <iostream>using namespace std;char bor[1005][1005];in...原创 2020-01-15 11:23:34 · 492 阅读 · 1 评论 -
Xu1024’s treasure chest(简单数学题)
思路: #include <stdio.h>#include <iostream>using namespace std;int main(){ long long n; cin >> n; if(n==0) { cout << "-1"; } else { cout << 5*n <&l...原创 2020-01-14 09:02:11 · 190 阅读 · 0 评论 -
Binbin's treasure map(bfs)
思路:#include <stdio.h>#include <iostream>#include <algorithm>using namespace std;char map[505][505];int book[505][505]={0};struct note{ int x; int y;};bool cmp(int...原创 2020-01-13 18:00:40 · 179 阅读 · 0 评论 -
天梯模拟----7-7 大炮打蚊子 (15 分)
这题主要学习到了用 int xx[4]={-1,1,0,0};//左右数组int yy[4]={0,0,-1,1};//上下数组来标记坐标,从而省去了很多的列举时间!(对应着,左,右,上,下) 现在,我们用大炮来打蚊子:蚊子分布在一个M×N格的二维平面上,每只蚊子占据一格。向该平面的任意位置发射炮弹,炮弹的杀伤范围如下示意: OOXO O其中,X为炮弹落点中心,O...转载 2019-02-21 11:34:26 · 2006 阅读 · 2 评论 -
快速幂的两种写法模板
//快速幂的两种写法//递归写法typedef long long LL;LL binarypow(LL a, LL b,LL m)//求a^b%m { if(b==0) return 1;//递归边界 if(b%2==1) return a*binarypow(a,b-1,m); else { LL mul=binarypow(a,b/2,m); return mul...原创 2019-05-27 16:12:39 · 424 阅读 · 0 评论 -
天梯模拟--约瑟夫问题(7-18 猴子选大王 (20 分))
约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题。在计算机编程的算法中,类似问题又称为约瑟夫环。又称“丢手绢问题”.)据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人...原创 2019-02-20 10:14:29 · 940 阅读 · 0 评论 -
分数的运算化简(包括最大公因数的求法)模板
#include <stdio.h>#include <iostream>#include <math.h>using namespace std;struct Franction{ int up,down;};//将分数用结构体打包; int gcd(int a,int b){ if(b==0) { return a; } e...原创 2019-02-21 17:53:20 · 1365 阅读 · 0 评论 -
广度优先搜索(bfs)模板
#include <stdio.h>#include <iostream>using namespace std;struct note{ int x; int y;}; int main(){ note que[2501];//que作为存放所走过的每一个中心点,即岛屿面积 int head,tail;//head,tail作为评判标准;...原创 2019-02-22 22:28:18 · 1254 阅读 · 0 评论 -
升级版剪刀石头布(表格的处理方法)
石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一 样,则不分胜负。甲和乙非要玩花里胡哨的升级版剪刀石头布。升级版游戏在传统的石头剪刀布游戏的基础上,增加了两个新手势:钢铁侠:漫威主角之一。美国队长:漫威主角之一。这五种手势的胜负关系如表一所示,表中列出的是甲对乙的游戏结果。现在,甲和乙尝试玩这种升级版的猜...原创 2019-04-27 15:55:00 · 1198 阅读 · 0 评论 -
定义导致错误————斐波那契
斐波那契数列要定义long long型数组原创 2019-02-21 10:19:05 · 171 阅读 · 0 评论 -
天神的密码(瞎了)
题目链接:https://ac.nowcoder.com/acm/contest/903/H(牛客)2018年,icebound打开了神殿。而在2019年,icebound正在试图破解天神的密码,以期获得天神的力量。icebound发现,想要得到神的密码,必须先要完成一个祭祀仪式。在这个祭祀仪式上,我们首先会追随神的指引,得到两个正整数 N和 K。随后,我们令,得到天神喜欢的数字X。利用...原创 2019-05-27 15:44:20 · 783 阅读 · 0 评论 -
递归八皇后问题回溯
//八皇后的回溯递归法#include <stdio.h>#include <iostream>#include <math.h>using namespace std;int count=0,n;//count为记录排列的所有可能的情况数量 int P[11];//P[]记录当列数为数组下标数时所对应的行数 int hashtable[11]=...原创 2019-05-25 11:37:27 · 103 阅读 · 0 评论 -
天梯模拟--7-10 整数分解为若干项之和
将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,…。编程求出正整数N的所有整数分解式子。输入格式:每个输入包含一个测试用例,即正整数N (0<N≤30)。输出格式:按递增顺序输出N的所有整数分解式子。递增顺序是指:对于两个分解序列N1={n1,n2,⋯}和N2={m1,m2,⋯},若存在i...原创 2019-02-20 11:49:35 · 262 阅读 · 0 评论 -
散列模板--判断查找字符串
给出恰好由三位大写字母组成的N个字符串,再给出M个查询字符串,问每个查询字符串在N个字符串中出现的次数#include<stdio.h>#include <iostream>using namespace std; const int maxn=100;//maxn为字符串不超过的个数 char s[maxn][5],temp[5];//s字符串用来贮存给出字...原创 2019-02-22 11:23:20 · 192 阅读 · 2 评论 -
天梯选拔赛(一)----藏头诗
7-8 藏头诗 (15 分)本题要求编写一个解密藏头诗的程序。输入格式:输入为一首中文藏头诗,一共四句,每句一行。注意:一个汉字占两个字节。输出格式:取出每句的第一个汉字并连接在一起形成一个字符串并输出。同时在末尾输入一个换行符。输入样例:一叶轻舟向东流帆稍轻握杨柳手风纤碧波微起舞顺水任从雅客流输出样例:一帆风顺```c#include &amp;lt;stdio.h&amp;gt;...原创 2019-02-24 11:17:31 · 1259 阅读 · 0 评论 -
快速排序模板
快速排序模板快速排序是基于二分法的思想,将所要排序的一串数字不断进行二分,将每一个数字找到自己应在的位置,最终实现排序。快速排序的时间复杂度很小,平均时间复杂度为O(NlogN) ''' #include <stdio.h> #include <iostream> u...原创 2019-04-27 13:15:03 · 97 阅读 · 0 评论 -
oulaB
题目题意为给出几个数,对于给出的每一个数,求出∑gcd(i, N) 1<=i <=N。可以发现规律:因此,本题即转化为求给出数n的因子和(n/该因子)的欧拉数的乘积。例如:给出的数为10,结果=2*(5)+5*(2);若给出的数为4,结果=2*(2);因此需要判断一下遍历到的因子i的平方是否等于给出的数n,若相等,则加一次,若不相等,需将前后数字交换,再加一次。题解...原创 2019-07-16 09:49:04 · 87 阅读 · 0 评论 -
2019上海icpc网络赛签到L
L Digit sum队友的ACcode:#include<iostream>#include<cstring>#define maxn 1000010using namespace std;int a2[maxn],a3[maxn],a4[maxn],a5[maxn],a6[maxn],a7[maxn],a8[maxn],a9[maxn],a10[...原创 2019-09-21 12:24:42 · 157 阅读 · 0 评论 -
POJ 2777(线段树)
题目链接题意:输入n组数据,每一组第一行有三个数,分别为L(木板的长度),T(颜色的种类),O(操作的步数,即接下来的行数)。开始木板颜色全为1,接下来进行操作。每一行第一个字母如果为‘C’,接下来三个数a,b,c分别表示将a到b涂成颜色c;如果字母为‘P’,接下来两个数a,b分别表示询问从a到b共有多少种颜色。思路:用一个二进制数来表示颜色,如果该点有颜色a,二进制的第a位...原创 2019-08-30 16:57:39 · 255 阅读 · 0 评论 -
POJ 2481 Cows(树状数组)
题目传送门题意:输入n组数据,每组数据由n行样例组成,分别代表每头牛食草的左区间和右区间,如果牛A的食草区域是牛B的真子集,则说明牛B比牛Astrong,结果输出比该牛strong的牛的头数思路:将牛的右区间按照从大到小排序,比较每头牛前面有几头牛的左区间小于该牛,得到的结果就是比该牛strong的牛的头数(与之前那道star题类似,都是先固定一个变量的顺序,然后比较另一个变量)...原创 2019-08-29 15:36:39 · 131 阅读 · 0 评论 -
火星人 STL next_permutation() 洛谷P1088
STL的next_permutation()给出序列在全排列中的下一个序列next_permutation()的头文件为#include<algorithm>代码:#include<bits/stdc++.h>using namespace std;int a[10005],n,m;int main(){ scanf("%d%d",&...原创 2020-01-11 10:55:39 · 118 阅读 · 0 评论 -
POJ----1190
剪枝+dfs#include <iostream>#include <cstdio>#include <cstring>using namespace std;int N, M;int best;int leftMinS[22], leftMinV[22];void dfs(int now, int sumS, int sumV, ...原创 2019-10-24 18:52:17 · 111 阅读 · 0 评论 -
树状数组 POJ1990 MOOFEST
来补一补数据结构的题,当时这道题完全不懂,连题意都理解了半天,今天又花了两个小时,终于搞懂啦!感觉不懂这道题的时候怎么看人家的博客都感觉难以理解,弄懂了之后,看到每篇博客都感觉明明白白~~~题目链接题目大意:第一行给出牛的个数n,接下来有n行,分别代表着这n头牛的音量承受值和位置,这些牛直线排列,每两头牛之间都要对话,每一对牛耗费的音量都为:这一对牛中的最大音量承受值*这两头牛之间...原创 2019-08-16 16:12:26 · 132 阅读 · 1 评论