- 博客(285)
- 收藏
- 关注
原创 常用算法模板
并查集求集合总数求每个集合有多少个元素Dijkstra算法Kruskal算法拓扑排序线性筛素数树状数组Trie树最近公共祖先LCA最大流01背包匈牙利算法哈夫曼树线段树大数加减乘除...
2019-10-25 14:15:26 639
原创 迷宫问题【POJ3984】
题目链接输出路径的BFSPOJ似乎不能使用C++11中的初始化方式pair类型的插入需要用make_pair(a, b)#include <iostream>#include <algorithm>#include <cstdio>#include <vector>#include <queue>using namesp...
2019-10-31 10:46:01 139
原创 1076. 迷宫问题
AcWing题目链接带有路径的最短路径BFS#include <iostream>#include <algorithm>#include <cstdio>#include <vector>#include <queue>using namespace std;typedef pair<int, int> PI...
2019-10-31 10:35:53 190
原创 1097. 池塘计数
AcWing题目链接Flood Fill经典题数据较小使用dfs,数据较大使用bfs#include <iostream>#include <cstring>#include <cstdio>#include <queue>using namespace std;const int N = 1005;char g[N][N];in...
2019-10-31 09:52:38 265
原创 858. Prim算法求最小生成树
AcWing题目链接#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int N=510,INF=0x3f3f3f;int n,m;bool st[N];//状态int g[N][N]; //创建图int d[N];//点之间对距离i...
2019-10-30 22:49:09 167
原创 859. Kruskal算法求最小生成树
AcWing题目链接Kruskal算法把所有边按照边权从小到大排序把边权最小的两个顶点使用并查集加入同一个集合#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int M = 2e5+5;int root[M];struct...
2019-10-30 22:47:03 112
原创 854. Floyd求最短路
Floyd三重循环,一般顶点数不超过200时间复杂度O(n3)O(n^3)O(n3)#include <iostream>#include <cstring>#include <algorithm>using namespace std;int n, m, Q;const int N = 210;const int INF = 1e9;int...
2019-10-30 13:43:31 131
原创 852. spfa判断负环
AcWing题目链接#include <iostream>#include <vector>#include <algorithm> #include <cmath>#include <cstring>#include <queue>#include <unordered_map>using nam...
2019-10-30 11:41:49 154
原创 851. spfa求最短路
SPFA使用队列来保存更新过的顶点(栈或者优先队列也可以)。只有更新过的顶点才会产生松弛操作。#include <iostream>#include <vector>#include <algorithm> #include <cmath>#include <cstring>#include <queue>#i...
2019-10-30 11:22:20 118
原创 853. 有边数限制的最短路
Bellman-Ford求解有负权边的单源最路径问题。时间复杂度O(nm)O(nm)O(nm)通常来说用SPFA注意备份距离数组的使用#include <iostream>#include <cstring>#include <algorithm>using namespace std;int m, n, k;const int N = 5...
2019-10-29 23:03:19 187
原创 860. 染色法判定二分图
AcWing题目链接染色法用染色法判断二分图如果一个图是二分图,当且仅当图中不含奇数环对每个节点进行交错染色,如果染色没有出现矛盾则是二分图。#include <iostream>#include <cstring>#include <algorithm>#include <queue>using namespace std;co...
2019-10-29 21:27:19 134
原创 848. 有向图的拓扑序列
AcWing题目链接拓扑排序如果用数组模拟队列的话,可以直接输出拓扑序列注意队尾是从-1开始#include <iostream>#include <cstring>using namespace std;const int N = 1e5+5;int h[N], e[N], ne[N];int q[N], d[N]={0};int idx = 0;i...
2019-10-29 20:59:17 270
原创 847. 图中点的层次
AcWing题目链接BFS模板题用数组模拟队列#include <iostream>#include <cstring>#include <algorithm>#include <queue>using namespace std;const int N = 1e5+5;const int M = 2e5+5;int h[N], ...
2019-10-29 20:28:43 204
原创 846. 树的重心
注意ne数组和e数组的大小是顶点数的两倍每个顶点遍历一遍,搜索中计算和返回。#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 1e5+5, M = N*2;bool st[N]={false}; int h[N],...
2019-10-29 20:09:09 147
原创 微信红包
牛客网题目链接剑指offer经典题数组中出现次数超过一半的数字class Solution {public: int moreThanHalfNum_Solution(vector<int>& nums) { int cnt = 0, value; for(auto x: nums){ if(cnt == ...
2019-10-29 09:20:26 97
原创 生成格雷码
在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code)。思路在求第n位的格雷码时,先在所有第n-1位格雷码前顺序加0,然后在n-1为格雷码前逆序加1class GrayCode {public: vector<string> res; void dfs(int u, int n){ if(u ==...
2019-10-29 09:01:23 97
原创 合法括号序列判断
把做括号视为1,有括号视为-1,在字符串的遍历过程中保证前缀和为非负同时反向做一遍,但是此时右括号为1,左括号为-1,保证前缀和为非负class Parenthesis {public: bool chkParenthesis(string A, int n) { int x = 0; for(auto c: A){ if(c=...
2019-10-29 07:56:34 187
原创 机器人走方格I
数组要初始化为0class Robot {public: int dp[13]={0}; int countWays(int x, int y) { for(int i = 1; i <= x; i++) for(int j = 1; j <= y; j++){ if(i==1 &&am...
2019-10-29 07:46:47 96 1
原创 上楼梯
(a+b)%c = ((a%c)+(b%c))%c两次取模class GoUpstairs {public: const int N = 1e5+5; const int M = 1e9+7; int countWays(int n) { int F[N]; F[1] = 1; F[2] = 2; F[3...
2019-10-29 07:39:15 142
原创 844. 走迷宫
AcWing题目链接BFS有个小剪枝,对于BFS第一次到达的点才操作,不然就终止。#include <iostream>#include <cstdio>#include <cmath>#include <cstring>#include <queue>using namespace std;typedef pair&l...
2019-10-27 17:31:49 258
原创 843. n-皇后问题
AcWing题目链接DFS#include <iostream>#include <cstdio>#include <cmath>using namespace std;const int N = 20;int n;int pos[N];void dfs(int u){ if(u == n){ //8个皇后都放好了 放在前u行 for(...
2019-10-27 17:09:33 150
原创 八皇后问题
牛客网题目链接DFS#include <iostream>#include <cstdio>#include <cmath>using namespace std;int num = 0;int ans[92][8];//存八皇后的所有串 int pos[8];//存第i行的皇后存在哪一列 void dfs(int u){ if(u == 8...
2019-10-27 16:23:27 159
原创 7-34 通讯录的录入与显示 (10 分)
注意给出的查询有负数#include <iostream>#include <string>#include <vector>#include <cctype>#include <cstdio>#include <cstring>#include <algorithm>#include <...
2019-10-26 11:27:54 893
原创 1118 机器人走方格
51 Nod 题目链接题意从一个矩阵的左上角走到右下角,只能往右走和往下走一步,问有多少种走法。解析这是动态规划的经典题,可以使用一维数组优化,同时要在计算的过程中取模。#include <iostream>#include <string>#include <vector>#include <cctype>#include <...
2019-10-26 11:05:20 167
原创 1014 : Trie树
hihoCoder题目链接注意这道题的数据范围写错了,应该是10610^6106#include <iostream>#include <string>#include <vector>#include <cctype>#include <cstdio>#include <cstring>#include...
2019-10-26 10:36:09 190
原创 解读密码
牛客网题目链接题意从一个字符串中提取出数字#include <iostream>#include <string>#include <vector>#include <cctype>#include <cstdio>#include <cstring>#include <algorithm>#i...
2019-10-25 22:35:44 365
原创 最长回文
牛客网题目链接题意找到长度为奇数和偶数的字符串的最长回文串#include <iostream>#include <string>#include <vector>#include <cctype>#include <cstdio>#include <cstring>#include <algorith...
2019-10-25 22:26:38 117
原创 强势糖果
牛客网题目链接题意给出两个字符串, 第二个字符串出现的类型必须在第一个字符串中出现过,同时第一个字符串的长度要比第二字符串长#include <iostream>#include <string>#include <vector>#include <cctype>#include <cstdio>#include <...
2019-10-25 22:05:25 129
原创 NowCoder的密码
牛客网题目链接题意全排列给出的数据,然后从这些全排列中选出素数输出。注意不存在素数时要输出NONE每个测试数据间需要增加一个空行#include <iostream>#include <string>#include <vector>#include <cctype>#include <cstdio>#inclu...
2019-10-25 17:14:55 319
原创 835. Trie字符串统计
AcWing题目链接Trie树模板2#include <iostream>#include <string>#include <vector>#include <cctype>#include <cstdio>#include <cstring>#include <algorithm>#inclu...
2019-10-25 13:58:35 159
原创 冲突的电话号码
牛客网题目链接题意有一些电话号码,如果这些电话号码没有重复前缀则输出No,有重复的前缀则输出Yes版本2使用Trie树在这里插入代码片版本1#include <iostream>#include <string>#include <vector>#include <cctype>#include <cstdio>...
2019-10-25 11:11:58 192
原创 过年回家
牛客网题目链接Dijkstra算法最短路径问题#include <iostream>#include <string>#include <vector>#include <cctype>#include <cstdio>#include <cstring>#include <algorithm>...
2019-10-24 23:16:39 125
原创 寻找舞伴
牛客网题目链接#include <iostream>#include <string>#include <vector>#include <cctype>#include <cstdio>#include <algorithm>#include <unordered_map>using namesp...
2019-10-24 22:57:17 338
原创 包含一
牛客网题目链接这道题和统计1的个数很像,但是有区别,在另一个题中11是算作两个1,而这里只算1个1。#include <iostream>#include <cstdio>#include <algorithm>#include <queue>#include <vector>#include <cstring>...
2019-10-24 22:33:12 118
原创 最长句子
牛客网题目链接DAG最长路需要用到动态规划,注意容器清空。#include <iostream>#include <cstdio>#include <algorithm>#include <queue>#include <vector>#include <cstring>#include <unorde...
2019-10-24 20:24:40 164
原创 1028 大数乘法 V2
51 Nod题目链接import java.math.BigInteger;import java.util.Scanner;public class Main { public static void main(String[] args) { BigInteger a, b; Scanner in = new Scanner(System.in); a = in.nex...
2019-10-24 17:07:33 144
原创 7-18 银行业务队列简单模拟 (25 分)
简单模拟#include <iostream>#include <queue>using namespace std;int main(){ int n, x; queue<int> A, B; cin>>n; for(int i = 0; i < n; i++){ cin>>x; if(x&1) A...
2019-10-24 14:12:25 884
原创 874. 筛法求欧拉函数
AcWing题目链接#include <iostream>using namespace std;typedef long long LL;const int N = 1e6+5;int primes[N];bool st[N];int phi[N];int k = 0;LL get_eulers(int n){ phi[1] = 1; for(int...
2019-10-24 10:00:47 104
原创 868. 筛质数
AcWing题目链接埃氏筛法时间复杂度O(nloglogn)O(nloglogn)O(nloglogn)#include <iostream>using namespace std;const int N = 1e6+5;int primes[N];bool st[N];int k = 0;void get_primes(int n){ for(int i =...
2019-10-23 23:50:46 156
原创 873. 欧拉函数
AcWing题目链接欧拉函数ϕ(n)\phi(n)ϕ(n)表示1∼n1\sim n1∼n中与nnn互质的个数n=p1α1p2α2…pkαkn = p_1^{\alpha_1}p_2^{\alpha_2} \dots p_k^{\alpha_k}n=p1α1p2α2…pkαkϕ(n)=n(1−1p1)(1−1p2)…(1−1pk)\phi(n)= n(1-\frac{1}{p_1...
2019-10-23 22:55:06 121
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人