- 博客(12)
- 收藏
- 关注
原创 Android设计模式 - 策略模式
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式主要用来分离算法,在相同的行为抽象下有不同的具体实现策略。
2023-03-03 00:01:21
309
原创 [C++] memset函数用法理解
memset函数void * memset ( void * ptr, int value, size_t num );函数解释:将ptr中当前位置后面的num个字节 用 value 替换并返回 ptr 。理解memset的填充方式为按 **字节(byte)**填充。memset会截取value的最后一个byte填入到ptr的每一个字节中。例如对 int类型数组 arr 进行初始化: memset(arr, 1, sizeof(arr));这里的value为十进制的1,转换为
2021-02-19 03:13:15
516
原创 [模板] 洛谷 P3379 【模板】最近公共祖先(LCA)
题目描述如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。输入格式第一行包含三个正整数 N,M,S,分别表示树的结点个数、询问的个数和树根结点的序号。接下来 N−1 行每行包含两个正整数 x,y,表示 x 结点和 y 结点之间有一条直接连接的边(数据保证可以构成树)。接下来 M 行每行包含两个正整数 a,b,表示询问 a 结点和 b 结点的最近公共祖先。输出格式输出包含 M 行,每行包含一个正整数,依次为每一个询问的结果。输入输出样例输入 #15 5 43 12 45
2021-02-08 22:31:46
171
原创 [模板] 快速幂 & 快速乘(详解)
作用快速求出 aba^bab 以及 ab%pa^b\%pab%p 的结果。所需知识a222…2=a2n{{{{a^2}^2}^2}^{\ldots}}^{2} = {a^{2}}^na222…2=a2naxay=ax+ya^xa^y = a^{x+y}axay=ax+y(13)10=(1101)2=23+22+20=8+4+1(13)_{10} = (1101)_2 = 2^3+2^2+2^0 = 8 + 4 + 1(13)10=(1101)2=23+22+20=8+4+1a(
2021-01-03 23:08:35
260
原创 洛谷 P1119 灾后重建 (Floyd)
题目背景B地区在地震过后,所有村庄都造成了一定的损毁,而这场地震却没对公路造成什么影响。但是在村庄重建好之前,所有与未重建完成的村庄的公路均无法通车。换句话说,只有连接着两个重建完成的村庄的公路才能通车,只能到达重建完成的村庄。题目描述给出B地区的村庄数N,村庄编号从0到N−1,和所有M条公路的长度,公路是双向的。并给出第i个村庄重建完成的时间t_i,你可以认为是同时开始重建并在第t_i天重建完成,并且在当天即可通车。若t_i为0则说明地震未对此地区造成损坏,一开始就可以通车。之后有Q个询问(x,y,
2020-12-30 23:42:23
148
原创 洛谷 P1278 单词游戏 (DFS + 最优性剪枝)
题目描述Io和Ao在玩一个单词游戏。他们轮流说出一个仅包含元音字母的单词,并且后一个单词的第一个字母必须与前一个单词的最后一个字母一致。游戏可以从任何一个单词开始。任何单词禁止说两遍,游戏中只能使用给定词典中含有的单词。游戏的复杂度定义为游戏中所使用的单词长度总和。编写程序,求出使用一本给定的词典来玩这个游戏所能达到的游戏最大可能复杂度。输入格式输入文件的第一行,表示一个自然数N(1≤N≤16),N表示一本字典中包含的单词数量以下的每一行包含字典中的一个单词,每一个单词是由字母A、E、I、O
2020-12-29 15:35:14
346
原创 第三届“传智杯” D - 终端 (模拟)
原题可在洛谷比赛中查看题目描述有一天您厌烦了电脑上又丑又没用的终端,打算自己实现一个 Terminal。具体来说,它需要支持如下命令:touch filename:如果名为 filename 的文件不存在,就创建一个这样的文件,如果已经存在同名文件的话则不进行任何操作。rm name:删除名为 name 的文件。如果不存在这样的文件,就不进行任何操作。ls:按创建时间为顺序,显示当前已经存在的未被删除的所有文件。rename xxx yyy:将名为xxx的文件名字改为 yyy 。如果不存在这
2020-12-24 10:28:33
264
原创 洛谷 P1294 高手去散步 (DFS)
题目背景高手最近谈恋爱了。不过是单相思。“即使是单相思,也是完整的爱情”,高手从未放弃对它的追求。今天,这个阳光明媚的早晨,太阳从西边缓缓升起。于是它找到高手,希望在晨读开始之前和高手一起在鳌头山上一起散步。高手当然不会放弃这次梦寐以求的机会,他已经准备好了一切。题目描述鳌头山上有n个观景点,观景点两两之间有游步道共m条。高手的那个它,不喜欢太刺激的过程,因此那些没有路的观景点高手是不会选择去的。另外,她也不喜欢去同一个观景点一次以上。而高手想让他们在一起的路程最长(观景时它不会理高手),已知高手的穿
2020-12-23 15:12:27
208
原创 [模板] 洛谷 P3374 树状数组 1
题目描述如题,已知一个数列,你需要进行下面两种操作:将某一个数加上 x求出某区间每一个数的和输入格式第一行包含两个正整数 n,m,分别表示该数列数字的个数和操作的总个数。第二行包含 n 个用空格分隔的整数,其中第 i 个数字表示数列第 i 项的初始值。接下来 m 行每行包含 3 个整数,表示一个操作,具体如下:1 x k 含义:将第 x 个数加上 k2 x y 含义:输出区间 [x,y] 内每个数的和输出格式输出包含若干行整数,即为所有操作 2 的结果。输入输出样例输入 #
2020-12-22 19:35:14
101
原创 [模板] 洛谷 P1137 旅行计划 (拓扑排序)
题目描述小明要去一个国家旅游。这个国家有#N个城市,编号为1至N,并且有MM条道路连接着,小明准备从其中一个城市出发,并只往东走到城市i停止。所以他就需要选择最先到达的城市,并制定一条路线以城市i为终点,使得线路上除了第一个城市,每个城市都在路线前一个城市东面,并且满足这个前提下还希望游览的城市尽量多。现在,你只知道每一条道路所连接的两个城市的相对位置关系,但并不知道所有城市具体的位置。现在对于所有的i,都需要你为小明制定一条路线,并求出以城市ii为终点最多能够游览多少个城市。输入格式第11行为两
2020-12-22 17:24:50
285
1
原创 [模板] 线性筛素数
输入格式输入一个数n, 表示所求素数的最大范围。输出格式第一行输出范围内的素数个数m。接下来的m行从小到大每行输出一个素数。代码#include <cstdio>using namespace std;#define MAXN 1000050int read() { int x = 0; bool f = 0; char ch = getchar(); while (!isdigit(ch)) f = (ch == 45), ch = getchar();
2020-12-14 18:59:55
172
1
原创 洛谷 P1144 最短路计数 (SPFA)
洛谷 P1144 最短路计数 (SPFA)题目描述给出一个NN个顶点MM条边的无向无权图,顶点编号为1-N1−N。问从顶点11开始,到其他每个点的最短路有几条。输入格式第一行包含2个正整数N,M,为图的顶点数与边数。接下来MM行,每行22个正整数x,y表示有一条顶点x连向顶点y的边,请注意可能有自环与重边。输出格式共N行,每行一个非负整数,第ii行输出从顶点1到顶点i有多少条不同的最短路,由于答案有可能会很大,你只需要输出ans mod100003后的结果即可。如果无法到达顶点i则输出0。输
2020-12-14 18:39:04
195
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