![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
hhhaaa_
这个作者很懒,什么都没留下…
展开
-
位移运算小结
位移运算<<运算(左移)a<<b 表示把a转为二进制后左移b位(在后面添加 b个0)。例如100的二进制表示为1100100,100左移2位后(后面加2个零):1100100<<2 =110010000 =400,可以看出,a<<b的值实际上就是a乘以2的b次方,因为在二进制数后面添加一个0就相当该数乘以2,2个零即2的2次方 等于4。通常认...转载 2018-09-30 19:16:41 · 472 阅读 · 0 评论 -
01背包 小结及例题整理
目录【01背包】 【hdu 2602】Bone Collector(裸题) 【hdu2546】饭卡 【hdu2955】Robberies(二重背包)好了,终于静下心来搞背包了。有点不应该,回避了这么久。【01背包】给你n种不同的物品,每个物品有自己的体积w[i]和价值v[i],如果每个物品只能拿一次,给你容量为m的背包,怎样才能获取最大价值; 主线:使容量为m的背包装入的物品...原创 2018-09-17 15:17:20 · 720 阅读 · 0 评论 -
“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛
目录1001 hzy 和zsl 的生存挑战(思维)1002 人类史上最大最好的希望事件(前缀和+取余问题)1003 超级无敌简单题(小暴力)1007 简单数学题(找公式)1001 hzy 和zsl 的生存挑战(思维)【分析】因为题上说了,假设zsl 和 hzy 两个人都足够机智,能够选择出最优决策 ,所以,只要这两个人一个人出0一个人出1总会有一个人是对的,即顺利过关。所以...原创 2019-03-18 12:40:03 · 441 阅读 · 0 评论 -
【loj】#10064. 「一本通 3.1 例 1」黑暗城堡(最短路径生成树 dijkstra+Prim)
题目描述:你知道黑暗城堡有 N个房间,M 条可以制造的双向通道,以及每条通道的长度。城堡是树形的并且满足下面的条件:设 Di 为如果所有的通道都被修建,第 i 号房间与第 1 号房间的最短路径长度;而 Si 为实际修建的树形城堡中第 i 号房间与第 1 号房间的路径长度;要求对于所有整数 i (1≤i≤N),有 Si=Di 成立。你想知道有多少种不同的城堡修建方案。当...原创 2018-11-29 16:03:54 · 1386 阅读 · 0 评论 -
dijkstra · 迪杰斯特拉算法(求单源最短路)
本周来来介绍指定一个点(源点)到其余各个顶点的最短路径,也叫做“单源最短路径”。例如求下图中的1号顶点到2、3、4、5、6号顶点的最短路径。 与Floyd-Warshall算法一样这里仍然使用二维数组e来存储顶点之间边的关系,初始值如下。 我们还需要用一个一维数组dis来存储1号顶点到其余各个顶点的初始路程,如下。 我们将此时dis数组中的值称为...原创 2018-08-07 15:46:09 · 234 阅读 · 0 评论 -
最短路径里的松弛操作
即更新两点的最短路径;原来用一根橡皮筋连接a、b两点,现在有一点v到b的距离更短,则把橡皮筋的a点换成v点,使得v、b连接在一起。这样缓解橡皮筋紧绷的压力,使其变得松弛,即松弛操作。...原创 2018-08-05 15:26:49 · 1359 阅读 · 0 评论 -
最小公倍数
两个代码都因为数据类型然后不断的WA!! 1014: 最小公倍数Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 4578 Solved: 1070[Submit][Status][Web Board]Description求两个数的最小公倍数LCM(Least Common Multiple)Input每行包含两个...原创 2018-07-24 15:58:42 · 529 阅读 · 0 评论 -
Floyd求最小环模板
模板题:poj1734【模板】/******Floyd求最小环******///#include<bits/stdc++.h>#include<cstdio>#include<cstring>#include<string>#include<iostream>#include<algorithm>usi...原创 2018-12-07 15:04:15 · 182 阅读 · 0 评论 -
二叉树建树与遍历模板
相关题目:zcmu--4933: 二叉排序树(二叉树遍历输出) zcmu--4932: 树查找 zcmu--4931: 二叉树遍历(已知先序中序二叉树重建) pta-1020 Tree Traversals(25 分)(已知后序中序求层序二叉树遍历与重建) pta-1043 Is It a Binary Search Tree(25 分)(二叉搜索树) 思路:二叉树的建立采...原创 2018-08-27 11:56:57 · 963 阅读 · 0 评论 -
Something about 博弈~(updating...)
目录 (一)巴什博奕(同余): (二)Nim博弈(异或): (三)威佐夫博弈(黄金分割): zcmu 4975: Problem B. wjw的AH之战(巴什博奕) HDU-2176取(m堆)石子游戏(Nim博弈) ZCMU-1913 这是Nim嘛? zcmu1918: G.这是个博弈(威佐夫博弈) 2001: Return of the Nim(威佐夫博弈+Nim博弈)(一...原创 2018-09-30 20:18:28 · 276 阅读 · 0 评论 -
Find Integer(大费马定理&&勾股定理)
【费马大定理】当整数n >2时,关于x, y, z的方程 x^n + y^n = z^n 没有正整数解。故,只考虑n=1, n=2, n=0当n=0时,肯定不成立;当n=1时,该题是特判,所以输出一组就好了;当n=2时,勾股数。【代码】#include<bits/stdc++.h>using namespace std;int main(){...原创 2018-08-26 10:55:32 · 392 阅读 · 0 评论 -
背包问题
转自:https://blog.csdn.net/qq_41117236/article/details/80986564【01背包】 给你n种不同的物品,每个物品有自己的重量w[i]和价值v[i],如果每个物品只能拿一次,给你容量为m的背包,怎样才能获取最大价值;【完全背包】 给你n种不同的物品,每个物品有自己的重量w[i]和价值v[i],一个物品可以...转载 2018-07-29 11:14:04 · 166 阅读 · 0 评论 -
贪心算法几个经典应用(待补全)
目录选择不相交区间问题 区间选点问题 区间覆盖问题 流水作业调度问题 带期限和罚款的单位时间任务调度选择不相交区间问题zcmu--1615: 找区间(贪心) 区间选点问题【问题描述】给定n个闭区间 [ai,bi],在数轴上选取尽量少的点,使得每个区间内都至少有一个点(不同区间内含的点可以是同一个)【思路点拨】首先按区间的结束位置升序排列,在依次对每个区间进行选择;对于...原创 2018-09-18 20:28:58 · 1147 阅读 · 0 评论 -
字符串排序
字符串排序题目描述编写一个程序,将输入字符串中的字符按如下规则排序(一个测试用例可能包含多组数据,请注意处理)。规则 1 :英文字母从 A 到 Z 排列,不区分大小写。如,输入: Type 输出: epTy规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。如,输入: BabA 输出: aABb规则 3 :非英文字母的其它字符保持原来的位置。如,输入:...原创 2019-05-25 20:44:40 · 208 阅读 · 0 评论 -
unordered_map 与 map的按value排序
一、unordered_mapunordered_map占用内存高,但执行效率快;unordered_map的用法与map相同,如 insert,size,count等操作,并且里面的元素也是以pair类型来存贮的。更详细戳二、map的按value排序1. 构建方法int cmp(const pair<string,int> &x, const pair&...原创 2019-01-31 19:31:48 · 653 阅读 · 0 评论 -
拓扑排序+例题
目录拓扑排序定义 ZCMU-2153 ly的排队问题 hiho #1870 : Jin Yong’s Wukong Ranking List POJ-1094 Sorting It All Outen...搁置了很久,现在来搞一搞吧...拓扑排序:在一个有向图中,对所有的节点进行排序,使得没有一个节点指向它前面的节点。先统计所有节点的入度,对于入度为0的节点就可以分离出来...原创 2018-11-14 19:50:29 · 406 阅读 · 0 评论 -
堆(MinHeap && MaxHeap)建堆两种方式 堆排序
一、概念大根堆:根节点(堆顶)值是所有节点中最大的;又称最大堆。根节点值比其左右子树的节点值都要大;小根堆:根结点值是最小值;【注意】1. 堆中任一子树也是堆; 2. 堆的本质是一棵完全二叉树二、堆排序参考博客堆也是一种数据结构,从实际应用意义来说,他是一种最优级别数据永远在第一位的队列,本文皆以最小值为例(小顶堆),即它变相是一种会永远保持最小值先出队的队列。 堆...原创 2018-08-03 19:47:51 · 848 阅读 · 0 评论 -
快速排序
目录基本思想关于主元的选择小规模数据的处理时间复杂度基本思想:选取主元 x ,定义两个指针 i、j ;i:如果满足 a[i] < x ,从前往后走j:如果满足 a[j] > x ,从后往前走将 x 放在序列的最右边,当指针 i 和 j 都停下的时候:如果 i < j ,则交换 a[i] 和 a[j] 的值 否则break掉再递归左右...原创 2019-05-24 19:18:53 · 180 阅读 · 0 评论 -
字符串string
一直以来,字符串以及连带的字符数组都是我的痛处啊哭唧唧(﹏),今天终终终于打算好好写一下了,因为之前转过一篇,但是还是自己下一篇印象阔以深刻一点吧(`へ´*)ノ。+-------oOOo-----(_)-----oOOo---------+这是华丽丽的分割线+-------oOOo-----(_)-----oOOo---------+1. string表示可变长的字符序列,头文件为<...原创 2018-08-12 15:51:13 · 189 阅读 · 0 评论 -
字符串(转)
原:https://blog.csdn.net/Xiao_Yanci/article/details/79111186用字符数组来存放字符串并不是最理想和最安全的方法。C++提供了一种新的数据类型——字符串类型(string类型),在使用方法上,它和char、int类型一样,可以用来定义变量,这就是字符串变量——用一个名字代表一个字符序列。实际上,string并不是C++语言本身具有的基本...转载 2018-08-07 14:38:38 · 149 阅读 · 0 评论 -
AVL树(平衡二叉树)板子
AVL树本质是二叉查找树,但具以下特点:一棵空树; 左右两个子树的高度差的绝对值不超过1,且左右两个子树都分别是平衡二叉树。 在AVL树中任何节点的两个子树的高度最大差别为一,又称平衡二叉树。图解:觉得讲得比较清楚的一篇博客板子节点插入+层序输出#include<bits/stdc++.h>using namespace std;typedef str...原创 2019-02-19 01:00:38 · 438 阅读 · 0 评论 -
无根树变为有根树
【无根树】即无环连通无向图;若一个图中每条边都是无方向的,则称为无向图。无根树它要求每个顶点之间都直接或间接相连,且图中无环,即只有简单路径。由于树是图的子集,这一类图具有树的特征,但不具有树状的形式,没有特定的根节点,故称为无根树。任意选取图中某个点为根,均可将无根树转化为有根树。【代码】#include<bits/stdc++.h>using names...原创 2018-12-13 18:36:35 · 1312 阅读 · 0 评论 -
次小生成树(有无重边)
一切都从这道题开始.... #10068. 「一本通 3.1 练习 3」秘密的牛奶运输嗯,然后我去看了次小生成树,踉踉跄跄地做了好久奇奇怪怪的就A了... 然后!突然发现题上说是有重边的!然后我!开始质疑我的代码!一直改呀想呀陷入了怪圈.... 对,怪圈.... 用Kruskal做本来就是存边的,哪里还用考虑重不重边的问题呀!大概还是自己太蠢了吧... (つД`)・゚・首先,什么是次小...原创 2018-12-06 13:55:48 · 270 阅读 · 2 评论 -
最小生成树(MST)
目录一、知识点二、最小生成树计数三、例题一、知识点1. 生成树定义:在一个有n个点的无向连通图中,取其n-1条边并连接所有的顶点,所得到的子图称为原图的一棵生成树。2. 树的属性:无环+连通+任意两点之间只有唯一的简单路径+删掉任意边就不连通3. 最小生成树:各边权和最小的一棵生成树。4. 最小边原则:图中权值最小的边(如果唯一的话)一定在最小生成树上5. 唯一...原创 2018-11-28 19:54:13 · 698 阅读 · 0 评论 -
Vector&&迭代器&&数组
vector标准库类型vector表示对象的集合,其中所有的对象类型都相同;集合中每个对象都有一个与之对应的索引,索引用于访问对象。vector是一个类模板,是模板而非类型。1. 初始化vector对象vector<T> v1 T类型空vector,执行默认初始化vector<T> v2(v1) v2包含所有v1元素的副本vector<...原创 2018-08-12 17:43:37 · 409 阅读 · 0 评论 -
计算斐波那契数列第100项(二维数组&&思维转换)
斐波那契数列第100项肯定很多位,常规的数据类型肯定存储不下,所以!!要进行换个思路!!即二维数组反正我觉得这样还挺方便的咯用二维数组的每一行存储每一项的值,从每一行的最后一列开始,如果>10就往前一列+1,以此类推输出时,从第一列循环直到某列不为0为为止。代码参考:https://blog.csdn.net/hg_zhh/article/details/66979683#i...原创 2018-08-08 18:01:05 · 8082 阅读 · 4 评论 -
搞懂树状数组(转)
出处:http://blog.csdn.net/int64ago/article/details/7429868 写下这个标题,其实心里还是没底的,与其说是写博帖,不如说是做总结。第一个接触树状数组还是两年前,用什么语言来形容当时的感觉呢?……太神奇了!真的,无法表达出那种感觉,她是那么的优雅,10行不到的代码,却把事情干的如此出色!没有了解她原理的前提下即使把代码倒背如流也理解不了...转载 2018-08-08 16:27:27 · 156 阅读 · 0 评论 -
树状数组 线段树
https://blog.csdn.net/int64ago/article/details/7429868 看了一个上午的还是懵懵的,感觉这个讲的挺好,码着以后再看看~转载 2018-07-30 15:28:18 · 152 阅读 · 0 评论 -
KMP 模板题 及next数组
每天都在憧憬这些算法我都懂了的那一天。。。然鹅,KMP又看了一遍还是觉得稀里糊涂的。先放个模板题好了(;′⌒`)【hdu1711】 Number SequenceTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 41364 ...转载 2018-09-20 15:03:38 · 287 阅读 · 0 评论 -
很好的并查集讲解
并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,杭电1232畅通工程首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它...转载 2018-08-09 20:14:13 · 231 阅读 · 0 评论 -
排列数(dfs或STL next_permutation函数)
目录zcmu 1620: 全排列 zcmu 1683: 排列1620: 全排列Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 243 Solved: 113[Submit][Status][Web Board]Description给定n个数 a[0] , a[1] ........ a[n-1], 输出其全排列。Inp...原创 2018-09-12 14:53:10 · 277 阅读 · 0 评论 -
Something about 【DFS&BFS】
目录1. 树的BFS和图的BFS的区别2. DFS的回溯3. BFS的复杂度分析4. DFS复杂度分析1. 树的BFS和图的BFS的区别树的BFS不需要判重,因为根本不会重复。二叉树这种数据结构,上下层关系分明,没有环,所以不会出现一个节点的儿子的儿子是它本身的情况。但是在图中这种情况是很有可能的。所以,对于图来说,如果不判重,时间和空间都将产生极大的浪费。2. DFS...原创 2018-11-20 13:24:13 · 125 阅读 · 0 评论 -
生成元(Digit Generator, ACM/ICPC Seoul 2005, UVa1583)
生成元(Digit Generator, ACM/ICPC Seoul 2005, UVa1583)如果x加上x的各个数字之和得到y,就说x是y的生成元。给出n(1≤n≤100000),求最小 生成元。无解输出0。例如,n=216,121,2005时的解分别为198,0,1979。分析: 首先,穷举法;对所有生成数n有生成元m<n,(生成数>生成元),所以枚...原创 2018-07-18 20:37:27 · 403 阅读 · 2 评论 -
三整数排序
原创 2018-07-18 20:38:14 · 190 阅读 · 0 评论 -
计算左闭右开区间内的元素和
计算左闭右开区间内的元素和注意是左闭右开!! 若要计算a[i], a[i+1], …, a[j],则需要调用sum(a+i, a+j+1)。写法一int sum(int* begin, int* end) //传入数组中两个元素的地址{ int n = end - begin; //指针减法运算 int ans = 0; ...原创 2018-07-19 10:39:02 · 438 阅读 · 0 评论 -
sort函数详解
转载:sort函数详解(史上最完整QAQ)https://www.cnblogs.com/AlvinZH/p/6784862.html?utm_source=itdadao&utm_medium=referral作者:AlvinZH作者出处:http://www.cnblogs.com/AlvinZH/作者Github:https://github.com/Pacsiy...转载 2018-07-20 10:54:14 · 190 阅读 · 0 评论 -
蛇形填数
蛇形填数在n×n方阵里填入1,2,…,n×n,要求填成蛇形。例如,n=4时方阵为: 10 11 12 1 916 13 2 8 15 14 3 ...原创 2018-07-18 20:36:00 · 462 阅读 · 0 评论 -
UVa 1225 - Digit Counting(模拟)
1225 - Digit Counting Time limit: 3.000 seconds Trung is bored with his mathematics homeworks. He takes a piece of chalk and starts writing a sequenceof consecutive integers starting ...原创 2018-07-15 18:21:52 · 166 阅读 · 0 评论 -
H.ly的小迷弟(二分查找)
2159: H.ly的小迷弟Description众所周知ly虽然是个小胖子,但是长得还是很好看的,所以她有很多小迷弟(bu cun zai de),但是ly当然不是个只看颜值的人了,所以在她觉得颜值还可以的所有人里,把这些人选出来按照智商排序...虽然wjw不是ly的小迷弟,但是wjw很想知道某个智商值在这群人里能排多少名,那么只能麻烦你帮他了Input第一行一个整数N表示...原创 2018-07-15 18:06:42 · 755 阅读 · 0 评论 -
进制转换问题--搜罗的几个代码
16进制转换为8进制/*16进制转换为8进制*/#include<stdio.h>#include<string.h>#include<stdlib.h>int get_value(const char c){ if(c>='0' && c<='9') return c-'0'; else return c-...原创 2018-07-15 18:03:30 · 201 阅读 · 2 评论