
算法
文章平均质量分 77
Round Moon
ACM退役云玩家。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
The 2022 ICPC Asia Regionals Online Contest (II) A、B、E、F、G、J、L
The 2022 ICPC Asia Regionals Online Contest (II)Yet Another RemainderNon-decreasing ArrayAn Interesting SequenceInfinity TreeGood PermutationA Game about Increasing SequencesQuadruple原创 2022-10-03 18:07:50 · 1293 阅读 · 0 评论 -
约瑟夫序列 线段树 O(nlogn)
约瑟夫序列我们目前最常见的几种约瑟夫求法是通过暴力模拟所执行的。就连python 的数组切片复杂度也远远达不到O(nlogn)如果情况足够糟糕,那么切片做法复杂度可以到达O(n^2)和暴力做法没什么区别。那么我们用线段树来统计个数的方法,来记录下标。这样可以快速的查询。Accepted Code//#include<unordered_map>#include<algorithm>#include<iostream>#include<string.h&原创 2022-01-09 17:32:29 · 459 阅读 · 0 评论 -
信息学一本通-小球
小球问题描述许多的小球一个一个的从一棵满二叉树上掉下来组成FBT(Full Binary Tree,满二叉树),每一时间,一个正在下降的球第一个访问的是非叶子节点。然后继续下降时,或者走右子树,或者走左子树,直到访问到叶子节点。决定球运动方向的是每个节点的布尔值。最初,所有的节点都是false,当访问到一个节点时,如果这个节点是false,则这个球把它变成true,然后从左子树走,继续它的旅程。如果节点是true,则球也会改变它为false,而接下来从右子树走。满二叉树的标记方法如下图:因为所有的节原创 2022-01-08 18:25:21 · 255 阅读 · 0 评论 -
赛氪-二进制
二进制题目描述你是一个算法爱好者,在努力学习计算机知识。你知道,计算机最优美的地方在于二进制,这一点你在状压加o里面深有体会,当然二进制用在co and o时的也非常巧妙,更不用T说nini游戏都能跟于xor扯上关系了,而今天你又遇到了一道二进制的题目,对于爱思考的你,决定一直要把这道二进制题给切掉。你遇到了很多十进制的数,对于这些数,它们都管理着它们对应的分层,比如数字8,它的二进制是1,则它管理着4(10),2(10),两个分段,当数字闯的在2,4区间上增加时,沬代表二进制(10)和(10)两层原创 2021-10-24 16:34:45 · 492 阅读 · 5 评论 -
SDOI2009-HH的项链
SDOI2009-HH的项链题目描述HH 有一串由各种漂亮的贝壳组成的项链。HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH 不断地收集新的贝壳,因此,他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答…… 因为项链实在是太长了。于是,他只好求助睿智的你,来解决这个问题。输入一行一个正整数 n,表示项链长度。第二行 n 个正整数 a_i,表示项链中第 i 个贝壳的种类。第三行一个整原创 2021-10-19 00:16:05 · 267 阅读 · 0 评论 -
数据结构笔记-KMP算法
世 上 没 有 绝 望 的 处 境 只 有 对 处 境 绝 望 的 人前言字符串匹配算法在数据结构课本中可以看到BF(Brute Force)暴力求解,还有一种相对高效的一种算法KMP算法。博主研究KMP算法也有好几天了,在这过程中,有很多问题。去看别人的博客真的是看的一头雾水,很多文章的大体意思就是,kmp长这样,按这样来就行。不可否认有些博客对我有很大的指导作用,但是这里我讲以自己的理解,去讲解这个KMP(Knuth-Morris-Pratt)算法。首先想要学习KMP算法,不可避免的一步,那就是学原创 2020-11-06 17:59:56 · 395 阅读 · 0 评论 -
数据结构笔记-线性表及其操作
世 上 没 有 绝 望 的 处 境 只 有 对 处 境 绝 望 的 人数据结构笔记-线性表及其操作本博客只为记录,以及对与一些学习线性表的同志提供代码资源顺序表/*线性表及其操作顺序表1. 两个有序顺序表成一个有序顺序表By-Round moon转载备注说明*/#include<stdio.h>#include<stdlib.h>#define Init_size 10#define Increase 10typedef struct node{原创 2020-10-08 21:50:11 · 127 阅读 · 0 评论 -
数据结构笔记-顺序表
世 上 没 有 绝 望 的 处 境 只 有 对 处 境 绝 望 的 人顺序表这里已经写好的现成的线性表,可以直接参考。相信C语言过关加上一点点了解C++的伙伴应该不会有问题。如果有问题的话请在下方评论区留言。首先用malloc开辟,用realloc扩展,这就是顺序表存储的核心机制。其余的和数组一样,指针调用#include<iostream>#include<stdlib.h>#define Init_size 10#define Increment 10usi原创 2020-09-23 20:59:55 · 128 阅读 · 0 评论 -
Atcoder-Queen on Grid
世 上 没 有 绝 望 的 处 境 只 有 对 处 境 绝 望 的 人Atcoder-Queen on GridProblem StatementWe have a grid with H horizontal rows and W vertical columns of squares.Square (i,j), which is at the i-th row from the top and j-th column from the left, is wall if Sij is # and原创 2020-11-16 13:23:15 · 239 阅读 · 0 评论 -
超级码力-闰年(模拟+思维)
世 上 没 有 绝 望 的 处 境 只 有 对 处 境 绝 望 的 人题目题目描述已知现在是y1年m1月d1日,过x了天后,到了y2年m2月d2日。但是你现在只知道m1,d1,m2,d2和x。请你判断一下y1是不是闰年呢?输入数据为一个二维的List,每一个小List代表一组询问,List从下标为0到4的值分别代表m1,d1,m2,d2和x。你需要返回一个字符串,按照询问顺序,回答P,R或?,分别代表y1一定是平年,y1一定是闰年,无法确定y1是闰年还是平年。Sample Input42 2原创 2020-09-06 13:12:20 · 249 阅读 · 0 评论 -
逆尼姆博弈(结论)
世 上 没 有 绝 望 的 处 境 只 有 对 处 境 绝 望 的 人逆尼姆博弈(结论)问题描述逆尼姆博弈:n堆石子,一次取一堆,每次至少一个。谁最后不能取谁赢尼姆博弈:n堆石子,一次取一堆,每次至少一个。谁取走最后一个谁赢)/*逆尼姆博弈结论如果:n堆全为1且异或和为0 或 n堆不全为1且异或和不为0: 先手必胜否则: 先手必败*/#include<stdio.h>int save[1000];int main(){ bool sta = 0; i原创 2020-09-05 15:58:00 · 392 阅读 · 0 评论 -
牛客-兔兔的名字
世 上 没 有 绝 望 的 处 境 只 有 对 处 境 绝 望 的 人目录问题描述题目描述Sample InputSample OutputHint思路分析代码By-轮月问题描述题目描述兔子发现序列的名字都是数字,实在太无聊了,于是兔子开始研究兔子的名字。现在兔子手上有 n 个名字 Ti 和 m 个可爱词汇Sj,兔子对每一个名字 Ti 定义了一个可爱度,如果 Ti 中出现了一个可爱的单词 Sj,那么 Ti 就有 1 点可爱值,最后的总可爱值就是 Ti 的可爱度,这里的出现指 Sj 是 Ti 的子原创 2020-08-18 23:36:29 · 225 阅读 · 0 评论 -
UPC-序列
世 上 没 有 绝 望 的 处 境 只 有 对 处 境 绝 望 的 人目录题目介绍题目描述输入输出测试样例Sample InputSample Output提示题目分析题目大意思路分析代码By-轮月题目介绍题目描述eobiyye给了你一个长度为n的序列ai,序列中每个元素的初始值为0。接下来她会对这个序列进行m次操作,每次操作有4个参数l,r,s,e,表示将区间[l,r]加上一个首项为s,末项为e的等差数列。若一次操作中l=1,r=5,s=2,e=10,则对序列中第1~5个数分别加上2,4,6原创 2020-08-18 13:56:06 · 368 阅读 · 0 评论 -
UPC-双头巨人 (twin)
世 上 没 有 绝 望 的 处 境 只 有 对 处 境 绝 望 的 人UPC-双头巨人(twin)题目描述老爹说要用魔法打败魔法 ———— 3edc2wsx1qaz一天,巨神 3edc2wsx1qaz 正在森林里漫步,突然,一只凶恶的双头巨人拦住了他。双头巨人的两个头的攻击力分别为a,b。它每次可以对 3edc2wsx1qaz 造成 |a-b| 的魔法伤害。3edc2wsx1qaz 觉得这只怪物十分难缠。“要用魔法打败魔法!” 就在这时,老爹的话回响在 3edc2wsx1qaz 的耳边,3e原创 2020-08-16 18:34:43 · 372 阅读 · 0 评论 -
Codeforces-Applejack and Storages
世 上 没 有 绝 望 的 处 境 只 有 对 处 境 绝 望 的 人题目描述This year in Equestria was a year of plenty, so Applejack has decided to build some new apple storages. According to the advice of the farm designers, she chose to build two storages with non-zero area: one in the原创 2020-08-08 12:03:13 · 230 阅读 · 0 评论 -
UPC-膜拜
世上没有绝望的处境只有对处境绝望的人标题【UPC】膜拜问题描述小鱼有 n 名优秀的粉丝。粉丝们得知小鱼将会在一条直线上出现,打算去膜他。为了方便,粉丝们在这条直线上建立数轴。第 i 名粉丝有一个侦查区间[li,ri] 。如果小鱼在 j(li≤j≤ri) 处出现,这名粉丝将立刻发现并膜他。小鱼希望膜他的人越多越好,但是他不能分身,因此只能选择一个位置出现。小鱼想知道自己最多能被多少个人膜。输入第一行一个整数n —— 粉丝的个数。接下来 n 行,每行两个整数 li,ri ,分别表示第原创 2020-07-29 14:56:49 · 189 阅读 · 0 评论 -
牛客网-Infinite String Comparision
Infinite String Comparision题目描述For a string xx, Bobo defines x∞ = =xxx…, which is xx repeats for infinite times,resulting in a string of infinite length.Bobo has two strings aa and bb. Find out the result comparing a∞ and b∞in lexicographical order原创 2020-07-12 17:02:26 · 253 阅读 · 0 评论 -
矩阵快速幂模板-Fibonacci
有 志 者 事 竟 成,破 釜 沉 舟,百 二 秦 关 终 属 楚; 苦 心 人 天 不 负,卧 薪 尝 胆,三 千 越 甲 可 吞 吴!矩阵快速幂-Fibonacci今天是原创 2020-06-29 22:22:15 · 212 阅读 · 0 评论 -
信息宝典-系统可靠性
信息宝典-系统可靠性题目浏览题目描述输入输出Sample InputSample OutputHint题目大意一节太空梯分为好几截,每一截都是相互独立的。要求所有截同时正常工作的时候,才算是系统正常工作。为了使系统可靠,我们采用增加备用零件的方式,来提高系统可靠性。每增加一个配件,这一截运行正常的概率就会更新到对应的概率比如,添加2个一号件,4个二号件。该题样例中运行正常的概率是0.7×0.9=0.63,同时花费2×3+5×4=26思路分析如果采用dfs的话很显然复杂度过于庞大,TLE是在所难免的。所原创 2020-06-26 17:54:43 · 595 阅读 · 2 评论 -
Codeforces-K-th Not Divisible by n
山再高,往上爬,总能登顶;路再长,走下去,定能到达。Codeforces-K-th Not Divisible by n题目描述You are given two positive integers n and k. Print the k-th positive integer that is not divisible by n.For example, if n=3, and k=7, then all numbers that are not divisible by 3 are: 1,原创 2020-05-10 00:43:17 · 403 阅读 · 0 评论 -
UPC-解密码
山再高,往上爬,总能登顶;路再长,走下去,定能到达。UPC-解密码题目描述跑男们都被关进了瘦西湖风景区中的不同地点,天才陈赤赤被关在了白塔中。为了打开门上的密码锁,必须按照规则变换锁上的数字:开始给定一个4位的质数a,每次改变质数的一位(改变后仍为质数),用最少的次数改变后得到b,若不可能,则次数为0。“论吃饭我一个人可以拼他们六个!”“你是猪吗?”“嗝~~~”……陈赤赤啰嗦了...原创 2020-04-28 09:24:55 · 944 阅读 · 6 评论 -
UPC-穿越
山再高,往上爬,总能登顶;路再长,走下去,定能到达。穿越-时间轴上的bfs题目描述亚马逊雨林实在是太大了,小X和他的小弟们进去一会儿就迷路了,然而大雨已经来临,冲刷了一些道路,小X凭借他最后的5%的电量给你发来一条求助信息,希望你帮助他们逃出困境……小X给你发来一张n×m的地图,每一个点有4种情况。“0”:此地方可以走。“1”:此地方不可以走。“2”:此地方有一种凶恶的野兽。“...原创 2020-04-26 12:02:14 · 807 阅读 · 0 评论 -
UPC-走迷宫
山再高,往上爬,总能登顶;路再长,走下去,定能到达。UPC-走迷宫题目描述邪恶的Pcf把KeineDuck关在了一个迷宫中!KeineDuck必须找到一条通往出口的道路。方便起见,我们将迷宫描述成了一个n行m列的网格,网格中每个格子都有一个特殊的字符:• #表示这是一堵墙,不能通过。• @:KeineDuck当前位置。• =:迷宫的出口。• 字母A-Z:传送装置,它们总是成对出...原创 2020-04-18 21:53:38 · 323 阅读 · 0 评论 -
UPC-选地址(Floyd)
山再高,往上爬,总能登顶;路再长,走下去,定能到达。原创 2020-04-05 17:40:33 · 219 阅读 · 0 评论 -
POJ-Dungeon Master(bfs)
除了自己,任何人都无法给你力量。没有口水与汗水,就没有成功的泪水。POJ-Dungeon Master题目描述You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of unit cubes which may or may not be filled ...原创 2020-03-29 13:25:30 · 216 阅读 · 0 评论 -
POJ-Catch That Cow
山再高,往上爬,总能登顶;路再长,走下去,定能到达。POJ-Catch That Cow题目描述Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a n...原创 2020-03-24 11:08:02 · 185 阅读 · 0 评论 -
HDU-非常可乐(bfs)
山再高,往上爬,总能登顶;路再长,走下去,定能到达。HDU-非常可乐(bfs)题目描述大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为。因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多。但seeyou的手中只有两个杯子,它们的容量分别是N 毫升和M 毫升 可乐的体积为S (S<101)毫升 ...原创 2020-03-22 16:26:45 · 179 阅读 · 0 评论 -
BFS-广度优先搜索(Breadth-First-Search)
山再高,往上爬,总能登顶;路再长,走下去,定能到达。BFS-广度优先搜索(Breadth-First-Search)原创 2020-03-22 16:15:33 · 330 阅读 · 0 评论 -
LIS&LDS最长上升和最长下降子序列(含不上升,不下降)
最长上升子序列此处为可不连续的子序列。那么你在这个序列中选择几个数,保证这些数的大小依次增大,减小,不增大,不减小。此处研究此类问题。首先展示O(n2)的方法以71 7 3 5 9 4 8为????研究上升问题。#include<unordered_map>#include<algorithm>#include<iostream>#include&...原创 2020-03-17 16:39:41 · 419 阅读 · 0 评论 -
UPC-连接格点
山再高,往上爬,总能登顶;路再长,走下去,定能到达。链接各点题目描述有一个M行N列的点阵,相邻两点可以相连。一条纵向的连线花费一个单位,一条横向的连线花费两个单位。某些点之间已经有连线了,试问至少还需要花费多少个单位才能使所有的点全部连通。输入第一行输入两个正整数m和n。以下若干行每行四个正整数x1,y1,x2,y2,表示第x1行第y1列的点和第x2行第y2列的点已经有连线。输...原创 2020-03-17 11:29:13 · 233 阅读 · 0 评论 -
智力大冲浪&Leopard学霸-优先队列-priority_queue的使用(堆排序)
山再高,往上爬,总能登顶;路再长,走下去,定能到达。优先队列 priority_queue的使用首先介绍以下priority_queue这个东西。这个东西有三个参数首先第一个参数就是像普通的stack和queue一样,这是这个本身的一个类型。第二个是这个东西的继承载体,通常用vector<>第三个是排序的函数,有greater()换个less()这里的类型是排序成员的类型...原创 2020-03-15 01:10:41 · 182 阅读 · 0 评论 -
矩阵连乘-区间DP
山再高,往上爬,总能登顶;路再长,走下去,定能到达。矩阵连乘-区间DP题目描述一个A×B的矩阵乘以一个B×C的矩阵将得到一个A×C的矩阵,时间复杂度为A×B×C。矩阵乘法满足结合律(但不满足交换律)。顺序给出n个矩阵的大小,请问计算出它们的乘积的最少需要花费多少时间。输入第一行输入一个正整数n(n≤100),表示有n个矩阵。接下来m行每行两个正整数Xi,Yi,其中第i行的两个数...原创 2020-03-15 00:34:59 · 438 阅读 · 0 评论 -
UPC-Decayed Bridges
Decayed Bridges题目描述There are N islands and M bridges.The i-th bridge connects the Ai-th and Bi-th islands bidirectionally.Initially, we can travel between any two islands using some of these brid...原创 2020-03-01 11:05:57 · 259 阅读 · 0 评论 -
UPC-取数排列(逆康托展开式)
学习犹如逆水行舟,不进则退UPC-取数排列康托算法取1到N共N个连续的数字(1≤N≤9),组成每位数不重复的所有可能的N位数,按从小到大的顺序进行编号。当输入一个编号M时,就能打印出与该编号对应的那个N位数。例如,当N=3时,可组成的所有三位数为:那么,输入编号M=2时,则输出132。输入包括两个数,即正整数N(1 ≤ N ≤ 9)和正整数M(1 ≤ M ≤ 362880)。输...原创 2020-02-11 22:02:59 · 581 阅读 · 0 评论 -
UPC-TrBBnsformBBtion
学习犹如逆水行舟,不进则退UPC-TrBBnsformBBtion题目描述Let us consider the following operations on a string consisting of A and B:Select a character in a string. If it is A, replace it with BB. If it is B, replace...原创 2020-02-08 15:50:40 · 241 阅读 · 0 评论 -
UPC-###(组合方案)
学习犹如逆水行舟,不进则退UPC-###题目描述On a two-dimensional plane, there are m lines drawn parallel to the x axis, and n lines drawn parallel to the y axis. Among the lines parallel to the x axis, the i-th from ...原创 2020-02-04 13:01:11 · 386 阅读 · 0 评论 -
对于大数__int128的使用
对于大数__int128的使用__int64是可以直接使用的,相当于 long long int。但是呢这个不是最大的。最大的可以调用__int128。唯独区别的就是赋值和输出需要用函数来实现。首先看看怎么用。例如:计算 a+b的值int main() {__int128 a = read();__int128 b = read();write(a + b);return 0...原创 2020-01-11 20:30:18 · 3283 阅读 · 0 评论 -
DP入门系列-背包问题-01背包
背包问题-01背包背包问题一直以来都是用来学习DP的小白鼠,对于背包问题我曾经在DFS中有举过栗子,那么这一次我们用状态转移的思想来学习一下01背包。什么是01背包呢?说白了就是这个物品拿与不拿的问题。也就是说我面临决策的时候都有两个方案,拿与不拿。但是拿与不拿均对后面的结果会产生影响,所以说你无法一眼就看出来最优解(optimal solution,下面我将用OPT来概述)。那么我们只能够把...原创 2019-12-18 16:42:54 · 238 阅读 · 0 评论 -
DP入门系列-DP入门指导
背包问题-01背包最近在入门dp,当然我还不会dp。不过我已经放下了狠话,我学不会dp我退出实验室。。。先解释一下DP的最入门的概念:用我师傅传授给我的一句话说,DP是什么呢,核心是避免重复计算。举个栗子吧。如果你想算斐波那契额数列的话很简单,但是如果算的数值太大了,比如说,你算到第50位,那么应该怎么算呢???OK咱们先按照正常的思路来写一下正常的斐波那契数列。#include<...原创 2019-12-17 15:00:01 · 1451 阅读 · 0 评论 -
dfs-全排列(UPC-方案数)
dfs-全排列(UPC-方案数)全排列的解释实现思路举个栗子实战题目(UPC-方案数)?!什么是全排列?!全排列就是把他所有的子集的可能存在位置都全部罗列出来。比如一个集合是{1,2,3} 这样的话他的全排列将会有如下的情况:{1,2,3},{1,3,2},{2,1,3},{2,3,1},{3,1,2},{3,2,1}通过C31∗C21=6可知,一共包含6种情况。如上所示。通...原创 2019-12-08 18:45:00 · 1125 阅读 · 3 评论