自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 win10配置docker和ubuntu遇到的一些坑

安装docker-desktop https://www.runoob.com/docker/windows-docker-install.html 微软商店进不去 微软商店无法登录和下载Ubuntu,我遇到的是网络连接正常却显示无internet,网页能进但是微软商店无法连接 解决方法:https://www.bilibili.com/read/cv5292887/ 如果之前按照其他方法在注册表路径HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows

2022-05-20 11:16:24 706

原创 PTA L2-001 紧急救援(dijkstra+路径打印)

好久没写dj生疏了,嫖别人的代码 #include <bits/stdc++.h> using namespace std; typedef long long ll; #define iosy ios::sync_with_stdio(false), cin.tie(0), cout.tie(0) const int N = 5e2 + 5; int g[N][N]; int dist[N]; bool st[N]; //点的状态 int c[N]; //救援队数目 int a[N].

2022-04-20 20:46:07 375

原创 简单词法分析器——C++实现 (编译原理作业)

词法分析器——C++实现 单词符号表示 (1)标识符:以字母开头的包含字母和数字的符号 (2)保留字:while、if、else、switch、case (3)常数:数字0~9 (4)运算符:+、-、*、<、<=、==、= (5)界符:; (6)需略除的:空格、制表符、换行符 主要函数 concatenation() //连接token和character中字符作为token中新的字符串 letter ()//判断是否字母 digit() //判断是否数字 reserve() //按照tok

2022-04-18 17:08:43 5819 1

原创 AcWing 802. 区间和(离散化)

由于下标范围(-1e9,1e9),数组或者哈希表都会爆,数据很大但是数量有限,将相隔巨大的点映射到有限长度的数组中,即离散化 a[N],s[N]存放数据,前缀和 alls存所有下标(包括原数组和询问的,根据询问来选择下标来存数) add表示位置x数值+c,query表示询问 简而言之,问题是求(l,r)区间的和,那么只要将所有询问的下标存下,再找出原数据中x的值在下标数组(a)中的位置并加上c即可。 对于询问,前缀和预处理将每次查询的复杂度降为o(1) 总复杂度O((n+2∗m)log(n+2∗m)),输.

2022-02-22 02:33:15 430

原创 Codeforces 1607C - Minimum Extraction

SAMPLE INPUT 8 1 10 2 0 0 3 -1 2 0 4 2 10 1 7 2 2 3 5 3 2 -4 -2 0 2 -1 1 1 -2 SAMPLE OUTPUT 10 0 2 5 2 2 2 -2 题意 t组输入,每次输入整数n,接下来输入n个数,每次操作选其中一个数删除,剩下所有数字减去这个数,直到所有数都删除,求操作中每次最小数的最大值 比如[2,10,1,7]→[1,9,6]→[8,5]→[3] [2,10,1,7]最小数是1,第一次操作所有数字减去1 [1,9,6] 最小数.

2022-01-10 15:22:10 418

原创 Codeforces 1606B-Update Files

EXAMPLE INPUT 4 8 3 6 6 7 1 1 1 output 4 3 6 0 题意 t个样例,每次包括正整数n,k表示n台电脑,最多同时传输数量是k。初始电脑1有数据,一台电脑在1个时间内可以传输到一台无数据的电脑,问最少需要多少时间传输数据到所有电脑。 思路 如果没有k的限制,时间1有2台,时间2有4台,时间x有2的x次方台, 当2的x次方大于k,同一时间只能最多传输k台 #include <bits/stdc++.h> using namespace std; type.

2022-01-10 15:10:07 421

原创 Codeforces 1606A-AB Balance

EXAMPLE INPUT 4 b aabbbabaa abbb abbaab OUTPUT b aabbbabaa bbbb abbaaa 题意 输入t个只包含a,b的字符串,最少需要改变几个字符使其连续子串中ab和ba的数量相等,输出操作后的字符串。 例如abbb中有1个(ab),0个(ba),改成abba或者bbbb即可 思路1 统计字符串中ab和ba的个数,从后往前改,直到数量相等 #include <bits/stdc++.h> using namespace std; typ.

2022-01-10 14:57:51 737

原创 AcWing 848. 有向图的拓扑序列(图的bfs应用)

n 个点 m 条边的有向图,图中可能存在重边和自环。( 1≤n,m≤1e5) a b表示有向边a->b 输出任意一个拓扑序 Sample Input 3 3 1 2 2 3 1 3 Sample Output 1 2 3 #include <bits/stdc++.h> using namespace std; const int N = 100010; int h[N], e[N], ne[N], idx; //邻接表存图 int n, m; int q[N], d[N]; // q

