前缀统计
一、题目
题目链接:https://www.acwing.com/problem/content/144/
相关题目:https://www.acwing.com/problem/content/837/
给定 NNN 个字符串 S1,S2…SNS_1,S_2…S_NS1,S2…SN,接下来进行 MMM 次询问,每次询问给定一个字符串 TTT,求 S1∼SNS_1 \sim S_NS1∼SN 中有多少个字符串是 TTT 的前缀。
输入字符串的总长度不超过 10610^6106,仅包含小写字母。
输入格式
第一行输入两个整数 N,MN,MN,M。
接下来 NNN 行每行输入一个字符串 SiS_iSi。
接下来 MMM 行每行一个字符串 TTT 用以询问。
输出格式
对于每个询问,输出一个整数表示答案。
每个答案占一行。
数据范围
1≤N,M≤1051 \le N,M \le 10^51≤N,M≤105
输入样例:
3 2abbcabcabcefg
输出样例:
20
二、Trie树
1. insert()操作
从根节点开始,同时遍历字符串,每次判断其相关的儿子节点是否存在。 ...
区间合并
一、题目
题目链接:https://www.acwing.com/problem/content/805/
给定 nnn 个区间 [li,ri][l_i, r_i][li,ri],要求合并所有有交集的区间。
注意如果在端点处相交,也算有交集。
输出合并完成后的区间个数。
例如:[1,3][1,3][1,3] 和 [2,6][2,6][2,6] 可以合并为一个区间 [1,6][1,6][1,6]。
输入格式
第一行包含整数 nnn。
接下来 nnn 行,每行包含两个整数 lll 和 rrr。
输出格式
共一行,包含一个整数,表示合并区间完成后的区间个数。
数据范围
1≤n≤1000001 \le n \le 1000001≤n≤100000,
−109≤li≤ri≤109-10^9 \le l_i \le r_i \le 10^9−109≤li≤ri≤109
输入样例:
51 22 45 67 87 9
输出样例:
3
二、题解
1. 区间合并
2. vector<PII>排序
三、代码
#include <iostream>#include < ...
图中的环
一、题目
题目链接:https://www.acwing.com/problem/content/description/4219/
给定一个 nnn 个点 mmm 条边的无向图。
点的编号从 111 到 nnn。
图中不含重边和自环。
请你对给定图进行判断,如果该图是一个有且仅有一个环的连通图,则输出 YES,否则输出 NO。
输入格式
第一行包含两个整数 n,mn,mn,m。
接下来 mmm 行,每行包含两个整数 a,ba,ba,b,表示点 aaa 和点 bbb 之间存在一条无向边。
输出格式
如果该图是一个有且仅有一个环的连通图,则输出 YES,否则输出 NO。
数据范围
前三个测试点满足 1≤n≤101 \le n \le 101≤n≤10。
所有测试点满足 1≤n≤1001 \le n \le 1001≤n≤100,0≤m≤n(n−1)20 \le m \le \frac{n(n-1)}{2}0≤m≤2n(n−1),1≤a,b≤n1 \le a,b \le n1≤a,b≤n。
输入样例1:
6 66 36 45 12 51 45 4
输出样例1:
YES
输入样例2:
...
图中点的层次
一、题目
宽搜模板题:https://www.acwing.com/problem/content/849/
给定一个 nnn 个点 mmm 条边的有向图,图中可能存在重边和自环。
所有边的长度都是 111,点的编号为 1∼n1 \sim n1∼n。
请你求出 111 号点到 nnn 号点的最短距离,如果从 111 号点无法走到 nnn 号点,输出 −1-1−1。
输入格式
第一行包含两个整数 nnn 和 mmm。
接下来 mmm 行,每行包含两个整数 aaa 和 bbb,表示存在一条从 aaa 走到 bbb 的长度为 111 的边。
输出格式
输出一个整数,表示 111 号点到 nnn 号点的最短距离。
数据范围
1≤n,m≤1051 \le n,m \le 10^51≤n,m≤105
输入样例:
4 51 22 33 41 31 4
输出样例:
1
二、题解
1. memset() 初始化
在对数组进行初始化时,可能会用到 memset(),其初始化特点是按字节去逐个初始化,可以将数组初始化为 −1-1−1、000、0x3f0x3f0x3f。其中,使用 −1-1−1、000、0 ...
Anaconda基本配置
最近刚重装系统,配置了conda环境,想修改一下虚拟环境的安装位置,并配置一下虚拟环境,在国内安装包更快一些。
1. 修改虚拟环境的安装位置
在 C:\Users\你的用户名 目录下找到 .condarc 文件,使用记事本打开,添加下面几行:
envs_dirs: - D:\DevEnv\anaconda3\envspkgs_dirs: - D:\DevEnv\anaconda3\pkgs
即:
终端输入下面代码:
conda config --show
envs_dirs: 和 pkgs_dirs: 的第一行即为配置好的安装路径。
envs_dirs 指定了Anaconda环境存储的目录位置,当使用Anaconda创建一个新的环境时,这个环境会被默认存储在 envs_dirs 指定的目录下;pkgs_dirs 指定了Anaconda存储已下载包(conda packages)的目录位置,当你使用conda安装包时,这些包会被存储在 pkgs_dirs 指定的目录下。
envs_dirs 是关于环境的位置,而 pkgs_dirs 是关于包的存储位置。每个环境都可以访问 pk ...
C++编译后运行慢问题
前几天刚重装了系统,Win10 -> Win11.
今天写C++代码的时候,发现无论是用VSCode还是DevC++,编译很快,但是运行非常慢。尤其是第一次运行的时候,编写一个 “Hello World” 都要运行几十秒。
开始以为是火绒的原因,尝试了各种解决方案,效果均不明显。
经过搜索资料,找到了解决方案。是因为 Windows Defender 的缘故,每次编译代码,都会产生一个可执行文件,当第一次运行这个文件的时候,Windows Defender就会把它上传到云端进行检验,所以耗时非常长。
在Windows安全中心关闭“病毒威胁与防护”中的“云提供的保护”即可:
效果:
解决github访问速度慢的问题
一、手动修改
1. 查询 http://github.com 的ip地址
链接:http://github.global.ssl.fastly.net.ipaddress.com/#ipinfo
站长之家 http://ip.tool.chinaz.com/github.com
便民查询网 https://ip.51240.com/github.com__ip/
IPAdress.com https://github.com.ipaddress.com/
IP: 140.82.113.3
2. 查询 https://github.global.ssl.fastly.net 的IP地址
链接:https://github.com.ipaddress.com/#ipinfo
IP: 151.101.1.6
3. 修改本地 hosts 文件映射上面查找到的 IP
3.1 修改 hosts 文件的权限
在C:\Windows\System32\drivers\etc路径下,找到hosts文件;右击->hosts->属性->安全->编辑->点击Users ...