- 博客(10)
- 收藏
- 关注
原创 最长连续不重复子序列(双指针算法)
# include <bits/stdc++.h>using namespace std;const int N = 1e5+10;int a[N], s[N];int main(){ int n; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; int res = 0; for(int i=0, j=0;i<n;i++) { s[a[i]]++; while(s[a[i]]>1) .
2021-05-26 19:35:38 91
原创 图中点的层次(树与图的广度优先遍历)
代码如下:# include <iostream># include <cstring># include <queue># include <algorithm># include <cstdio> using namespace std;const int N = 100010;int h[N], e[N], ne[N], idx, n, m;int d[N];queue<int> q;void add.
2021-05-15 19:36:21 118
原创 树的重心(树与图的深度优先遍历)
题目:给定一颗树,树中包含 n 个结点(编号 1∼n)和 n−1 条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。输入格式:第一行包含整数 n,表示树的结点数。接下来 n−1 行,每行包含两个整数 a 和 b,表示点 a 和点 b 之间存在一条边。输出格式:输出一个整数 m,表示将重心删除后,剩余各个连通块中点数的最大值。...
2021-05-15 11:35:49 113
原创 二分(整数二分和浮点数二分)
整数二分通过两个例题进行总结归纳例题一:数的范围题目:给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。如果数组中不存在该元素,则返回 -1 -1。输入格式:第一行包含整数 n 和 q,表示数组长度和询问个数。第二行包含 n 个整数(均在 1∼10000 范围内),表示完整数组。接下来 q 行,每行包含一个整数 k,表示一个询问元素。输出格式:共 q 行,每行包含两个整数,表示所求元素
2021-05-14 00:16:51 133
原创 UVa 422(Word-Search Wonder)
Input: 输入的第一行将指定字母矩阵各边的长度(以字符为单位)(字母矩阵将为正方形)。 长度l将在1≤l≤100的范围内。输入的下l行将是矩阵本身,每行将包含l个大写字母。单词列表随即出现。 每个单词本身都将排成一行; 不超过100个字。每个单词的长度为100个或更少的字符,并且仅包含大写字母。输入的最后一行将包含一个零字符Output: 您的程序应尝试从难题中的单词列表中找到每个单词。 如果单词中的所有字符都可以在字母矩阵中的一条(单向)水平,垂直或对角线中跟踪,则表示单词“找到”。 单.
2021-05-12 00:21:51 256 6
原创 走迷宫(宽度优先搜索BFS)
题目:给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角 (n,m) 处,至少需要移动多少次。数据保证 (1,1) 处和 (n,m) 处的数字为 0,且一定至少存在一条通路输入样例:5 50 1 0 0 00 1 0 1 00 0 0 0 00 1 1 1 00 0 0 1 0.
2021-05-11 15:52:10 184
原创 排列数字(深度优先搜索DFS)
题目:给定一个整数 n,将数字 1∼n 排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。输入样例:3输出样例:1 2 31 3 22 1 32 3 13 1 23 2 1# include <iostream>using namespace std;int nums[10], state[10];//设置保存数据的nums数组和状态数组stateint n;void dfs(int u)//这里的u可以看成层数{ .
2021-05-11 15:10:35 224
原创 蛇形矩阵
题目:输入两个整数 n 和 m,输出一个 n 行 m 列的矩阵,将数字 1 到 n×m 按照回字蛇形填充至矩阵中。输入样例:3 3输出样例:1 2 38 9 47 6 5# include <iostream># include <cstdio>using namespace std;int s[100][100];int main(){ int n, m; cin>>n>>m; int dx[]=.
2021-05-10 19:49:51 178 1
原创 D. Maximum Sum of Products(Educational Codeforces Round108)
题目链接点这里题目大意是给你两个二维数组a和b(同长),可以翻转一次a数组的任意子片段;要你求最大的a、b数组对应乘积之和。即翻转后的a1* b1+a2* b2+a3* b3+…+an* bn的最大值。代码如下:# include <iostream># include <algorithm>using namespace std;typedef long long LL;LL a[5010], b[5010];LL pr[5010];int main()
2021-05-09 21:15:27 95
原创 表达式求值(栈+unordered_map)
第一次写博客,见谅hhDescription:给定一个表达式,其中运算符仅包含 +,-,*,/(加 减 乘 整除),可能包含括号,请你求出表达式的最终值。Input: (2+2) * (1+1)Output: 8原题链接# include <bits/stdc++.h>using namespace std;stack<int> num;stack<char> op;void eval(){ auto b = num.top(
2021-05-03 14:37:31 182
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人