- 博客(17)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 KMP算法理解(参考BILIBILI正月点灯笼)
最近学到KMP算法参考了很多视频博客都很难理解,直到在b站看到灯神的视频有了一些感悟,于是写下来分享
2021-12-12 11:10:43
312
原创 全网最清楚的自上而下的语法分析代码(LL1文法判断)
FirstFirstFirst集合简单的来说就是箭头右侧首个终结符的集合FollowFollowFollow集就是求出这个非终结符后面能跟些什么终结符。SelectSelectSelect集合和之前的FollowFollowFollow和FirstFirstFirst不同.SelectSelectSelect集合的目标是产生式而不是非终结符.简而言之我们求的是而不是Select(S)
2023-11-19 15:43:58
663
原创 A星算法与八数码问题(Python实现)
在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局和目标布局找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变。
2023-11-15 18:10:16
1368
原创 Python 技巧备忘
修饰的函数会被当做参数传入#函数执行时执行__call__函数#带参数的类修饰器#有参数传进来时候,函数会在__call__函数中传入。
2023-11-15 17:04:29
126
原创 AcWing 4004.传送阵
AcWing 4004.传送阵题目描述格式题解题目要求最小的成本,所以我们需要先判断起点到终点是否有通路,可以直接对起点DFS,把所有的联通点存入vector之中,并且可以用cnt[][]来存储走过的坐标。如果起点与终点没有通路,我们可以对终点做DFS,找到终点的所有联通点,之后我们可以通过两个for循环遍历起点和终点的联通点,找到距离最小的两个点,那么这两个点的成本(欧几里得距离)也就最小。#include<bits/stdc++.h>#define io_opt ios
2022-02-27 18:35:32
230
原创 Leetcode 2151.基于陈述统计最多好人数(二进制枚举)
Leetcode 2151.基于陈述统计最多好人数(二进制枚举)二进制枚举这次题解里我发现了一种二进制枚举的方法。简单来说类似本题题意,假如有n种不同的状态,就可以用一个二进制数表示,每一位的0和1表示不同状态。以本题为例,二进制数1101可以表示,第1、2、4位是好人,第2位是坏人。所以,我们可以枚举从[0,2n)[0,2^{n})[0,2n) 的数字,就代表每一种状态。模板for(int i=0; i<(1<<n); i++){//二进制枚举//枚举每一个状态
2022-01-26 00:27:58
142
原创 Codeforces Round #767 (Div. 2)A-C题解
Codeforces Round #767 (Div. 2)A-C题解A - Download More RAM题解告诉你当前有k的内存,并且有n个可以增加内存的软件,每个软件可以增加b_i的内存,条件是当前内存需要>=a_i,求可以变成的最大内存是多少。只需要建立一个pair<int,int> ab[N] 将其排序,满足a_i<=k时则k+=b_i 就行了。#include<bits/stdc++.h>#define io_opt ios::sync_wi
2022-01-23 16:51:51
546
原创 Educational Codeforces Round 121 A-C
Educational Codeforces Round 121今天的CF很不容易做了ABC,居然碰上了停电直接Unrated了A - Equidistant Letters题解题目会给出一个字符串,其中保证每个字母出现<=2次。要求你变换字母顺序,使得出现每对两次的字母间隔相同。例如:abcdcba改变为ababcdc,这样a和a,b和b,c和c之间距离都是1,所以我们可以考虑每个使距离为0,直接sort字符串排序就好了#include<bits/stdc++.h>#
2022-01-17 22:27:48
492
1
原创 并查集 虚拟节点
并查集 虚拟节点最近学到并查集,遇到了 UVA11987 Almost Union-Find这个经典问题。此时就需要用到虚拟节点这个概念,但是看了很多博客都没怎么理解,今天把自己想法记录一下。题目描述输入两个元素 p 、 q ,如果 p 、q 不在一个集合中,合并这两个元素所在的集合。输入两个元素 p 、 q ,如果 p 、q 不在一个集合中,将 p 添到 q 所在的集合。输入一个元素 p ,查询 p 所在的集合的大小和元素和。其中,1和3的操作通过并查集都可以很容易的实现,但是并查集不具有
2022-01-12 13:55:59
226
原创 洛谷月赛 LGR-099 div.2 A-B题解
LGR-099Easy Strings MergingAlice and Bob are playing a Normal Game
2022-01-12 00:20:41
599
原创 codeforces Hello 2021
codeforces Hello 2021A. Stable Arrangement of Rooks类似一个八皇后问题,不过增加了一个条件,每个棋子移动一步后仍需满足要求。所以每个棋子之间应该间隔一行一列。我们只需要在二维数组中不断添加棋子,最后判断添加棋子数量是否和数据相等就知道能否建立一个stable arrangement。#include<bits/stdc++.h>#define io_opt ios::sync_with_stdio(false);cin.tie(0);c
2022-01-05 17:13:09
729
原创 【贪心问题】喷水装置
喷水装置链接:vjudge 喷水装置题目描述长 L 米,宽 W 米的草坪里装有 n 个浇灌喷头。每个喷头都装在草坪中心线上(离两边各 W/2米)。我们知道每个喷头的位置(离草坪中心线左端的距离),以及它能覆盖到的浇灌范围。请问:如果要同时浇灌整块草坪,最少需要打开多少个喷头?输入格式输入包含若干组测试数据。第一行一个整数 T 表示数据组数;每组数据的第一行是整数 n、L 和 W;接下来的 n 行,每行包含两个整数,给出一个喷头的位置和浇灌半径(上面的示意图是样例输入第一组数据所描述
2021-12-24 12:16:07
223
原创 # Codeforces Round #761 (Div. 2)
Codeforces Round #761 (Div. 2)这周的codeforces终于突破了A题战士,来记录一下。A Forbidden Subsequence题面1.给出了三个概念: permutation 、 subsequence和 lexicographically smaller。 permutation指两个字符串中各个字母数量相同;subsequence指可以通过删减b的字符得到a; lexicographically smaller指a是b的前缀,或者a和b两个字符串中两
2021-12-17 14:00:46
356
原创 codeforces #758 B. Build the Permutation
Build the Permutation前言这道题是昨晚cf的b题,雀氏让我想了好久。题目You are given three integers n,a,b. Determine if there exists a permutation p1,p2,…,pn of integers from 1 to n, such that:There are exactly a integers i with 2≤i≤n−1 such that pi−1pi+1 (in other words, th
2021-12-12 16:55:51
1212
原创 洛谷刷题 P1996 约瑟夫问题
洛谷刷题 P1996 约瑟夫问题问题如下n 个人围成一圈,从第一个人开始报数,数到 m 的人出列,再由下一个人重新从 1 开始报数,数到 m 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。输入格式输入两个整数 n,m (1 < n,m < 100)输出格式输出一行 n 个整数,按顺序输出每个出圈人的编号。思路我使用两个数组l[N],r[N]储存了一个双向链表,指向第i个人左侧和右侧的对象,从而链接每个人。开始我用下标为0的元素储存第一个同学,用下
2021-12-04 15:18:15
1058
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人