![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
Themis$
加油!fighting!
展开
-
POJ Who's in the Middle
题目链接:http://poj.org/problem?id=2388题目难度:水题题目概括:输入个数N,再输入N个数字,找出大小处于中心的数字,要求左边的数字全部比中心的小,右边的都要比中心的大。题解:无难度,将输入内容传入数组内,再用sort()函数对数组进行排序,之后在输出排序后的“中间值”(我的数组是从0开始,所以中间值=(int)总长度/2)下面就是我的代码了:#include...原创 2019-04-21 23:34:18 · 134 阅读 · 0 评论 -
ACM——LCA
一、算法定义LCA是在线查询树上两点的最近公共祖先的算法,可运用倍增的方法,时间复杂组O(nlogn)二、算法过程1.倍增使深度较深的点跳到和深度较浅的点同一深度。2.两个点一起往上跳,直到找到公共祖先三、模板//预处理:通过dfs,求出树上每个节点的深度。注:p[x][0]是x的父节点,如果遍历到父节点则跳过,其他的与该点相邻的点都是他的子节点void dfs(int x){ ...转载 2019-05-10 09:48:15 · 373 阅读 · 0 评论 -
ACM——线段树
线段树模板:/*定义*/const int MAXN=50010;int a[MAXN],ans[MAXN<<2],lazy[MAXN<<2];//a[]为原序列信息,ans[]模拟线段树维护区间和,lazy[]为懒惰标记/*更新结点信息*/void PushUp(int rt){ ans[rt]=ans[rt<<1]+ans[rt<...转载 2019-05-09 21:57:24 · 191 阅读 · 0 评论 -
ACM——穷举搜索
DFS(深度优先)(1)模板代码bool visited[MAX_VERTEX_NUM]; //访问数组标记void DFSTraverse(Graph G){ //对图G深度遍历,访问函数是visit() for(v=0; v<G.vexnum;++v) visited[v]=FALSE; // 初始化访问标记 for(v=0;v<G,vexn...原创 2019-05-09 12:32:22 · 377 阅读 · 0 评论 -
ACM——动态规划模板
参考网上众多大神整理得出以下模板,如有不对之处,欢迎讨论背包问题:(1)01背包:void bag01(int cost,int weight) { for(i = v; i >= cost; --i) dp[i] = max(dp[i], dp[i-cost]+weight); } (2)完全背包:void complete(int cos...原创 2019-05-08 22:08:52 · 320 阅读 · 0 评论 -
学习并查集(二)——A Bug’s Life
带权并查集的应用,比基础模板增加了一些语句。普通的并查集:记录的是集合是否同属一个集合。带权并查集:记录集合的关系和着集合内元素的关系。今天学习的一道例题是—— A Bug’s Life题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1829题目简述:找出昆虫内是否有GAY,,,具体步骤代码内有详解:#include <bits/s...原创 2019-04-30 21:54:48 · 580 阅读 · 0 评论 -
随笔知识小记录(一)
阶乘问题(1) 正常求解,但是存在溢出问题#include <iostream>#include<stdio.h>using namespace std;int main(){ int n,s,sum; scanf("%d",&n); for(int i=0;i<=n;i++){ int a=1; for(i...原创 2019-04-30 00:37:28 · 127 阅读 · 0 评论 -
学习并查集(一)——畅通工程
学习并查集,我以畅通工程这道经典的题为例,弄清楚如何进行处理,还有积累模板。首先简单说一下并查集:并查集是一种用来管理元素分组情况的数据结构,并查集可以高效地进行如下操作:1、查:查询元素a和元素b是否属于同一组。实现:从一个组的根向另一个组的根连边,这样两棵树变成了一棵树,也就把两个组合并为一个组了。2、并:合并元素a和元素b所在组。实现:如果两个节点的根相同,就可以知道它们属于同一组。...原创 2019-04-30 00:19:57 · 149 阅读 · 0 评论 -
迷宫问题
迷宫问题Time Limit: 1000MSMemory Limit: 65536KTotal Submissions: 39481Accepted: 22058Description定义一个二维数组:int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0,...原创 2019-04-18 23:32:24 · 92 阅读 · 0 评论 -
What day is that day?
Time Limit: 2 Seconds Memory Limit: 65536 KB题目t’s Saturday today, what day is it after 11 + 22 + 33 + … + NN days?InputThere are multiple test cases. The first line of input contains an integ...原创 2019-04-18 23:28:26 · 393 阅读 · 0 评论 -
Easy Task
Time Limit: 2 Seconds Memory Limit: 65536 KB题目:You are given n integers. Your task is very easy. You should find the maximum integer a and the minimum integer b among these nintegers. And then you s...原创 2019-04-18 23:10:33 · 280 阅读 · 0 评论 -
华南理工大学春季赛I-炒股
这次分享的是华南理工大学春季训练赛中的一道水题,下面是这道题的题目:题目难度:水题但是其中有些细节没有注意的话还是会出错,最开始的思路就是找到这些价格的极限值,用极大值-极小值得出的距离就是最大收益。但是这么算是不给过的,我觉得可能是有些极限值没有考虑到,到现在也不太清楚为啥错了。。。下面我也放出改正之后的代码(仅供参考)。#include<bits/stdc++.h>#i...原创 2019-04-15 00:27:51 · 192 阅读 · 0 评论 -
ZOJ 3787 Access System
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3787题目难度:正常的题吧题目描述:就是要设置一个记录刷卡的人数的题,还有输出学号(也就是输入时间的顺序号)。由于随着前一个人刷卡进入之后,中间有一段时间L是可以不用刷卡就能进去的,所以主要需要判断就是两个人进入的时间是否超过刷卡间隙L。题目解析:我首先是将每...原创 2019-04-22 01:35:23 · 125 阅读 · 0 评论