
常见算法
不哭的超人
愿你孤独的努力终有回报,愿你前行的路上有人相伴。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
P3367 【模板】并查集~~手动模拟~~
题目描述 如题,现在有一个并查集,你需要完成合并和查询操作。 输入输出格式 输入格式: 第一行包含两个整数N、M,表示共有N个元素和M个操作。 接下来M行,每行包含三个整数Zi、Xi、Yi 当Zi=1时,将Xi与Yi所在的集合合并 当Zi=2时,输出Xi与Yi是否在同一集合内,是的话输出Y;否则话输出N 输出格式: 如上,对于每一个Zi=2的操作,都有一行输出,每行包含一个大写字母,为Y或者N 输...原创 2020-10-19 15:32:28 · 301 阅读 · 0 评论 -
完全背包
题目描述 一个旅行者有一个最多能装M公斤的背包,现在有n种物品,每件物品数量无限的,它们的重量分别是wi,它们的价值分别是vi元。从中选取若干件(同一物品可以选任意件),求旅行者能获得最大总价值。 输入 第1行:两个整数,M背包容量(M<=1000)和n物品数量(n<=30); 第2至n+1行:每行两个整数wi,vi,表示每个物品的重量和价值。 输出 一个数,表示最大总价值。 样例输入...原创 2019-04-18 23:11:39 · 145 阅读 · 0 评论 -
P1060 开心的金明(01背包)
金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NN元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的NN元。于是,他把每件物品规定了一个重要度,分为55等:用整数1-51−5表示,第55等最重要。他还从因特网上查到了每件物品的价格(都是整数元...原创 2019-04-15 11:55:26 · 141 阅读 · 0 评论 -
P3375 【模板】KMP字符串匹配
题目描述 如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置。 为了减少骗分的情况,接下来还要输出子串的前缀数组next。 (如果你不知道这是什么意思也不要问,去百度搜[kmp算法]学习一下就知道了。) 输入输出格式 输入格式: 第一行为一个字符串,即为s1 第二行为一个字符串,即为s2 输出格式: 若干行,每行包含一个整数,表示s2在s1中出现的位置 接下来1行...原创 2020-10-19 15:28:07 · 162 阅读 · 0 评论 -
P1226 【模板】快速幂||取余运算
题目描述 输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。 输入输出格式 输入格式: 三个整数b,p,k. 输出格式: 输出“b^p mod k=s” s为运算结果 输入输出样例 输入样例#1: 2 10 9 输出样例#1: 2^10 mod 9=7 /* 快速幂 */ #include <bits/stdc++.h> using namespace std...原创 2019-04-07 00:39:27 · 151 阅读 · 0 评论 -
快速排序。
归并排序是每一次的递归调用会确定正确排序中的一个值。 然后这时只确定了个元素的位置。 再通过 fun(left,i-1); fun(i+1,right); 确定这个元素两边的正确排序的位置 #include <bits/stdc++.h> using namespace std; int a[5005]; int fun(int left,int right) { if(left ...原创 2019-03-18 18:47:42 · 200 阅读 · 0 评论 -
括号匹配(C++栈)
判断给定表达式中的括号是否匹配,表达式中的合法括号为”(“, “)”, “[", “]“, “{“, ”}”,这三个括号可以按照任意的次序嵌套使用。 将”(“, , “[”, , “{“,逐个的进行压栈,分别遇到)] } 就将栈中的括号弹出。 到最后判断栈中是否还有元素, 如果还有元素,则说明不匹配 做了7遍 #include &lt;bits/stdc++.h&gt; #include &...原创 2019-03-18 12:42:27 · 522 阅读 · 0 评论 -
归并排序
按照程序走一遍 mergesort函数的作用就是将数组不停的二分,直到分到 left~mid mid+1~right 各自只有一个单元素。 接下来就是合并, left~mid mid+1~right 这两部分在b数组中重新排序了。当然要放回原来的a数组中,a数组这时的起点是left 这个图能表现出来 #include <bits/stdc++.h> using namespace st...原创 2019-03-17 20:03:53 · 249 阅读 · 0 评论 -
哈希排序
#include <stdio.h> int a[999999]; int ans = -1; int main() { int n; scanf("%d",&n); for(int i = 1;i <= n;i++){ int x; scanf("%d",&x); if(x+n > ans){ ans = x+n; } a[...原创 2019-07-14 19:58:01 · 199 阅读 · 0 评论