![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法题记录
不东不东不咚咚
此人勤快,但还是什么都没有写
展开
-
AcWing 920. 最优乘车
题面H 城是一个旅游胜地,每年都有成千上万的人前来观光。为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴士线路。每条单程巴士线路从某个巴士站出发,依次途经若干个巴士站,最终到达终点巴士站。一名旅客最近到 H 城旅游,他很想去 S 公园游玩,但如果从他所在的饭店没有一路巴士可以直接到达 S 公园,则他可能要先乘某一路巴士坐几站,再下来换乘同一站台的另一路巴士,这样换乘几次后到达 S 公园。现在用整数 1,2,…N 给 H 城的所有的巴士站编号,约定这名旅客所在饭店的原创 2021-08-23 22:49:08 · 99 阅读 · 0 评论 -
最长异或路径(Tire树+贪心)
最长异或路径(Tire树+贪心)题目描述给定一棵 nn 个点的带权树,结点下标从 11 开始到 nn。寻找树中找两个结点,求最长的异或路径。异或路径指的是指两个结点之间唯一路径上的所有边权的异或。输入格式第一行一个整数 n,表示点数。接下来 n-1 行,给出 u,v,w ,分别表示树上的 u 点和 v 点有连边,边的权值是 w。输出格式一行,一个整数表示答案。输入输出样例输入 #141 2 32 3 42 4 6输出 #17解题思路首先,异或有一个性质A⨁A=0⇒A原创 2021-08-08 01:49:19 · 934 阅读 · 0 评论 -
HDU3068 最长回文(字符串hash)
思路分别求两个方向的字符串hash,利用区间hash判断两子串是否满足回文p.s.区间hash求法代码#include<algorithm>#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>#include<vector>#include<map>#include<set>#include<st.原创 2021-04-27 22:56:32 · 116 阅读 · 0 评论 -
PTA进阶实验2-3.4 素因子分解 (20 分)
思路对于每一个从小到大每一个素数,如果该素数是n的因子,则对该素数计数,并且n除以该素数,一直到n不再是该素数的倍数为止。cpp代码#include<bits/stdc++.h>using namespace std;bool j[10010] ; //判断是否为素数,当j[i]为true时代表i为合数;void init(){//对j数组进行初始化 for(int i = 2 ; i < 10010 ; i ++ ){ if(!j[i]){ .原创 2021-03-04 22:15:14 · 610 阅读 · 1 评论 -
PTA基础实验2-2.5 整数分解为若干项之和 (20 分)
cpp代码#include<bits/stdc++.h>using namespace std;int n , a[30] , cnt = 1 , sum , num ;//a数组用于存储加数,cnt用于计算已经输出的答案的数量,sum用于记录此时累加的和,num是a数组的指针;void dfs(int k){ if( sum > n ) return ; if( sum == n ){ cout << n <<"=" ;.原创 2021-03-02 20:49:25 · 396 阅读 · 0 评论 -
最大子矩阵
描述已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵。比如,如下4 * 4的矩阵0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2的最大子矩阵是9 2-4 1-1 8这个子矩阵的大小是15。输入输入是一个N * N的矩阵。输入的第一行给出N (0 < N <= 100)。再后面的若干行中,依次(首先从左到右给出第一行的N个整数,再从左到右给出第二行的N个整数……)给出矩阵中的N2个整数,整数原创 2021-02-02 21:45:21 · 455 阅读 · 0 评论 -
OpenJudge-6377:生日相同 2.0
描述在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的名字,出生月日。试找出所有生日相同的学生。输入第一行为整数n,表示有n个学生,n ≤ 180。此后每行包含一个字符串和两个整数,分别表示学生的名字(名字第一个字母大写,其余小写,不含空格,且长度小于20)和出生月(1 ≤ m ≤ 12)日(1 ≤ d ≤ 31)。名字、月、日之间用一个空格分隔输出每组生日相同的学生,输出一行,其中前两个数字表示月和日,后面跟着所有在当天出生的学生的名字,数字、名字之间都用一个空格分隔。原创 2021-01-31 21:48:32 · 853 阅读 · 0 评论 -
迷宫问题(BFS)
描述定义一个二维数组: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表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。输入一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。输出左上角到右下角的最短路径,格式如样例所示。解题思路我今天刚学的广度优先搜索原创 2021-01-22 21:48:35 · 144 阅读 · 0 评论 -
棋盘问题
描述在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。输入输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n当为-1 -1时表示输入结束。随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域, . 表示空白.原创 2021-01-21 20:16:26 · 129 阅读 · 0 评论 -
A Knight‘s Journey
描述BackgroundThe knight is getting bored of seeing the same black and white squares again and again and has decided to make a journeyaround the world. Whenever a knight moves, it is two squares in one direction and one square perpendicular to this. The..原创 2021-01-21 19:57:10 · 172 阅读 · 0 评论