2021-11-09 20:35:06 102

原创 AcWing 847. 图中点的层次(邻接表存图 bfs)

输入n,m表示n个点m条边 a b表示边a b 输入n,求1到n的距离,无路径则输出“-1”、 #include <bits/stdc++.h> using namespace std; const int N = 100010; int h[N], e[N], ne[N], idx; //邻接表存图 int n, m; int q[N], d[N]; // q表示队列,d表示点的入度 void add(int a, int b) { e[idx] = b, ne[idx] = h

2021-11-09 20:31:52 90

原创 POJ3026-Borg Maze(Kruskal+bfs)

题目描述 Input Output Sample Input 2 6 5 ##### #A#A## # # A# #S ## ##### 7 7 ##### #AAA### # A# # S ### # # #AAA### ##### Sample Output 8 11 题意 t组提问,每组n*m个点,S代表起点,A代表外星人,#表示边界,搜索到外星人后可以继续移动,求最小移动的步数 思路 最小生成树+BFS,BFS求每个点到其它点最短距离(因为有墙,不能直接用坐标求

2021-08-14 10:19:50 168

原创 UVA 10462 Is There A Second Way Left?(Kruskal求次小生成树)

4 5 4 1 2 5 3 2 5 4 2 5 5 4 5 5 3 1 2 5 3 2 5 5 4 5 5 5 1 2 5 3 2 5 4 2 5 5 4 5 4 5 6 1 0 Case #1 : No second way Case #2 : No way Case #3 : 21 Case #4 : No second way 思路 求最短路和次短路,有最次路就输出长度。 Kruskal求最短路和次短路,判断是否存在。 #include<iostream> #include<cs.

2021-08-11 15:49:42 129

原创 POJ1251 Jungle Roads(最小生成树)

Input Output Sample Input 9 A 2 B 12 I 25 B 3 C 10 H 40 I 8 C 2 D 18 G 55 D 1 E 44 E 2 F 60 G 38 F 0 G 1 H 35 H 1 I 35 3 A 2 B 10 C 40 B 1 C 20 0 Sample Output 216 30 思路 模板题,Kruskal算法求最小生成树 #include<iostream> #include<cstdio> #include<al..

2021-08-10 10:38:43 116

原创 HDUOJ-1325 Is It A Tree?(并查集)

