
算法
青云66
既然点进来,就顺便关注一下,谢谢
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
区间k大数查询简单方法
问题描述给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。输入格式第一行包含一个数n,表示序列长度。第二行包含n个正整数,表示给定的序列。第三个包含一个正整数m,表示询问个数。接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。输出格式总共输出m行,每行一个数,表示询问的答案。样例输入51 2 3 4 521 5 22 3 2样例输出42数据规模与约定对于30%的数据,n,m&原创 2020-10-11 11:27:03 · 469 阅读 · 0 评论 -
修改mylink为双向链表,写反向迭代器
#ifndef MYLINK_H__#define MYLINK_H__#include <ostream>#include<iostream>using namespace std;template <typename T>struct Unit { T value; Unit *next; Unit *pre;};template <typename T>std::ostream& operator << (st原创 2020-10-09 14:15:41 · 297 阅读 · 0 评论 -
矩阵快速幂模板与例题
两个矩阵间的乘法struct node{int dp[100][100]; };node jz(int n,node a,node b){ node ans1;memset(ans1.dp,0,sizeof(ans1.dp)); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) for(int k=1;k<=n;k++) { ans1.dp[i][j]=(ans1.dp[i][j]+a.dp[i][k]*b.dp[k][j]原创 2020-08-01 16:52:58 · 254 阅读 · 0 评论 -
【蓝桥杯】 安慰奶牛----详解
题目:Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路。道路被用来连接N个牧场,牧场被连续地编号为1到N。每一个牧场都是一个奶牛的家。FJ计划除去P条道路中尽可能多的道路,但是还要保持牧场之间 的连通性。你首先要决定那些道路是需要保留的N-1条道路。第j条双向道路连接了牧场Sj和Ej(1 <= Sj <= N; 1 <= Ej <= N; Sj !...原创 2020-03-02 21:42:48 · 1903 阅读 · 3 评论 -
第十届蓝桥杯【C++省赛B组】简单易懂试题解析
第一题 标题:组队(本题总分:5 分)作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员,组成球队的首发阵容。每位球员担任 1 号位至 5 号位时的评分如下表所示。请你计算首发阵容 1号位至 5 号位的评分之和最大可能是多少?解题思路:取某个位置中分数最高的队员,要注意一个队员只能在一个位置,不能同时占多个位置。答案:490(这题可以直接肉眼看出来,要写代码的话...原创 2020-02-25 12:26:07 · 1958 阅读 · 0 评论 -
第九届蓝桥杯【C++省赛B组】【第六题:递增三元组】三种做法
递增三元组三种做法给定三个整数数组A = [A1, A2, … AN],B = [B1, B2, … BN],C = [C1, C2, … CN],请你统计有多少个三元组(i, j, k) 满足:1 <= i, j, k <= NAi < Bj < Ck【输入格式】第一行包含一个整数N。第二行包含N个整数A1, A2, … AN。第三行包含N个整...原创 2020-02-16 00:29:31 · 370 阅读 · 0 评论 -
蓝桥杯第十届迷宫(学霸的迷宫)---dfs和bfs两种(一种巧妙地做法)
30 500101010100101100100101011001011010010000100010101000001000100000101010010000100000001001100110100101011110110100100010000011010010111000110000000100000100000000101010001101000010100000101010...原创 2020-02-07 22:18:55 · 595 阅读 · 0 评论 -
poj2676 Sudoku 数独(一种简单的做法)
又是一种有趣的dfs读题我们可以知道:0上要填的数应该是该行、该列和方块(33)中都未出现的数字这是我们机会想先做一个check函数,用来检查填的数是否合格这里的难点是方块(33)如何判断,这就需要我们常用的数学,x本身减去x%3,结果就是它第一个数字。通过这种方式,我们可以确定(x,y)所在位置的方块的首地址int check(int x,int y,int num){ for(in...原创 2020-01-30 20:57:05 · 272 阅读 · 0 评论 -
[poj 1416]暴力dfs--我果然太菜
切碎公司时限: 1000MS 内存限制: 10000K提交总数: 7356 接受的: 3972描述您刚刚负责为碎纸公司开发新的碎纸机,尽管“正常”的碎纸机会将纸片切成小块,以使内容物变得不可读,但这种新的碎纸机需要具有以下与众不同的基本特征。1.切碎机将目标编号和上面写有编号的纸张作为输入。2.它将纸张切成薄片(或切成薄片),每个薄片上都有一个或多个数字。3.写在每件作品上的数字...原创 2020-01-28 20:50:26 · 252 阅读 · 0 评论 -
最大割详解poj-2531Network Saboteur(网络破坏者)
什么是最大割你可以简单理解为:割是图中定点的一个划分,它把图中的所有顶点划分成两个顶点集合S和T。最大割就是令这两个集合之间割线权值最大例如红色圈中的两条边之和就是最大割左边为S集合,右边为T集合做法分成两个子集S和T,一开始所有的点都在S集合里面,DFS遍历(回溯法)判断每一个点是继续留在S集合还是移动到T集合里面去,继续留在S里面的话对现有的代价总和没有影响。移动到集合T的...原创 2020-01-27 23:16:00 · 2990 阅读 · 3 评论 -
[HAOI2006]受欢迎的牛---强连通分量加缩点
题目描述每头奶牛都梦想成为牛棚里的明星。被所有奶牛喜欢的奶牛就是一头明星奶牛。所有奶牛都是自恋狂,每头奶牛总是喜欢自己的。奶牛之间的“喜欢”是可以传递的——如果A喜欢B,B喜欢C,那么A也喜欢C。牛栏里共有N 头奶牛,给定一些奶牛之间的爱慕关系,请你算出有多少头奶牛可以当明星。输入格式:第一行:两个用空格分开的整数:N和M第二行到第M + 1行:每行两个用空格分开的整数:A和B,表示...原创 2020-01-23 12:18:38 · 213 阅读 · 0 评论 -
并查集--畅通工程(浙大计算机研究生复试上机考试-2005年 )
畅通工程这是一道简单的并查集。不懂并查集的点进来通过并查集的每一次合并,最后看看有多少个集合,有多少集合就是有多少不连通的城市,最后总集合数减一,就是需要新修的路#include <iostream>#include <vector>#include <set>using namespace std;vector<int> g;in...原创 2019-10-28 14:14:05 · 156 阅读 · 0 评论 -
最小生成树--还是畅通工程(浙大计算机研究生复试上机考试-2006年)
还是畅通工程例题首先介绍一下什么是最小生树:一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。我这里要说的是kruskal(克鲁斯卡尔)算法。什么是kruskal(克鲁斯卡尔)算法之前我博客里讲过,如果有什么不懂可以点击超链接,学习。这道题其实就是最小生成树的模板题,唯一变形的是有多组数据输入,大家看一下代码就懂#inc...原创 2019-10-28 13:58:51 · 177 阅读 · 0 评论 -
有重边最短路----hdu最短路径问题(浙大计算机研究生复试上机考试-2010年)
#include<bits/stdc++.h>using namespace std;int n,m;int mapp[1001][1001],val[1001][1001];int dp[1001],val1[1001];void spfa(int x){ queue<int> que; que.push(x); dp[x]=0; val1[x]=0;...原创 2019-10-27 19:14:43 · 301 阅读 · 0 评论 -
带权并查集详解加例题----洛谷P1196 [NOI2002]银河英雄传说
首先介绍一下什么是带权并查集带权故名思意,在一个集合中,集合之间两两距离为权值,它与普通的的并查集主要差在find函数上对比普通int find(int x){ if(f[x]!=x) f[x]=find(f[x]); return f[x];}带权int find(int x){ if(fa[x].fa != x) { int t=fa[x].fa; f...原创 2019-10-27 19:06:05 · 306 阅读 · 0 评论