- 博客(52)
- 收藏
- 关注
原创 字符串匹配算法之---KMP算法
KMP算法KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是通过一个next()函数实现,函数本身包含了模式串的局部匹配信息。KMP算法的时间复杂度O(m+n)。比如2个...
2019-11-11 11:21:34 632
原创 1030 完美数列 (25 分) Python3 双指针算法
1030 完美数列 (25 分)给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数 N 和 p,其中 N(≤105)是输入的正整数的个数,p(≤109)是给定的参数。第二行给出 N 个正整数,每个数不超过 109。输出格式:在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。输入样例:10 82 3 20 4
2022-04-13 11:16:35 178
原创 LeetCode 726. 原子的数量 (困难)
726. 原子的数量 (困难)给定一个化学式formula(作为字符串),返回每种原子的数量。 原子总是以一个大写字母开始,接着跟随0个或任意个小写字母,表示原子的名字。如果数量大于 1,原子后会跟着数字表示原子的数量。如果数量等于 1 则不会跟数字。例如,H2O 和 H2O2 是可行的,但 H1O2这个表达是不可行的。 两个化学式连在一起是新的化学式。例如 H2O2He3Mg4 也是化学式。一个括号中的化学式和数字(可选择性添加)也是化学式。例如 (H2O2) 和 (H2O2)3 是化学式。
2020-11-24 14:48:49 406
原创 LeetCode 329. 矩阵中的最长递增路径 (2种方法)
题目地址:leetcode329 矩阵中的最长递增路径 题意: 给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。解法1 : 首先第一个想到的是用dfs搜索,从每一个点出发,每次搜索会有一个最大递增长度,然后取max即可。代码:class Solution {public: int maxl
2020-11-24 14:32:03 494
原创 2020上海高校程序设计竞赛暨第18届上海大学程序设计联赛夏季赛(同步赛)
本弱鸡还有三题没补~~~~~~A 同源题意:有三个整数a,b,c和一个目标值k我们需要找满足gcd(a,b)=gcd(b,c)=gcd(a,c)=k并且a,b,c不能等于k,其中a+b+c=n问:是否存在满足条件的a,b,c,只需要输出一组,没有输出-1 -1 -1分析:由于数据范围很大1e18,如果暴力枚举前2个数a,b,复杂度是n*n这个复杂度明显不可以接收,然后我们需要剪枝,由于gcd都要是k,循环变量每次应该递增k,这样能加快一点。最关键的一个剪枝是:当n%k如果不等于0时,说明还有
2020-09-03 21:13:50 222
原创 Codeforces Round #642 (Div. 3) A-E详细题解
A. Most Unstable Array 题意:给出n,m。 n表示有n个数,m表示这n个数的总和。每个数都是正整数。 现在你可以随便把m拆成n个数,要保证拆完后的序列,相邻差的绝对值和要最大。解: 首先特判 n=1 ,答案一定为0,只有一个数嘛。n=2 的时候,2个数,答案要最大,一定是[m,0].这样绝对值差是m,即最大值。当n>=3时 ,我们可以发现, [0,m,0]这样去构造,答案是2
2020-05-16 12:26:18 202
原创 RMQ (Range Minimum/Maximum Query)
RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j里的最小(大)值,也就是说,RMQ问题是指求区间最值的问题。①朴素做法:我们遍历区间[l,r],找出最大值/最小值,一次遍历复杂度是O(n)如果n次查询,最坏的复杂度能到...
2020-04-17 14:46:41 216
原创 HDU Computer(树形dp好题)
ComputerTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 41793 Accepted Submission(s): 7933Problem Description A sc...
2020-04-07 19:16:22 399
原创 LeetCode 813 最大平均值和的分组 (区间dp)
LeetCode 813 题目链接:最大平均值和的分组 我们将给定的数组 A 分成 K 个相邻的非空子数组 ,我们的分数由每个子数组内的平均值的总和构成。计算我们所能得到的最大分数是多少。 注意我们必须使用 A 数组中的每一个数进行分组,并且分数不一定需要是整数。示例:输入:A = [9,1,2,...
2020-03-31 14:00:55 635
原创 POJ 2823 Sliding Window(滑动窗口) 线段树/deque/树状数组
题目vj地址:POJ 2823 题意:给出一个序列,长度为n,n最大1e6 。k表示区间长度。问区间长度为k的区间,最大值和最小值分别是多少。分析: 区间最大值和区间最小值,很容易想到线段树和树状数组等等。由于n最大1e6 线段树查询一次的复杂度logn 所以时间上是没问题了。先上个线段树AC代码 。。。。 后面还有deque的做法分析。时间:10313ms ,内存 44712kB...
2020-03-30 15:34:45 198
原创 统计颜色(牛客)-------变种线段树+技巧
链接:https://ac.nowcoder.com/acm/problem/15667来源:牛客网题目描述n个桶按顺序排列,我们用1~n给桶标号。有两种操作:1 l r c 区间[l,r]中的每个桶中都放入一个颜色为c的球 (1≤l,r ≤n,l≤r,0≤c≤60)2 l r 查询区间[l,r]的桶中有多少种不同颜色的球 (1≤l,r ≤n,l≤r)输入描述:有多组数据...
2020-03-30 15:16:13 390 2
原创 Educational Codeforces Round 84 (Rated for Div. 2)
A、Sum of Odd Integers题意: 给出一个n,k 。问n能不能被分解成k个奇数和,要求奇数唯一分析: 既然要分解k个奇数和,那么k为偶数,那么n必定是偶数,k为奇数,那么n必定是奇数。然后我们还需要考虑,是不是够分解,如果n很小,那么也是不满足的,例如 5,5 。由于奇数唯一,那么一定是1 3 5 7 9 …所以我们对于一个等差数列求和即可。然后只要sum<=...
2020-03-24 14:19:23 221
原创 HDU 2089 不要62(数位dp) 超级详细!!!
不要62Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 76677 Accepted Submission(s): 31213Problem Description杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。杭州交...
2020-03-20 14:10:48 297
原创 滑雪 OpenJ_Bailian - 1088 dfs记忆化
滑雪 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子1 2 3 4 516 17 18 19 6...
2020-03-17 14:02:38 110
原创 CF CPS 2019 I. Another Query Problem
I. Another Query Problemtime limit per test5 secondsmemory limit per test512 megabytesinputstandard inputoutputstandard outputGiven the length n of an array A such that all Ai = 0 for all 1≤i≤n.You need to answer q queries of two types:1) 1 l r pr
2020-03-16 21:12:01 210
原创 P1903 [国家集训队]数颜色 / 维护队列 -------莫队算法
题目描述墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问。墨墨会向你发布如下指令:1、 Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜色的画笔。2、 R P Col 把第P支画笔替换为颜色Col。为了满足墨墨的要求,你知道你需要干什么了吗?输入格式第1行两个整数N,M,分别代表初始画笔的数量以及墨墨会做的事情的个数。第2行N个整数,分别...
2020-03-11 15:37:54 392
原创 L3-2 球队“食物链” (30分)
某国的足球联赛中有N支参赛球队,编号从1至N。联赛采用主客场双循环赛制,参赛球队两两之间在双方主场各赛一场。联赛战罢,结果已经尘埃落定。此时,联赛主席突发奇想,希望从中找出一条包含所有球队的“食物链”,来说明联赛的精彩程度。“食物链”为一个1至N的排列{ T1 T2 ⋯ TN },满足:球队T1 战胜过球队T2 ,球队T2 战胜过...
2019-12-17 01:15:07 315
原创 L3-1 社交集群 (30分)
当你在社交网络平台注册时,一般总是被要求填写你的个人兴趣爱好,以便找到具有相同兴趣爱好的潜在的朋友。一个“社交集群”是指部分兴趣爱好相同的人的集合。你需要找出所有的社交集群。输入格式:输入在第一行给出一个正整数 N(≤1000),为社交网络平台注册的所有用户的人数。于是这些人从 1 到 N 编号。随后 N 行,每行按以下格式给出一个人的兴趣爱好列表:Ki : hi [1]...
2019-12-17 01:11:01 404
原创 L2-4 链表去重 (25分)
给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉。即对每个键值 K,只有第一个绝对值等于 K 的结点被保留。同时,所有被删除的结点须被保存在另一个链表上。例如给定 L 为 21→-15→-15→-7→15,你需要输出去重后的链表 21→-15→-7,还有被删除的链表 -15→15。输入格式:输入在第一行给出 L 的第一个结点的地址和一个正整数 N(≤105 ,为结点...
2019-12-17 01:09:02 509
原创 L2-3 家庭房产 (25分)
给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数、人均房产面积及房产套数。输入格式:输入第一行给出一个正整数N(≤1000),随后N行,每行按下列格式给出一个人的房产:编号 父 母 k 孩子1 … 孩子k 房产套数 总面积其中编号是每个人独有的一个4位数的编号;父和母分别是该编号对应的这个人的父母的编号(如果已经过世,则显示-1);k(0≤k≤5)是该人的子女的个数;孩子...
2019-12-16 23:52:38 457
原创 L2-2 抢红包 (25分)
没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。输入格式:输入第一行给出一个正整数N(≤104 ),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下:KN1 P1 ⋯NK PK其中K(0≤K≤20)是发出去的红包个数,Ni ...
2019-12-16 23:44:50 757
原创 L2-1 功夫传人 (25分)
一门武功能否传承久远并被发扬光大,是要看缘分的。一般来说,师傅传授给徒弟的武功总要打个折扣,于是越往后传,弟子们的功夫就越弱…… 直到某一支的某一代突然出现一个天分特别高的弟子(或者是吃到了灵丹、挖到了特别的秘笈),会将功夫的威力一下子放大N倍 —— 我们称这种弟子为“得道者”。这里我们来考察某一位祖师爷门下的徒子徒孙家谱:假设家谱中的每个人只有1位师傅(除了祖师爷没有师傅);每位师傅可以带很多...
2019-12-16 23:41:31 115
原创 校技能节之打铁记~~~~~~
A题:A+B就是个a+b,不过中间有逗号分隔,直接那字符串先去掉中间的逗号,然后java大数直接秒了。import java.math.BigInteger;import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc=...
2019-11-29 10:17:28 210
原创 笔记篇 gcd+扩展gcd
GCD笔记:int gcd(int a,int b){ while(b^=a^=b^=a%=b); return a;}int gcd2(int a,int b){ return b==0?a:gcd(b,a%b);}int gcd3(int a,int b){ int tmp; while(b>0) { tmp=a%b; a=b; b=tmp;...
2019-11-24 22:18:20 207
原创 Rescue HDU1242 bfs+优先队列
Problem DescriptionAngel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M <= 200) matrix. There are WALLs, ROADs, and GUARDs in the prison.Ange...
2019-11-24 11:12:28 203
原创 Sumsets HDU2709
SumsetsProblem DescriptionFarmer John commanded his cows to search for different sets of numbers that sum to a given number. The cows use only numbers that are an integer power of 2. Here are the po...
2019-11-24 11:08:06 123
原创 拓扑排序
拓扑排序对于一个有向无环图,简称DAG。进行拓扑排序,是将图G的顶点排成一个线性序列。在图的任意一点,对于一组边<u,v> ,满足u在线性序列中出现在v前面,我们称这样的序列为拓扑序列。那么拓扑排序能解决什么问题呢???比如:有先后顺序,存在并存关系的事情。我们可以采用拓扑排序来计算出这个线性序列。下面我先来举个例子:这是一个有向图,现在我们要做的就是,把它的先后顺序弄出来...
2019-11-21 12:52:40 166
原创 Python3 魔法函数(简单了解)
python3中我们最熟悉的一个魔法函数class A: def __init__(self): pass这个函数是用来初始化的,我们写类时,经常会使用它来传入参数,也叫它构造函数。下面我们来介绍这个__new__函数这个函数呢?作用是实例化第一个被调用,返回一个对象下面我们来举个例子:class st(str): def __new__(cls,st...
2019-11-16 13:11:05 435
原创 Python3之BIF
BIF:(built-in functions)内置函数Python3拥有强大的内裤,打错了,不是内裤,是内库。开个玩笑,进入正题python3 中强大的BIF是为了方便程序员调试等等简化操作。作为一个有修养的程序员,这项技能是必备的。issubclass(class,classinfo)作用:issubclass() 方法用于判断参数 class 是否是类型参数 classinfo ...
2019-11-15 08:55:48 299
原创 Python3之强大的类(2)
在上一讲讲解了python3的类的基本定义,包括一些重要的区别。这节我们讲解的是python3 强大的继承有同学就要问了,继承是什么,为了做什么?带着这些疑问,我们来进行解答继承在生活中的意思就是,继承财产,继承啥啥啥的。有点扯远了。。。在python中,可以存在一个父类,许多个子类,如果子类继承父类,那么有什么特性呢。首先,父类的方法,子类能访问,也就是说,父类的特性,能在子类中体现,...
2019-11-15 08:28:54 96
原创 Python3之强大的类(1)
PYTHON 类 (class)python类非常强大,class Myclass: pass这样就定义了一个名字叫 Myclass 的类和其他语言(c++,java) 不同的是。python类的中,方法参数第一个都会写selfclass Myclass: def play(self): passself 到底是什么呢?其实很简单,就是c++,java中的t...
2019-11-15 00:33:35 166
原创 Expedition POJ - 2431 优先队列+贪心
A group of cows grabbed a truck and ventured on an expedition deep into the jungle. Being rather poor drivers, the cows unfortunately managed to run over a rock and puncture the truck’s fuel tank. The...
2019-11-12 22:50:18 172
原创 Sum 牛客14269 线段树
题目的链接 :SumSum链接:https://ac.nowcoder.com/acm/problem/14269来源:牛客网题目描述考虑维护一个这样的问题:(1) 给出一个数组A,标号为1~n(2) 修改数组中的一个位置。(3) 询问区间[l,r]中所有子集的位运算and之和mod(109+7)。位运算and即为“pascal中的and”和“C/C++中的&”我们定义...
2019-11-10 12:25:43 253
原创 Binary String Minimizing CodeForces - 1256D 思维(好题)
You are given a binary string of length n (i. e. a string consisting of n characters ‘0’ and ‘1’).In one move you can swap two adjacent characters of the string. What is the lexicographically minimum...
2019-11-05 22:38:33 452 1
原创 Minimize the Permutation CodeForces - 1256B 思维+暴力
You are given a permutation of length n. Recall that the permutation is an array consisting of n distinct integers from 1 to n in arbitrary order. For example, [2,3,1,5,4] is a permutation, but [1,2,2...
2019-11-05 10:02:53 864 2
原创 Payment Without Change CodeForces - 1256A 简单思维
Payment Without ChangeYou have a coins of value n and b coins of value 1. You always pay in exact change, so you want to know if there exist such x and y that if you take x (0≤x≤a) coins of v...
2019-11-05 09:50:17 614
原创 Knights of a Polygonal Table CodeForces - 994B 贪心+思维
Unlike Knights of a Round Table, Knights of a Polygonal Table deprived of nobility and happy to kill each other. But each knight has some power and a knight can kill another knight if and only if his ...
2019-11-05 01:01:13 228
原创 World Cup CodeForces - 996B 思维(推公式)
B. World Cuptime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputAllen wants to enter a fan zone that occupies a round square and has n entrances....
2019-11-04 12:29:35 176
原创 Cutting CodeForces - 998B
There are a lot of things which could be cut — trees, paper, “the rope”. In this problem you are going to cut a sequence of integers.There is a sequence of integers, which contains the equal number o...
2019-11-03 23:28:40 170
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人