自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 程序设计思维 大模拟-4

猫睡觉问题众所周知,TT家里有一只魔法喵。这只喵十分嗜睡。一睡就没有白天黑夜。喵喵一天可以睡多次!!每次想睡多久就睡多久╭(╯^╰)╮喵睡觉的时段是连续的,即一旦喵喵开始睡觉了,就不能被打扰,不然喵会咬人哒[○・`Д´・ ○]可以假设喵喵必须要睡眠连续不少于 A 个小时,即一旦喵喵开始睡觉了,至少连续 A 个小时内(即A*60分钟内)不能被打扰!现在你知道喵喵很嗜睡了,它一天的时长都在吃、喝、拉、撒、睡,换句话说要么睡要么醒着滴!众所周知,这只魔法喵很懒,和TT一样懒,它不能连续活动超过 B 个小

2020-06-13 16:19:30 208

原创 程序设计思维 大模拟-3

团队聚会题目描述TA团队每周都会有很多任务,有的可以单独完成,有的则需要所有人聚到一起,开过会之后才能去做。但TA团队的每个成员都有各自的事情,找到所有人都有空的时间段并不是一件容易的事情。给出每位助教的各项事情的时间表,你的任务是找出所有可以用来开会的时间段。输入格式第一行一个数T(T≤100),表示数据组数。对于每组数据,第一行一个数m(2 ≤ m ≤ 20),表示TA的数量。对于每位TA,首先是一个数n(0≤ n≤100),表示该TA的任务数。接下来n行,表示各个任务的信息,格式如下Y

2020-06-13 16:04:38 273

原创 程序设计思维 大模拟-2

掌握魔法の东东Ⅱ从瑞神家打牌回来后,东东痛定思痛,决定苦练牌技,终成赌神!东东有 A × B 张扑克牌。每张扑克牌有一个大小(整数,记为a,范围区间是 0 到 A - 1)和一个花色(整数,记为b,范围区间是 0 到 B - 1。扑克牌是互异的,也就是独一无二的,也就是说没有两张牌大小和花色都相同。“一手牌”的意思是你手里有5张不同的牌,这 5 张牌没有谁在前谁在后的顺序之分,它们可以形成一个牌型。 我们定义了 9 种牌型,如下是 9 种牌型的规则,我们用“低序号优先”来匹配牌型,即这“一手牌”从上

2020-06-13 15:22:54 251

原创 程序设计思维 大模拟-1

A-化学化学很神奇,以下是烷烃基。假设如上图,这个烷烃基有6个原子和5个化学键,6个原子分别标号1~6,然后用一对数字 a,b 表示原子a和原子b间有一个化学键。这样通过5行a,b可以描述一个烷烃基你的任务是甄别烷烃基的类别。原子没有编号方法,比如1 22 33 44 55 6和1 32 32 44 55 6是同一种,本质上就是一条链,编号其实是没有关系的,可以在纸上画画就懂了Input输入第一行为数据的组数T(1≤T≤200000)。每组数据有5行,每行是两个整数a,

2020-06-13 08:29:47 303

原创 程序设计思维CSP-M4 赛后整理

TT数鸭子这一天,TT因为疫情在家憋得难受,在云吸猫一小时后,TT决定去附近自家的山头游玩。TT来到一个小湖边,看到了许多在湖边嬉戏的鸭子,TT顿生羡慕。此时他发现每一只鸭子都不 一样,或羽毛不同,或性格不同。TT在脑子里开了一个map<鸭子,整数> tong,把鸭子变成了 一些数字。现在他好奇,有多少只鸭子映射成的数的数位中不同的数字个数小于k。输入描述输入第一行包含两个数n,k,表示鸭子的个数和题目要求的k。接下来一行有n个数,aia_iai​,每个数表示鸭子被TT映射之后的值。

2020-06-12 18:43:44 185

原创 程序设计思维CSP-M3 赛后整理

瑞神的序列瑞神的数学一向是最好的,连强大的咕咕东都要拜倒在瑞神的数学水平之下,虽然咕咕东很苦恼,但是咕咕东拿瑞神一点办法都没有。5.1期间大家都出去玩了,只有瑞神还在孜孜不倦的学习,瑞神想到了一个序列,这个序列长度为n,也就是一共有n个数,瑞神给自己出了一个问题:数列有几段?段的定义是位置连续的数值相同的最长整数序列Input输入第一行一个整数n,表示数的个数接下来一行n个空格隔开的整数,表示不同的数字Output输出一行,这个序列有多少段Sample input122 3 3 6 6

2020-06-12 11:34:25 177

原创 程序设计思维CSP-M2 赛后整理

HRZ的序列相较于咕咕东,瑞神是个起早贪黑的好孩子,今天早上瑞神起得很早,刷B站时看到了一个序列a,他对这个序列产生了浓厚的兴趣。他好奇是否存在一个数K,使得一些数加上K,一些数减去K,一些数不变,使得整个序列中所有的数相等。其中对于序列中的每个位置上的数字,至多只能执行一次加运算或减运算或是对该位置不进行任何操作。由于瑞神只会刷B站,所以他把这个问题交给了你!Input输入第一行是一个正整数t表示数据组数。接下来对于每组数据,输入的第一个正整数n表示序列a的长度,随后一行有n个整数,表示序列

2020-06-12 10:42:16 149

原创 程序设计思维CSP-M1赛后整理

咕咕东的奇遇咕咕东是个贪玩的孩子,有一天,他从上古遗迹中得到了一个神奇的圆环。这个圆环由字母表组成首尾相接的环,环上有一个指针,最初指向字母a。咕咕东每次可以顺时针或者逆时针旋转一格。例如,a顺时针旋转到z,逆时针旋转到b。咕咕东手里有一个字符串,但是他太笨了,所以他来请求你的帮助,问最少需要转多少次。Input输入只有一行,是一个字符串。Output输出最少要转的次数。Sample inputzeusSample output18解题思路签到题,对于每次找字幕判断顺时针转比较近还是

2020-06-12 09:09:43 152

原创 程序设计思维week15 选做题

ZJM与生日礼物ZJM 收到了 Q老师 送来的生日礼物,但是被 Q老师 加密了。只有 ZJM 能够回答对 Q老师 的问题,Q老师 才会把密码告诉 ZJM。Q老师 给了 ZJM 一些仅有 01 组成的二进制编码串, 他问 ZJM:是否存在一个串是另一个串的前缀.Input多组数据。每组数据中包含多个仅有01组成的字符串,以一个9作为该组数据结束的标志。Output对于第 k 组数据(从1开始标号),如果不存在一个字符串使另一个的前缀,输出"Set k is immediately decodabl

2020-06-11 19:07:44 176

原创 程序设计思维week14 选做题

矩阵快速幂专场!然而还要结合dp关于矩阵快速幂,以前学的时候写过一篇博客还是和普通快速幂一样的原理,通过二进制拆分指数来让幂的复杂度降到log级别,但是和普通快速幂的应用环境不同,矩阵快速幂常用来优化递推式的计算,比较经典的问题就是求斐波那契数列的第1e7+项,这个问题在以前的博客里也写过了。这周遇到的问题都是对dp的优化Q老师染砖衣食无忧的 Q老师 有一天突发奇想,想要去感受一下劳动人民的艰苦生活。具体工作是这样的,有 N 块砖排成一排染色,每一块砖需要涂上红、蓝、绿、黄这 4 种颜色中的其

2020-06-11 18:47:49 197

原创 程序设计思维week13 选做题

TT的苹果树(没有上司的舞会)在大家的三连助攻下,TT 一举获得了超级多的猫咪,因此决定开一间猫咖,将快乐与大家一同分享。并且在开业的那一天,为了纪念这个日子,TT 在猫咖门口种了一棵苹果树。一年后,苹果熟了,到了该摘苹果的日子了。已知树上共有 N 个节点,每个节点对应一个快乐值为 w[i] 的苹果,为了可持续发展,TT 要求摘了某个苹果后,不能摘它父节点处的苹果。TT 想要令快乐值总和尽可能地大,你们能帮帮他吗?Input结点按 1~N 编号。第一行为 N (1 ≤ N ≤ 6000) ,代

2020-06-11 11:02:28 163

原创 程序设计思维week12 选做题

1-POJ2955问题描述We give the following inductive definition of a “regular brackets” sequence:the empty sequence is a regular brackets sequence,if s is a regular brackets sequence, then (s) and [s] are regular brackets sequences, andif a and b are regular bra

2020-06-11 09:38:32 171

原创 程序设计思维week11 选做

E-东东与ATM一家银行计划安装一台用于提取现金的机器。机器能够按要求的现金量发送适当的账单。机器使用正好N种不同的面额钞票,例如D_k,k = 1,2,…,N,并且对于每种面额D_k,机器都有n_k张钞票。例如,N = 3,n_1 = 10,D_1 = 100,n_2 = 4,D_2 = 50,n_3 = 5,D_3 = 10表示机器有10张面额为100的钞票、4张面额为50的钞票、5张面额为10的钞票。东东在写一个 ATM 的程序,可根据具体金额请求机器交付现金。注意,这个程序计算

2020-06-11 08:33:47 145

原创 程序设计思维月模拟4 CSP201809-3 元素选择器

思路看到题目还以为是化学背景的题,仔细读题后发现里面的细节问题很多,由于写这类复杂模拟题不熟练,一时间想不到好的解决办法。回顾这道题,整理了一些关键的点,也适合再遇到这类模拟题时寻找写代码的切入点。①元素统一格式开结构体,没有ID就设为空值。因为是在树结构上查找而且没有修改结构的操作,用下标记录每个元素所处的level②字母一律转为小写,和①都体现了格式统一化的思想,看上去增加了开支但实际上省去不少麻烦③查询有多个字符串的情况,由最后一个往上层去查找其余要强调的部分写在注释里#inclu...

2020-06-10 19:34:23 173

原创 程序设计思维月模拟3 CSP201604-3 路径解析

操作系统的网课学得并不理想样例输入7/d2/d3/d2/d4/f1…/d4/f1/d1/./f1/d1///f1/d1/////d1/…/…/d2样例输出/d2/d4/f1/d2/d4/f1/d1/f1/d1/f1/d1//d2解题思路经典的读题半小时系列,输入的每一个相对路径可以看作找目标位置的一个过程,跟着每一句跑一遍把结果表示出来就行了。很能体现栈的思想,也依然是一个很适合用vector的题目,写起来简便看起来明白。输入中每个‘/’字符后面的目录名字(或者理

2020-06-10 19:02:19 207

原创 程序设计思维月模拟题2-CSP201609-3 炉石传说

以我开卡包的水平这游戏只能叫炉石稀有问题描述  本题所使用的炉石传说游戏的简化规则如下:* 玩家会控制一些角色,每个角色有自己的生命值和攻击力。当生命值小于等于 0 时,该角色死亡。角色分为英雄和随从。* 玩家各控制一个英雄,游戏开始时,英雄的生命值为 30,攻击力为 0。当英雄死亡时,游戏结束,英雄未死亡的一方获胜。* 玩家可在游戏过程中召唤随从。棋盘上每方都有 7 个可用于放置随从的空位,从左到右一字排开,被称为战场。当随从死亡时,它将被从战场上移除。* 游戏开始后,两位玩家轮流进行

2020-06-10 18:48:02 205

原创 程序设计思维月模拟题1-CSP201512-3 画图

样例输入4 2 31 0 0 B0 1 0 2 01 0 0 B0 1 0 2 01 0 0 A样例输出AAAAA–A样例输入16 13 90 3 1 12 10 12 1 12 30 12 3 6 30 6 3 6 90 6 9 12 90 12 9 12 110 12 11 3 110 3 11 3 11 4 2 C样例输出解题思路在大一下专业分流的时候考了这道题,但是当时搞了半天也没有拿到满分。这次仔细一看发现这道题的整体思想并不难。对于画边界情况,注意.

2020-06-10 18:37:12 177

原创 【网络流自学Ⅱ】最小费用最大流

最小费用最大流也是网络流中的经典问题,其实就是在最大流问题的基础之上加了一些限制:对于某条管道i,传输单位流量需要ci的费用,在这样一个网络中求费用最少的最大流。可以把每条管道上的费用ci看作边长,这样求最小费用等价于求最短路,考虑在EK算法中有一个求增广路的bfs,只要把bfs换成spfa,求最短(其实是总费用最小)增广路,累加增逛的流量flow就能求出最大流,而统计费用时只需累加flow与这...

2019-08-17 17:35:13 202

原创 【网络流自学】最大流模板 EK 与 Dinic

过两天要讲优化最大流算法,今天抓紧先看看两个最基本的最大流算法。网络流可以形象地理解为“水流”,所谓最大流问题,就是水要从源点出发流经一个有向图到达汇点,问能流到汇点的最大水流量,当然有向图的每条边有边权(容量),如果水要从某条路到达汇点,显然水流量不能超过这条路上的最小边权(木桶效应)。图上能够使总流量变大的路称为增广路。通过求取最短增广路不断更新最大流的算法就是EK算法,而对图分层并用d...

2019-08-13 16:48:03 193

原创 【HYSBZ 1257】余数之和 数论分块(棒读)

其实很多人都说是打表找个规律就过了,不过既然我们是来学分块的,当然要用相应的知识去做,考试的时候再打表 。分块可以把一些O(n)或复杂度更高的过程优化到O(√n)。对于整数n及i(1 < i < n),floor(n/i)的结果最多有2√n种(分i <√n和i > √n两种情况来考虑一下),又floor(n/i)相等的i可能有多个,手写式子简单推一下可以算出来满足floo...

2019-08-07 18:39:50 181

原创 It's a Mod, Mod, Mod, Mod World【类欧几里德模板】

题目链接昨天比赛真的考了一个模板题。然而对于没有学过这个算法的我来说emmmm这里考的是最基本的类欧几里得算法,用来算推倒过程可以参考这篇博客,写得比较容易理解。本题要求和的这个式子稍有不同,变通一下,考虑模数计算的原理,可以知道a mod b = a - floor(a/b)*b,代入上面那个式子可以得到要求的结果ans = p × n(n+1)/2 - q × Σ[pi / q]直接...

2019-08-05 18:33:58 588 3

原创 【填坑】树链剖分个人理解(2019.8.8)

这两天的学习有些难受,连续值班爆肝加上学长讲的dp每次都听得不是很懂,题也没做多少,感觉自己对这两天自学的一些“添头儿”倒是领会得挺快(树剖,矩阵加速,概率问题,几何问题等),这些写成博客也没多少内容,所以今天只是填个坑,希望以后的学习内容友好一点,好歹能让我写出来点东西吧!总的来说,树链剖分是把树结构分成不同的链,将树上路径、子树等问题转化为链上问题进行解决,比如dfs序就是一种将子树转化成链...

2019-08-02 18:51:13 136

原创 快速幂简单回顾&矩阵快速幂初学与应用

(貌似在合鸟树链剖分博客的路上越走越远了233)回顾一下快速幂求a ^ b mod p的值,三个数大小可达2^31。解法类似于二进制拆分指数b,上代码:ll a,b,p,mod;ll fastpow(ll x,ll y,ll m){ ll z=x,ans=1; for(;y>0;y/=2,z=(z*z)%m) { if(y%2==1) ...

2019-07-31 21:59:21 324

原创 Gym102141 E 解题报告

由于某些人实在是太强了,提前刷过今天的比赛题,所以ash学长又临时换了题,然后我就原地爆炸了OmO。后来想了想,心态和思维能力不过关是这次爆炸的原因(其实也是菜的一种)。赛后看学长的博客提了一句这题是用set乱搞,我以前也没学好stl,又搜了搜博客,知道set存的数都是有序的,而且插入操作复杂度是logN,最后也是搞出了这个做法。其实代码看着很简单,还是思维的问题。题目链接大意是给一个字符串,...

2019-07-30 21:39:20 208

原创 Gym 101510C,今日排位(被虐)唯一收获

这是我写过最难受的二分,感觉还是思维不够巧妙,输给了经验不足,实在是羡慕那些看出这题是二分且一发过的dalao。题目链接题目大意是给一列数和一个k,求一个区间长度L,使以某一位置为起点的某一长度为L的区间包含给出的n个数中的k个,且第i的区间必须包含a[i]。n最大为2e5。整理后的题意应该比较容易看懂,其实区间位置是任意的,管他哪个区间包含a[i],只要满足条件顺序其实不重要。看懂了样例...

2019-07-28 17:38:44 224 1

原创 字典树(Trie树)和几道题目

补了补昨天

2019-07-27 18:44:07 346 1

原创 KMP简单理解与代码板子

KMP,快速字符串匹配,其实也是一种对暴力算法的优化(但是这优化竟如此强大且著名一直沿用至今tql Orz %%%)这是板子题这是代码#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <algorithm>#incl...

2019-07-26 16:58:37 480

原创 树上点分治学习笔记

树上点分治,用来处理这样一些问题,即给定一棵树,求出和树上所有点对之间距离相关的某个答案,如求树上两点之间距离等于k的点对个数(CF161D,板子题)。如果了解lca,可能会想到利用lca求出所有点对间的距离,然后枚举点对统计答案,复杂度大概是O(n2logn)。不过看一眼题,n最大为5e5,即使时间给了三秒,也应该会TLE。点分治的思想大概 是对于给定的树,通过选取其中的特殊点(后面讲),将...

2019-07-25 19:41:59 256

原创 树上差分初(luan)学(xie)

树上差分初(luan)学(xie)前两天cy学长讲了简单树论,主要是lca,dfs序,树上差分。其实还讲了其他内容不过他没讲明白 我现在真正会用的也就这些=.=。树上差分需要一些预备知识,即求树上两个节点的最近公共祖先(LCA),另外还有要对一个序列的差分(或者还有前缀和)有一定的了解。有这样一类问题,在一棵树上多次对某两点之间的路或者路上的所有节点进行操作,最后要求对整棵树求某个答案。一...

2019-07-24 16:25:19 304 2

空空如也

空空如也

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

TA关注的人

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