Problem Description Input Output Sample Input 6 8 5 3 5 2 6 4 5 6 0 0 8 1 7 3 6 2 8 9 7 5 7 4 7 8 7 6 0 0 3 8 6 8 6 4 5 3 5 6 5 2 0 0 -1 -1 Sample Output Case 1 is a tree. Case 2 is a tree. Case 3 is not a tree. 输入x,y表示有向边x->y,要求无环,只有一个根,所有节点连通(根能到

2021-08-04 16:18:26 162

原创 最短路径01-Dijkstra算法

邻接矩阵版 时间复杂度:O(n^2) 空间复杂度:O(n^2)(用邻接矩阵存图) #include<iostream> #include<algorithm> #include<cstdio> using namespace std; const int N = 1e2+5;//最大N个顶点 const int INF = 1<<30;//1左移30位,等于2^30 int n,m,s,g[N][N];//n个顶点,m条边,g[x][y]表示边x->y的

2021-07-28 10:25:28 158

原创 求最短上升子序列(DP)

#include<cstdio> #include<iostream> #include<algorithm> using namespace std; #define INF 1<<30//1e9 int main() { int n, a[100010], dp[100010]; while(~scanf("%d", &n)) { for(int i=0; i<n; i++) {

2021-07-22 09:03:37 314

原创 Apple Catching POJ 2385(DP)

Apple Catching 题目大意:两棵树标记1,2 ,每分钟会有一棵树掉苹果,牛牛站在一棵树下接苹果(起始位置为1) 可以移动到另一棵树下(移动时间不计),移动次数有限,问最多能接到几个苹果 Input Output Sample Input 7 2 2 1 1 2 2 1 1 Sample Output 6 Hint #include <iostream> #include<cstdio> #include<algorithm> using namesp

2021-07-21 15:28:03 128

原创 Codeforces 489B - BerSU Ball(贪心+散列)

题目描述 Input Output Sample Input 4 1 4 6 2 5 5 1 5 7 9 4 1 2 3 4 4 10 11 12 13 5 1 1 1 1 1 3 1 2 3 Sample Output 3 0 2 #include <iostream> #include<algorithm> using namespace std; const int N = 105; int a[N]; int b[N]; int main() { int n,m

2021-05-31 20:36:34 233 2

原创 Codeforces 520B - Two Buttons(BFS)

题目描述 Input Output Sample Input 4 6 10 1 Sample Output 10 1 9 Note #include <iostream> #include<queue> using namespace std; const int N = 10010; int ans[N]; int n,m; void bfs(int a,int b) { queue<int>q; q.push(a); while(!q.

2021-05-31 20:06:54 175

原创 Find a way(BFS)

题目描述 Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year, yifenfei have many people to meet. Especially a good friend Merceki. Yifenfei’s home is at the countryside, but Merceki’s home is in the center of ci

2021-05-30 11:32:00 526 1

原创 AcWing 844 走迷宫 BFS模板题

题目描述 给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。 最初,有一个人位于左上角 (1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。 请问,该人从左上角移动至右下角 (n,m) 处,至少需要移动多少次。 数据保证 (1,1) 处和 (n,m) 处的数字为 0,且一定至少存在一条通路。 输入格式 第一行包含两个整数 n 和 m。 接下来 n 行,每行包含 m 个整数(0 或 1),表示完整的二维数组迷宫

2021-05-29 16:23:37 231

原创 poj3984 迷宫问题

迷宫问题 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。 Input 一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。 Output 左上角到右下角的最短路径,格式如样例所示。 Sam

2021-05-25 19:43:43 166

原创 poj 1321 棋盘问题 DFS

poj 1321 棋盘问题 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 INPUT 输入含有多组测试数据,每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。n <= 8 , k <= n 当为-1 -1时表示输入结束。 随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋

2021-05-25 19:20:08 192 1

原创 二分模板

二分模板 //区间被划分成[l,mid],[mid+1,r]时使用; int besearch_1(int l,int r) { while(l<r) { int mid = l+r >> 1; if(check(mid)) r = mid;//check()判断mid是否满足性质 else l = mid + 1; } return l; } //区间被划分成[l,mid-1],[mid,r]时使用; int

2021-05-19 20:55:39 62

原创 快速排序模板

快速排序 快速排序,双指针算法+递归 #include<iostream> #include<algorithm> using namespace std; void quick_sort(int a[],int l,int r) { if(l>=r)return;//停止递归条件 int i=l-1,j=r+1; int x=a[l+r>>1];//取中间值 while(i<j) { while(a

2021-05-19 20:38:41 89

原创 AcWing 3404. 谁是你的潜在朋友

AcWing 3404. 谁是你的潜在朋友 “臭味相投”——这是我们描述朋友时喜欢用的词汇。 两个人是朋友通常意味着他们存在着许多共同的兴趣。 然而作为一个宅男,你发现自己与他人相互了解的机会并不太多。 幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友。 首先你对借阅记录进行了一番整理,把 N 个读者依次编号为 1,2,…,N,把 M 本书依次编号为 1,2,…,M。 同时,按照“臭味相投”的原则,和你喜欢读同一本书的人,就是你的潜在朋友。 你现在的任务是从这份

2021-05-19 14:53:20 68

原创 A^B%C问题

输入a,b,c,求a^b mod c 直接快速幂会爆数据范围,配合快速乘,乘转为加,超了就取模 #include <iostream> using namespace std; typedef long long ll; ll slow_mul(ll a,ll b,ll c) { ll res=0; while(b) { if(b&1)res=(res+a)%c; a=(a+a)%c; b>>=1;/.

2021-03-30 20:31:50 230

原创 Codeforces 1419A. Digit Game

Codeforces 1419A. Digit Game

2021-02-19 00:20:09 207

原创 String LCM CodeForces - 1473B C语言

用strcpy和strcat函数将字符串长度增加至最小公倍数,然后判断是否相等

2021-01-28 21:27:25 226

原创 杭电OJ 今年暑假不AC C语言贪心算法

此题使用贪心算法,先对结束时间进行排序,开始时间晚于上个结束时间即可+1

2021-01-13 05:26:43 1623

原创 OJ字符串多组输入问题

多组输入字符串while((scanf("%s",a))!=EOF) 要求字符串带空格的可以用while(gets(a)!=NULL过OJ

2021-01-12 05:37:47 1725

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除