- 博客(3372)
- 收藏
- 关注
原创 【ACWing】4005. 取石子游戏
如果轮到一人行动时,已经没有石子可取,则该名玩家失败。已知,双方都会采取最优策略,且Alice率先行动。请问,最终谁将获胜。个石子,双方轮流采取行动。每当轮到一人行动时,该名玩家需要从石子堆中取走恰好。首先这些态之间都是不能一步可达的。每组数据输出一行结果,如果Alice获胜,则输出。Alice和Bob正在玩一个取石子游戏。的倍数,则博弈退化为Bash博弈,每组数据占一行,包含两个整数。则退化为Bash博弈,如果。
2023-04-17 23:23:54
39
1
原创 【洛谷】P4018 Roy&October之取石子(配数学证明)
小于等于当前剩余石子数),谁取走最后一个石子,谁就赢了。现在October先取,问她有没有必胜策略。若她有必胜策略,输出一行。Roy 和 October 两人在玩一个取石子的游戏。,所以这些态互相不可达;都是素数,所以别的状态都能到。个石子,两人每次都只能取。游戏规则是这样的:共有。
2023-04-17 08:57:56
27
原创 【洛谷】P4860 Roy&October之取石子II(配数学证明)
小于等于当前剩余石子数),谁取走最后一个石子,谁就赢了。现在October先取,问她有没有必胜策略。若她有必胜策略,输出一行。Roy和October两人在玩另一个取石子的游戏。(第一季请看P4018),所以这些状态之间是不可达的;而对于任意一个非上面的状态,由于。都是质数,从而这些状态都可以到达上面的状态。是必败态,其余状态是必胜态。个石子,两人每次都只能取。游戏规则是这样的:共有。
2023-04-17 08:49:05
23
原创 【ACWing】1115. 取石子游戏(配数学证明)
有两堆石子,两个人轮流去取,每次取的时候,只能从较多的那堆石子里取,并且取的数目必须是较少的那堆石子数目的整数倍(不能不取)。比如初始的时候两堆石子的数目是。给定初始时石子的数目,如果两个人都采取最优策略,请问先手能否获胜。这两个状态,可以证明这两个状态一定不能都是先手必胜态,因为如果。每组数据一行,包含两个正整数。所以两个状态必然其一是必败态,从而。是必胜态,但是下一步的走法唯一,所以。(先取的)获胜,在取的过程中选手。,则第一步走法是唯一的。,表示初始时石子的数目。,则先手必胜(先手直接将。
2023-04-17 06:59:53
15
原创 【ACWing】4192. 取石子游戏 2
2、每人每次选一堆石子,并从中取走若干颗石子(至少取 1。4、如果轮到某人取时已没有石子可取,那此人算负。假如两个游戏玩家都非常聪明,问谁胜谁负?输出仅一行,一个整数,若先手获胜输出。3、所有石子被取完,则游戏结束;堆石子,每堆石子的数量分别为。1、游戏双方轮流取石子;,表示每一堆石子的颗数。
2023-04-17 06:33:30
35
原创 【洛谷】P2252 取石子游戏|【模板】威佐夫博弈(配数学证明)
有两堆石子,数量任意,可以不同。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;现在给出初始的两堆石子的数目,你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。所以证明了通项公式中的项之间不能互相到达,并且之外的项必然可以一步到达公式中的某一项,从而公式中的状态都是奇异态。下面证明, 通项公式的两个不同状态之间不能一步到达。是否成立即可,如果成立,则先手必败,否则必胜。个石子,此时得到了另一个奇异态,从而。的奇异态中未出现的最小正整数,且。结论是,奇异态的通项公式为。
2023-04-17 06:01:10
18
原创 【洛谷】P1591 阶乘数码
的每个数的阶乘,应答询问的时候只需要找到对应的数遍历每个数字即可。先用高精度乘以单精度的方式预处理出。对于每组数据,输出一个整数,表示。中某个数码出现的次数。
2023-04-17 01:41:09
24
原创 【洛谷】P1932 A+B A-B A*B A/B A%B Problem
对于高精度加法和减法,高精度加法我们可以只实现同号的情形,不同号的情形都可以化为两个非负数相减,这可以放在高精度减法里实现。由于是高精度的大整数计算,我们可以采用压位的方式节省空间和时间。存储数字的时候,符号位另外存,其余每。个位存进一个数组的项中,并且按照从低位到高位的顺序存储。的多少个数字需要考虑)。这样输出的时候,最高位原样输出,剩余位高位补。高精度乘法就直接按照一元多项式乘法的方法做即可。,不断重复上面的操作。位输出(当然输出要逆序)。的二进制最高位,接着我们将。的时候,商就算出来了,此时。
2023-04-14 13:24:43
27
原创 【洛谷】P1604 B进制星球
乘坐宇宙飞船,飞到一个美丽的星球。因为历史的原因,科技在这个美丽的星球上并不很发达,星球上人们普遍采用。星球上的人们用美味的食物招待了小。高精度加法直接模拟即可。进制加法的计算器给他们。行:一个十进制的整数,表示进制。进制数,表示输入的两个数的和。希望你可以帮助他,编写实现。分别表示两个数的位数。
2023-04-02 02:21:33
30
原创 【Leetcode】1578. Minimum Time to Make Rope Colorful
对一段相同字母的片段,只能保留一个字符,显然保留代价最大的字母最好,所以就删掉除了代价最大的那个字符以外的字符。(删除的时候假定字母的下标没有改变)。相邻字母都不同,最小的删除总代价是多少。,每个位置上的字母的删除代价由一个数组。
2023-02-28 07:49:05
137
原创 【Leetcode】1419. Minimum Number of Frogs Croaking
每叫完一个字母,就走到下一个状态。我们可以维护在每个状态上的青蛙的数量。遍历字符串,如果当前字母的出发状态有青蛙,就将这个青蛙移动到下一个状态上去。的青蛙不算,因为这个青蛙已经叫完了,它可以下一轮再叫一轮)。可以想象这些青蛙在跳一个状态机,初始状态为。的状态上的青蛙总数的最大值(在状态。有若干青蛙在叫,每次会叫出字符串。子序列就代表一次完整的叫声。,这些字符串会混在同一个长。至少是多少只青蛙叫产生的。
2023-02-27 02:02:52
158
原创 【Leetcode】1401. Circle and Rectangle Overlapping
给定一个圆的圆心和半径,还有一个矩形的左下点和右上点,矩形是正着放的,问圆和矩形是否有交集。题目保证圆心和矩形的四个点都是整点,并且半径也是整数。如果圆心在矩形内那肯定有交集。否则的话,有交集等价于矩形的四条边上有整点在圆内,可以暴力枚举。
2023-02-26 08:02:02
144
原创 【Leetcode】1400. Construct K Palindrome Strings
否则的话,可以让这些字母全用上组成若干个回文串,剩下的字母如果恰好够,则就构造出来了,否则把那些回文串的字母拿出来偶数个凑够。然后数一下奇数次数的字母有多少个,如果这个个数大于了。,那这些字母组成的回文串个数必然大于。,问这个字符串的所有字符可否构成。由于字母总个数大于等于。的只含小写字母的字符串。
2023-02-26 07:14:45
120
原创 【Leetcode】769. Max Chunks To Make Sorted
如果第一次发现已经遍历的那一段的最大值恰好是当前位置的下标,则说明说明这个最大值所在的位置到当前位置应当成为一个需要排序的段(否则这个最大值无法归位),排好序之后,后面的过程类似。,问最多将这个数组划分为多少段,可以使得段内排好序之后整个数组就有序了。
2023-02-26 05:47:53
111
原创 【Leetcode】1386. Cinema Seat Allocation
先用位运算表示一下有占据位置的行的情况,然后分情况讨论来累加,最后加上。个位置,给定若干已经占据的位置,问能安排多少个。
2023-02-19 13:07:15
181
原创 【洛谷】P2184 贪婪大陆
面对蚂蚁们的疯狂进攻,小FF的Tower defence宣告失败……现在,小FF的后方是一望无际的大海,前方是变异了的超级蚂蚁。小FF还有大好前程,他可不想命丧于此, 于是他派遣手下最后一批改造SCV布置地雷以阻挡蚂蚁们的进攻。由于情况已经十万火急,小FF在某些时候可能会询问你在。对于小FF的每次询问,输出一个答案(单独一行),表示当前区间地雷总数。区间内有多少种不同的地雷,他希望你能尽快的给予答复。的战壕,小FF拥有无数多种地雷,而SCV每次可以在。询问的时候,其实就是问,所有的区间有多少个起点在。
2023-02-14 13:55:15
218
原创 【洛谷】P2574 XOR的艺术
AKN觉得第一题太水了,不屑于写第一题,所以他又玩起了新的游戏。输入的第一行有两个用空格隔开的整数,分别表示伤害串的长度。可以用带懒标记的线段树,懒标记记录当前区间是否要整体异或。规定这个字符串的首字符是第一个字符,即下标从。AKN 想知道一些时刻的伤害,请你帮助他求出这个伤害。对于每次询问,输出一行一个整数,代表区间内。3.会修改伤害串中的数值,修改的方法是把。1.拥有一个伤害串,是一个长度为。,伤害为伤害串的这个范围内中字符。行,每行有三个用空格隔开的整数。,则表示询问伤害串的。
2023-02-14 13:24:17
188
原创 【洛谷】P2023 维护序列
从第四行开始每行描述一个操作,同一行相邻两数之间用一个空格隔开,每行开头和末尾没有多余空格。老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成。,按照它在输入中出现的顺序,依次输出一行一个整数表示询问结果。的和,由于答案可能很大,你只需输出这个数模。对于全部的测试点,保证。个非负整数,表示数列。
2023-02-13 18:01:28
203
原创 【洛谷】P2068 统计和
次的修改某些位置上的数字,每次加上一个数,然后提出。每行一个正整数,分别是每次询问的结果。行,分别表示加入和询问操作。个问题,求每段区间的和。个整数,表示序列的长度。个整数,表示操作的次数。
2023-02-13 15:16:09
210
原创 【洛谷】P5057 简单题
可以考虑该数组的异或差分数组,这样两个操作就转为单点修改和求前缀和,可以用树状数组来做。条指令,要么让其中一段连续序列数字反转——,表示数组的长度和指令的条数;个元素的数组,每个元素初始均为。),要么询问某个元素的值(操作。,则接下来只有一个数。
2023-02-13 14:46:13
194
原创 【洛谷】P4939 Agent2
单点查询可以变为求前缀和,而这两个操作可以用树状数组来维护。对于每一次询问的操作,都要输出询问的答案。组织活动时,人人都说有空,结果到了活动日,却一个接着一个。完成整理,并且在他每次询问时,输出正确的答案。其实就是要实现一个数据结构,可以做区间每个数加。,自然不想看到这一点,于是他偷取到了那些经常。行,每行输入一个命令,命令格式见题目描述。在差分数组里,区间每个数加。作为同是不咕鸟的你,也想要惩戒那些经常。,并且叫上了你来整理。询问你根据目前的信息,在第。条命令,命令操作如下。的人,所以,请协助完成。
2023-02-11 19:05:00
181
原创 【洛谷】P4879 ycz的妹子
神犇ycz由于忙于和他的妹子们联系此时已经很累了,于是交给你一个这样的任务:他想知道他在某个时间去找他的所有妹子们珂以获得多大的愉悦度,这个愉悦度为他找的妹子的颜值数,你要做的就是求出这个愉悦度之和(注意长大后妹子们的颜值可能为负数/滑稽)。小时候的她们美丽可爱,但是由于女大十八变,有些妹子的颜值发生了变化,但是十分重感情的ycz神犇不忍心抛弃她们,于是记录下来了她们颜值变化的值,我们用。个有妹子的城市,每个节点要存当前子树里妹子的个数,然后用二分的方法找到真正要删的妹子的下标。个有妹子的城市的妹子。
2023-02-11 06:32:44
190
原创 【洛谷】P2343 宝石管理系统
但是现在问题来了,他非常不小心的留了一些宝石在仓库里面,有可能要往现有的系统中添加宝石。这些宝石的个数比较少。他表示非常抱歉,但是还是希望你的系统能起作用。GY君购买了一批宝石放进了仓库。有一天GY君心血来潮,想要清点他的宝石,于是把。,表示已经取出来的宝石个数以及接下来的查询或插入操作个数。个宝石都取出来放进了宝石管理系统。,他希望你能编写程序查找到从大到小第。(即插入),则往系统中插入珍贵值为。(即询问),则输出当前第。可以用Treap,参考。(询问),输出当前第。
2023-02-09 13:57:42
185
原创 【洛谷】P3871 中位数
中位数是指将一个序列按照从小到大排序后处在中间位置的数。(若序列长度为偶数,则指处在中间位置的两个数中较小的那个)个整数,表示整数序列,数字之间用空格分隔。:在该序列的最后添加一个整数。行,每行输入格式如题意所述。:输出当前序列的中位数。序列中整数的绝对值不超过。,序列中的数可能有重复。可以用Treap,参考。第一行为初始序列长度。操作输出中位数的值。
2023-02-09 12:39:51
209
原创 【洛谷】P2234 营业额统计
Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额。由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况出现了问题。而分析整个公司的从成立到现在营业情况是否稳定,只需要把每一天的最小波动值加起来就可以了。输出一个正整数,即每一天最小波动值的和,保证结果小于。
2023-02-09 11:19:23
221
原创 【Leetcode】527. Word Abbreviation
1、每个单词的缩写格式是其前缀 + 省略的字符个数 + 最后一个字符,但要越短越好;2、如果多个单词缩写相同,那么要选取最长的前缀,使得这些单词缩写变得不同;3、如果缩写没有使得单词变得更短,那么不缩写。给定若干小写字母的单词,每个单词长度都大于。要求返回的时候按原数组相同顺序排序。
2023-01-31 13:41:54
247
原创 【Leetcode】712. Minimum ASCII Delete Sum for Two Strings
可以删除任一字符串的任意多个字符,总代价为删除的字符的ASCII码总和。求让它们变得相等的最小总代价。个字符的前缀要变得相等,操作的最小总代价。如果都删,则最小总代价为。,那么不删也是一种选择,最小总代价为。四个情况取最小即可。是否做删除来分类,如果删。
2023-01-30 10:39:42
236
原创 【Leetcode】710. Random Pick with Blacklist
中的若干个下标的黑名单。要求实现一个方法,该方法获取黑名单下标之外的随机的。的数,如果不在黑名单则直接返回,否则映射一下再返回。个不在黑名单的下标做一个映射。个下标不在黑名单之中,我们可以在前。的下标,每个下标要等概率返回。个下标在黑名单之中,那么A的后。个在黑名单之中的下标到后。
2023-01-30 10:33:47
246
原创 【Leetcode】723. Candy Crush
每一轮开始先求出所有要被消去的位置,存起来,然后将其消去即可。找位置的时候,只需要判断其上下是否都与其相等,或者其左右是否都与其相等。消去的时候,可以遍历每一列,然后进行整体的消去。的段就会同时都被消掉。每一轮找到所有要被消掉的数之后,将上面的数向下填充,上面空出的位置填。这是糖果消消乐的局面,每一轮要进行如下操作:如果某个位置的左右延伸长度。问经过若干轮直到无法再消去新的块的时候,矩阵。是消去的轮数,取决于具体数据),空间。的段都相等,或者其上下延伸长。的段都相等,那么组成长度为。
2023-01-29 02:32:15
270
原创 【Leetcode】418. Sentence Screen Fitting
的单词为某一行的第一个单词的时候,这一行能填多少个单词。接下来枚举每一行,如果已经知道了当前行的第一个单词下标,则当前行有多少个单词已经知道了,直接累加单词数再枚举下一行;如果不知道,则暴力求出当前行填多少个单词,并且将信息存入哈希表。最后只需要返回总共的单词数除以。列的屏幕,我们要将单词列表顺次填写到每一行中,所有单词填完之后再填一轮,如此下去。除了每行第一个单词之外,其余单词填的时候必须前面加一个空格,并且同行两个单词之间最多一个空格。开一个哈希表,存这样的信息:当下标。
2023-01-24 19:27:16
179
原创 【Leetcode】436. Find Right Interval
记录一下每个左端点对应的区间下标,然后按左端点从小到大排序,接着枚举每个区间,二分求左端点大于等于其右端点且左端点最小的区间。,对每个数组,求左端点大于等于其右端点且左端点最靠左的区间的下标。题目保证每个区间左端点各不相同。
2023-01-24 17:24:45
167
原创 【Leetcode】1801. Number of Orders in the Backlog
每个单下了以后,如果其是买单,则其会按照价格优先的方式满足价格低于或等于买单价格,然后撮合交易。问最后还有多少股数没有被交易完。可以开两个堆,分别存买单和卖单,按价格优先排序,买单的堆顶是最大买价,卖单的堆顶是最小卖价,这样一旦来了一个单子,就可以看堆顶是否能撮合交易。给定若干的下单,每个下单包含价格、股数和下单是买还是卖,
2023-01-24 07:35:20
171
原创 【Leetcode】2035. Partition Array Into Two Arrays to Minimize Sum Difference
个数字的所有组合的和,key是数字个数,value是和的所有可能性,然后再暴力枚举前。,要求将其分为两部分,使得两部分各自和作差的绝对值最小,返回这个最小的绝对值。个数字,为了二分方便,哈希表的value用set来存;最近的数,这个可以用lower_bound来做。个数字的所有组合,如果这个组合含。个数字的某个组合的和是。
2023-01-20 15:27:51
211
原创 【Leetcode】1680. Concatenation of Consecutive Binary Numbers
的二进制数连接起来得到的数的十进制模。
2023-01-20 13:54:23
153
原创 【洛谷】P1776 宝物筛选
终于,破解了千年的难题。小FF找到了王室的宝物室,里面堆满了无数价值连城的宝物。但是这里的宝物实在是太多了,小FF的采集车似乎装不下那么多宝物。小FF对洞穴里的宝物进行了整理,他发现每样宝物都有一件或者多件。他粗略估算了下每样宝物的价值,之后开始了宝物筛选工作:小FF有一个最大载重为。小FF希望在采集车不超载的前提下,选择一些宝物装进采集车,使得它们的价值和最大。输出仅一个整数,表示在采集车不超载的情况下收集的宝物的最大价值。,分别表示宝物种数和采集车的最大载重。种宝物,每种宝物的价值为。
2023-01-15 04:08:42
187
原创 【洛谷】P1833 樱花
爱与愁大神在每天上学前都会来赏花。爱与愁大神可是生物学霸,他懂得如何欣赏樱花:一种樱花树看一遍过,一种樱花树最多看。爱与愁大神离去上学的时间只剩下一小会儿了。求解看哪几棵樱花树能使美学值最高且爱与愁大神能准时(或提早)去上学。的情形,可以用完全背包来做,而对其余情况,需要用二进制优化来做,参考。遍,一种樱花树可以看无数遍。可以用空间优化,递推的时候只开一维数组。(几时:几分),爱与愁大神院子里有几棵樱花树。只有一个整数,表示最大美学值。(几时:几分),去上学的时间。棵樱花树,每棵都有美学值。
2023-01-15 02:58:39
252
原创 【Leetcode】592. Fraction Addition and Subtraction
构造一个分数类,然后截取出所有项求个总和即可。,运算只有加减,求其结果,并以既约分数的形式输出。的分数加减法的表达式。
2023-01-10 07:25:20
149
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人