自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Codeforces Round #753 (Div. 3)题解

A. Linear Keyboard给你一个包含26个键的键盘,每个键对应一个小写拉丁字母。你需要在键盘上打出一个单词,单词由小写拉丁字母组成。为了打印出该单词你需要移动到对应的按键上,花费的时间是相邻按键在键盘上的位置差(取绝对值)。Input:第一行的整数,表示测试用例的数量,随后两行是测试用例的描述;第一行是长度为26的a~z组成的小写字符串keyboard。第二行是需要打出的单词s。Output:输出在给出的键盘上打出单词s需要花费的最小时间。(实际上顺序打出单词没有什么

2021-11-21 22:33:27 1150 3

原创 设计模式实例:一个文档编辑器(上)(设计模式自学笔记 第2章)

内容学习范围:《设计模式:可复用面向对象软件的基础》设计问题1、文档表示结构:所有的编辑、格式安排、显示和文本分析等。2、格式化:文本和图型怎么安排到行和列;哪些对象负责执行不同的策略;格式策略怎么在内部表述相互作用。3、用户界面/以及其演化。4、支持不同的look and feel标准。5、支持多种窗口:以及多窗口下的不同视感。6、用户的操作:如按钮或菜单。7、拼写检查和连字符:分析操作/以及分析操作的增加。文档表示结构需要支持设计要点:(1)保持文档的物理

2021-10-27 00:42:17 404

原创 设计模式学习笔记(第一章)

亡羊补牢,为时不晚。这本书是真的抽象,看的头都疼。。。补充记录一些以前没有学过的小Tip。教材:《设计模式 可复用面向对象软件的基础》 第一章定义:零、设计模式设计模式代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。一、构建用户界面的三元组MVCM:Model,Model是应用对象V:View,View是它在屏幕上的表示。C:Controller,Controller定义用户界面对用户输

2021-10-25 23:29:04 216

原创 codeforces 1567E. Non-Decreasing Dilemma(线段树/计数)

题目链接:Problem - 1567E - Codeforces大致题意:动态维护一个数组,每次可以修改数组里一位数字,或者查询数组中一个区间内,连续非降子序列的总数量。题解:裸线段树维护数组,codeforces标记是2200分难度,但是也就是代码长度大一点。。。每个node维护左侧最长的连续非降串长跟右侧的最长非降串长。以及node区间内连续非降子序列的总数量。数量合并方法: tree[pos].lLen = tree[pos * 2].lLen; tree[pos].

2021-09-28 15:02:31 249

原创 Codeforces 1555E(线段树+双指针)

本人回来亲自主持博客了,好久不写这种东西,30分钟切个2100分的水题复健一下题目链接:Problem - 1555E - Codeforces大致题意:在数轴[1,m]上有若干条线段,且每个线段有一个value,现在需要找一个线段集合,使得集合里的线段覆盖整个[1,m]区间,且集合里的线段value最大最小值差值尽量小。输出这个差值。题解:一眼水题。。。根据线段的value从小到大排序,双指针维护value在l~r之间的线段,并实时知道是否这些线段能覆盖[1,m]区间。这个维护的.

2021-09-27 19:49:24 128

原创 codeforces - 1574D - The Strongest Build

题目连接:Problem - 1574D - Codeforces题目大意:1个玩家有n个装备槽,第i个装备槽中有c[i]个装备,这c[i]个装备中第j个武器的武力值为a[i][j]。玩家每次从每个装备槽中选择一个装备,构成一个装备组合。游戏给玩家设定m种被ban的装备组合,程序需要输出没有被ban的组合中玩家可以选出的武力总值最高的一个装备组合。题解:将每一条被ban的组合插入set ss中。用pair<int, vector<int>>记录每一种组合的&l

2021-09-25 00:14:45 205

原创 牛客 NC97 - 字符串出现次数的TopK问题

字符串出现次数的TopK问题_牛客题霸_牛客网给定一个字符串数组,再给定整数k,请返回出现次数前k名的字符串和对应的次数。返回的答案应该按字符串出现频率由高到低排序。如果不同的字符串有相同出现频率,按字典序排序。对于两个字符串,大小关系取决于两个字符串从左到右第一个不同字符的 ASCII 值的大小关系。比如"ah1x"小于"ahb","231"<"32"。字符仅包含数字和字母。题解:定义一个结构体ss,结构体中包含一个字符串str和该字符串出现的次数cnt。并定义该

2021-09-17 23:44:13 427

原创 牛客 NC93 - 设计LRU缓存结构

设计LRU(最近最少使用)缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能1. set(key, value):将记录(key, value)插入该结构2. get(key):返回key对应的value值提示:1.某个key的set或get操作一旦发生,认为这个key的记录成了最常使用的,然后都会刷新缓存。2.当缓存的大小超过K时,移除最不经常使用的记录。3.输入一个二维数组与K,二维数组每一维有2个或者3个数字,第1个数字为opt,第2,3个数字为key,value

2021-09-17 23:15:36 178

原创 牛客 NC128—接雨水问题

https://www.nowcoder.com/questionTerminal/31c1aed01b394f0b8b7734de0324e00f给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个柱子高度图,计算按此排列的柱子,下雨之后能接多少雨水。备注:题解一:双指针left,right分别从两边向中间遍历,找到每个水洼的边界。在每一次循环中,从左向右遍历,当右边的高度小于当前左边界的高度时,这个位置上可以接水,累加接水量。当...

2021-09-09 00:47:53 428 3

原创 Codeforces Round #685 (Div. 2)E2. Bitwise Queries (Hard Version)题解(数学竞赛/组合构造题)

题目链接:https://codeforces.com/contest/1451/problem/E2大意:这是一个人机交互题。一共有N个[0, N-1]的整数,其中N是2的幂次。允许每次人指定其中两个数字与AND、OR、XOR其中一种运算,查询其计算后得到的结果。最多查询N + 1次,复现出整个数组每个数字的值。思路:记我们的原始的数组为A数组。定理一:对于非负整数x与y,有:x + y = (x xor y) + 2 * (x and y)证明:按照比特位,按位计算。.

2021-07-15 23:23:53 144 1

原创 类欧几里得算法整理

整理来源于网上博客:1、https://blog.csdn.net/hzj1054689699/article/details/769538902、https://blog.csdn.net/ha_ing/article/details/99887508?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-1&spm=1001.2101.3001.4242欧几里得算法,就是辗转相除法。gcd

2021-07-09 10:29:46 161 1

原创 【NOIP2015】子串(动态规划+滚动数组)

题目传送门:https://uoj.ac/problem/149大致题意:数据范围:题解:这题没啥好说的,因为NOIP出的DP题,就好像一个癌症晚期出的题目一样了。DP[n][m][k]为A字符串前n位中一部分匹配了B字符串的前m位,并且切分了k次的方案数量。整一个临时数组,temp[n][m][k],为A字符串第n位中一部分匹配了B字符串的第m位,并且切分了k次的方案数量。那不就有:temp[i][j][k] = dp[i - 1][j - 1][k - 1]...

2021-07-08 17:34:47 191 2

原创 【统一省选2021 B卷】取模(数论)

题目传送门:https://uoj.ac/problem/627题目大意:数据范围:题解:对于每个值不同的a[k],把其余的数字根据%a[k]的值排个序得到数组b,然后b[i]+b[j] % a[k] = b[i]+b[j]或者 b[i] + b[j] - a[k]。所以要么双指针枚举b[i]+b[j]<a[k],要么直接是取最大的b[i]+b[j]-a[k],也就是b[n-1]+b[n-2]-a[k]。直接枚举每一个k就可以拿起码60分了。。。那么我们根据a[k]从大到小枚.

2021-06-30 11:53:22 213 1

原创 【统一省选2021 B卷】数对(送分题)

发一道水题题解。为什么省队选拔赛只有NOIP 1/5的难度呢?反转了,NOIP才是省队选拔赛,背后的原因令人三级烧伤。毕竟学弟NOIP143分进了省队。赢麻了。题目链接:https://uoj.ac/problem/623大致题意:数据范围:题解:、、、你要是数据范围是1<=ai<=1e9我还觉得有点做头,虽然也没啥意思。但是5e5这个范围直接把数据映射在桶里,然后筛法暴力拿不就好了。不吐槽了。上代码:#include "bits/stdc++.h"

2021-06-30 09:58:55 158 1

原创 NOIP2020T2 字符串匹配(递推/DP+筛法枚举+前缀和优化+EXKMP)

题目链接:https://uoj.ac/problem/581题目大致意思:数据规模:T<=5, S长度不超过2^20题解:可以说是非常阴间了放在NOIP第二题。我们拆解一下问题,首先我们需要枚举若干个(AB)^i,那么每个(AB)^i 从 (AB)^(i-1) 递推出来,中间一定长度的一段子串是否为与对应长度前缀相同,可以哈希去处理,但是精确做法是exkmp算法。为什么NOIPT2考EXKMP?可能是时代变了吧。EXKMP算法可以参考百度百科。作用是算出一个串A的所有后.

2021-06-29 15:27:27 417 1

原创 毒瘤赛题讲解【NOIP2020T1】排水系统(拓扑排序+GCD+__uint128_t)

今天做了下去年的NOIP题目看着题目觉得怪怪的,然后一看分数线浙江一等奖195分上海一等奖120分最低的省份70分可以说是逆天了。。。题目出的很神经病。。。体感不适。我把这几题的题做做给大家讲讲。第一题题目链接:https://uoj.ac/problem/580大致题意:有个有向无环图排水系统,从一部分节点节点开始排水,然后均匀的进入其他的入节点。。直到水拍到出水口。最后输出这些出水口的水量,互质比例形式表示。先不吐槽第一道题考图论。也许是拓扑排序2020年默认小学生都

2021-06-28 21:02:09 823 1

原创 NOI 2013 矩阵游戏

原题传送门:https://uoj.ac/problem/124大致题目意思:其中于是,网上便出现了名为矩阵费马小定理的说法,我一头雾水证明不出来,只是花了一个多小时,才证明出了一个递推表达式符合费马小定理的情况,证明方法如下:于是,默认可以认为矩阵乘法也符合欧拉定理(大嘘)所以我便写了一手取模,矩阵快速幂,通过了所有的比赛时用例,皆大欢喜。代码如下:#include "bits/stdc++.h"typedef long long LL;using nam

2021-06-25 10:40:32 112

原创 NOI2014随机数生成器(退役多年的社畜自我复健日记#2)

题目传送门:https://uoj.ac/problem/6大致题意:按照给定的式子生成一个N*M的数字矩形(数据大致随机),里面每个数字不相同(为1~N*M)。然后从左上角到右下角找一条单调向下向右的路径,路径上的数字排序后字典序最小。题解:选择路径的很显然,就是每次在可以选择的范围内尽量选最小的那个数字,然后逐渐缩小选择范围。直接写了一个分支的递归,水了30分。然后考虑一个很优秀的思路:每次从1到N*M去枚举,看看每个数字是否在可选范围内,在就选择。于是尝试了维护了两个单调队列,

2021-06-23 14:35:59 115 1

原创 NOI2014动物园(退役多年的社畜自我复健日记#1)

题目链接:https://uoj.ac/problem/5大致题意:其中,数据组数<=5, 字符串长度上限为100w题目还是很简单的,没啥思维难度,适合3年不摸算法竞赛的蛇皮首先从前到后在构建kmp的next数组的时候,可以对kmp的数组每一个位置k从next[k]递推更新其对应的前缀总数量,也就是这里的num数组同样作用。但是这里的num要求的只是前缀=后缀,比kmp模板还多了一个要求不重叠。也就是前缀长度不超过当前长度的一半。再搞个跟kmp一样的数组维护一下就好了。我的代.

2021-06-22 16:22:44 209 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除