![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
coderforce
mxYlulu
ACM燃烧我的卡路里
展开
-
SWERC 2019-2020 Problem D
题意给一个超长的序列,以及1e41e41e4个操作。当然给了两个操作序列。比较最后得到的结果是否相同,都操作失败也视为相同题解每个元素都是一个pair<int,int>,当然里面可能有嵌套。我们可以对其进行哈希,或者说记录令pair<int,int>=x,那么对于pair<pair<int,int>,int>=pair<x,y>。这样就能保证不会变复杂了,哈希的时候两个操作序列用一个哈希(用map即可)。并且最多1e4个操作,所以我原创 2020-06-11 09:46:12 · 359 阅读 · 0 评论 -
codeforces 625 E. World of Darkraft: Battle for Azathoth
题意购买武器和装备,攻击力和防御力都大于某个怪物的时候,就可以获取他的收益。求总收益(去掉购买的武器和装备的钱)最大题解首先武器和装备的最佳价格一定是随着属性的增加而增加的。所以可以用后缀最小值来获得,当然我用的是单调队列。得到价格后,我们考虑排序怪物的攻击力。遍历,每次得到大于其攻击力的最小武器价格,然后需要找到所有遍历过的我能获得最大收益。考虑线段树。总共防御只有1e61e6...原创 2020-03-02 09:25:39 · 286 阅读 · 0 评论 -
E. Cow and Treats
题意一行多个颜色,挑选尽可能多的颜色,保证存在一个界限,界限往左和往右最多某种颜色只有一个。保证这个颜色必须是某头牛需要的颜色。题解题意简化之后就是枚举分界点,由于颜色互不干扰,所以颜色也可以枚举。得到分界点左右每个颜色的个数(统计的时候可以O(1)O(1)O(1)递推着求)从而可以二分出有多少牛可以选。得到L,RL,RL,R;为了保证不重复选同一只,答案是min(L,R)∗(max...原创 2020-02-20 10:00:31 · 570 阅读 · 2 评论 -
Codeforces Round #621 (Div. 1 + Div. 2) D
题意一张图,kkk个特殊点。必须在特殊点之间加一条边,但不确定是哪对,使得最短路最大。题解首先,求出每个点到111和到nnn的最短路。容易发现加边之后能得到的最短路为:min(d1[a]+1+d2[b],d1[b]+1+d2[a],d[1][n])min(d_1[a]+1+d_2[b],d_1[b]+1+d_2[a],d[1][n])min(d1[a]+1+d2[b],d1[b]...原创 2020-02-18 19:44:45 · 292 阅读 · 0 评论 -
Codeforces Round #619 (Div. 2) D、E
D题意从左上角开始走,不能走重复的路,走确切kkk条路,给出方案。方案的形式是多个stepstepstep,每个stepstepstep是由xxx和不超过444的字符串组成,字符串表示怎么走,xxx即走多少个这样的字符串。【比如LRLRLRLRLRLRLRLRLRLRLRLRLRLRLR可以表示为4LR4\quad LR4LR】要求这样的数量不超过300030003000题解比赛的...原创 2020-02-14 13:43:57 · 397 阅读 · 0 评论 -
Hello 2018 E
题意告诉你x、y、zx、y、zx、y、z,以及!、∣、&! 、|、\&!、∣、&元素符和括号搭配,组成想要的八位二进制串。题解第一次见到用stringstringstring作为数组进行转移的,涨知识。考虑优先级。对于一个运算符,两个数都应该大于其优先级。所以我们设立三个数组,分别代表最低优先级即∣|∣,中等&\&&,最高!!!和括号。...原创 2020-02-11 23:43:40 · 106 阅读 · 0 评论 -
Educational Codeforces Round 62 (Rated for Div. 2) E
题意如果一个数组中有>1>1>1的奇数回文串就是badbadbad.数组中−1-1−1的部分要求被替换成1−k1-k1−k的数字,最后得到的不badbadbad的数组有多少种题解如果能保证最小的奇数回文串不存在,就不会存在更大,最小的是333。保证a[i]!=a[i−2]a[i]!=a[i-2]a[i]!=a[i−2]。我们可以发现分奇偶讨论。每一部分都是−1−1−...原创 2020-02-11 13:51:40 · 119 阅读 · 0 评论 -
Educational Codeforces Round 75 (Rated for Div. 2) E
题意说服说有人每个人可以用钱收买,或者达成说服了mim_imi人的条件题解我们可以考虑mi=n−1m_i=n-1mi=n−1的时候,能够达成条件的只有一个人,那么我肯定是留下pip_ipi最大的。以此类推,当m≥mim\geq m_im≥mi的时候,能够达成条件的可以有n−min-m_in−mi个人。为了使所有不等式满足,我们倒着推,并且一旦超过n−min-m_in−mi,...原创 2020-02-10 14:35:54 · 126 阅读 · 1 评论 -
Sticey_training#3[MEDIUM]
已补(2/9)A题意每天可以加一个水位标记,标记可以重合,并且告诉你每天在当前水位上有多少个标记,求每天水位下标记总和。题解先求出每天至少多少个,取前缀最值。但是这样是最少的情况,而且不一定合法,因为每天最多一个。所以倒过来取max(a[i+1]−1,a[i])max(a[i+1]-1,a[i])max(a[i+1]−1,a[i])得到每天个数之后,n−m[i]−1n-m[i]-1...原创 2020-01-26 11:14:06 · 142 阅读 · 0 评论 -
Educational Codeforces Round 80 (Rated for Div. 2) E
题意初始为1−n1-n1−n,mmm次操作把一个数提到最前面,最后输出每个数的最前位置和最后位置。题解最前位置就是初始位置或者111。最后位置怎么得到呢?我们可以发现就是算上从开始到第一次被提,和最后一次被提到结束,两次被提之间。求这之间的的不同种类数,但是第一个还要求大于自己的不同种类数。不过我们可以简单的减小一下处理难度,在初始倒入插入一下,这样子就能保证比自己小的没有影响了。5...原创 2020-01-25 10:25:56 · 102 阅读 · 0 评论 -
Sticey_training#2[HARD]
已补(1/9)ABCDEFG2100 H题意三个操作,加入一个数xxx,删除一个数xxx,询问有多少个数满足x⊕y≤zx \oplus y \leq zx⊕y≤z。给出的是y、zy、zy、z。题解首先因为是不等号,不能进行正常能进行的异或运算。首先前两个操作暗示了TrieTrieTrie树,具体操作是什么呢?逐位判断,比如说zzz的第kkk位是000,那么此时查询的时...原创 2020-01-23 19:38:27 · 177 阅读 · 0 评论 -
Global round 6 D、E
D题意:很简单,一张图,债务关系,请缩小关系,使得关系越简单越好,具体体现为,边权总和最小。题解每个人只关心借了多少钱和借出去多少。我们把所有人借了的钱分别从借出去的人里面分配,一个一个分。即可。#include <bits/stdc++.h>#define FOR(i,a,b) for(int i=a;i<=b;i++)#define sf(x) scanf(...原创 2020-01-18 13:03:28 · 260 阅读 · 0 评论 -
Good Bye 2019 E
Good Bye 2019 E题意nnn个点分成两类,不同类别之间的距离和相同类别之间的距离集合的交集应该为空集。构造。题解分类问题。一开始没有思路,一直往距离想,实际上可以转换成奇偶的判断(之前有一道网络流也是通过奇偶划分二分图。每个点分为奇偶则有四种类别。奇奇(1)、偶偶(2)、奇偶(3)、偶奇(4)。显然可以看出1、2一组,3、4一组是没有问题的。因为相同组别的距离都是偶数,...原创 2020-01-16 23:25:25 · 319 阅读 · 0 评论 -
Sticey_training#1[HARD]
已补2/72/72/7CodeForces - 510E题意给定多个数,形成多个环,保证环上相邻和是素数。题解刘大爷提示网络流之后就开始往那方面想。把题目转换成,找nnn条边,并且保证每个点只和两条边相连。但是怎么建图都只能限制度数或者边数。题解是采用了素数=奇数+偶数。也就是每条选择的边一定是奇数和偶数。设置一个二分图,左边奇数,右边偶数,一旦选择一条边,就会用掉一个点的度数。...原创 2019-12-25 23:25:44 · 144 阅读 · 0 评论 -
Sticey_training#1[MEDIUM]
已补2/52/52/5CodeForces 1268C题意对于nnn的排列,f(i)f(i)f(i)表示求出通过交换相邻元素得到111~iii的连续段的最小次数。并输出f(i),i∈[1,n]f(i),i∈[1,n]f(i),i∈[1,n]题解如果是对于连续段相互交换得到最终阶段,显然答案是逆序对个数。而这个实际情况是要把非连续转换成连续。要求最小化∣pos1−(x−k)∣+∣po...原创 2019-12-25 23:08:37 · 140 阅读 · 0 评论 -
Codeforces Round #606 D
题意大概是01串接龙,接的时候必须尾首相同。你可以将其中的串反转,使得最后拼起来但要保证最后没有相同的。题解首先可以想到真正有用的是首尾,单独拿出来可以发现只有四种状态。记录一下即可。如果00和11都在的话,连接的就只有00 0110 0110 01 11.这是我一开始想到的。也就是奇数个。但实际上:00 01 11 11 11 10 01 10 01这样无论奇数偶数都可以。我...原创 2019-12-16 19:52:31 · 122 阅读 · 0 评论 -
codeforces #604 div2 E
题意nnn个检查点,每个检查点有pip_ipi的概率获胜,但一旦落败就得从头开始,通过所有就是胜利,每天只能检查一次,求胜利的期望天数。题解EiE_iEi表示通过前iii个检查点的期望。到达第iii个点只有从i−1i-1i−1过来,而i−1i-1i−1到iii只有两种可能,胜利和失败。如果失败的话在基础天数下再加上一个EiE_iEi。Ei=pi100(Ei−1+1)+100−pi...原创 2019-12-06 16:05:01 · 108 阅读 · 0 评论 -
Codeforces Round #600 (Div. 2) E
题意nnn个广播,每个广播的范围可以通过一个花费扩大111,求最小花费覆盖。题解dpdpdp首先我们可考虑倒着dpdpdp,正着也行。dp[i]dp[i]dp[i]表示覆盖i→mi \to mi→m的最小花费。1.如果当前已经被覆盖,显然答案是dp[i]=dp[i+1]dp[i]=dp[i+1]dp[i]=dp[i+1]2.如果在某个广播中心左侧,答案是dp[i]=dp[L[j]−i...原创 2019-11-17 15:10:25 · 206 阅读 · 0 评论 -
Educational Codeforces Round 76 (Rated for Div. 2) F
题意给你nnn个数,找到一个数使得这nnn个数异或这个数后的得到的数的二进制下111的个数相同。这nnn个数大小不超过230−12^{30}-1230−1题解首先我们可以知道找到这个数,这个数大小也不会超过230−12^{30}-1230−1,因为一旦超过,多余的都是相同的,没有意义。那我们怎么处理呢,如果我们只处理前一半,得到一组前一半的异或结果111的个数。再处理后一半,得到一组后...原创 2019-11-16 19:40:45 · 146 阅读 · 0 评论 -
Codeforces Round #599 (Div. 2) D
题意完全图。告诉你mmm条边权值为111,其他为000求最小生成树权值。题解容易发现,如果从每个点只跑000边,最后会形成几个连通块,答案就是连通块个数减一。那么怎么知道几个连通块呢?首先我想的是dfsdfsdfs+链表优化,然而复杂度过于玄学,因为删除的顺序不清楚,所以也并没有通过。dfsdfsdfs实际是可以通过的,预存那些能跑的点,把不能跑的点作为新的集合传下去(否则都跑过了...原创 2019-11-16 19:34:02 · 104 阅读 · 0 评论 -
Gym - 102307J Jail Destruction
纯套路题。基本思路是靠自己想的,不过偷看了一眼题解,哎去掉这个坏习惯,相信自己。题意支持线段树的修改和查询但是要求的是,不能减低于000【只有减操作】其实很简单,因为低于等于000的只会被操作一次,以后低于等于000的可以忽略了。怎么忽略呢?记录当前大于000的个数lenlenlen,记录当前最小值xxx,如果修改值比xxx小,那么可以直接更新,否则继续往下。复杂度会不会有问题?不会,...原创 2019-11-05 13:48:37 · 298 阅读 · 0 评论 -
Gym - 102307C
题意有趣的题目。求最长公共子序列是否大于等于长度的99%99\%99%正向的复杂度显然是n2n^2n2做法是:dp[i][j]=max(dp[i−1][j],dp[i][j−1],dp[i−1][j−1]+a[i]==a[j])dp[i][j]=max(dp[i-1][j],dp[i][j-1],dp[i-1][j-1]+a[i]==a[j])dp[i][j]=max(dp[i−1][j...原创 2019-11-04 21:11:31 · 197 阅读 · 0 评论 -
Gym-102307F
题意计算只包含加减和括号的分式计算式题解一开始尝试去括号,但是没有办法很好解决重叠括号的问题,指的是((()))((()))((()))。这个时候我不好判断。如果我们记录两个标记,fff表示当前加减号,ffffff表示当前括号产生的变号影响。以///来标识和记录一个分式。直接计算即可,每次遇到一个左括号,fff应该变为111,因为此时相当于一个加号。(+a)(+a)(+a)变号的影...原创 2019-11-01 18:04:41 · 274 阅读 · 0 评论 -
codeforces F - Maximum Weight Subset
好题但我不会。求树上最大权值点集,要求点集中任意两点距离大于kkk(边长为1)dp[u][dep]dp[u][dep]dp[u][dep]表示uuu为根节点的子树中,选择的点集中距离uuu的深度至少为depdepdep的最大价值。说实话,第一次见这么设置dpdpdp的,不过限定了一部分确实方便孩子结点之间处理,方便处理 ,令k=k+1k=k+1k=k+1对于选择uuu结点的情况,孩子结...原创 2019-10-23 20:51:12 · 207 阅读 · 0 评论 -
codeforces div3 1249D2 - Too Many Segments (hard version)
说实话 很套路的题。贪心思想,如果我们计算当前点被覆盖了多少次,一旦超过,一定要在之前开始覆盖的地方删去一个区间,具体删去哪一个肯定是右端点最远的。并且真正有用的覆盖点其实就是端点(其余点都可以等价到端点上),差分一下就可以O(n)O(n)O(n)计算覆盖次数,再把每个右端点带上标号放进multisetmultisetmultiset。因为这个区间结束了是要删除的,超过kkk也需要删除。并...原创 2019-10-23 20:28:37 · 142 阅读 · 0 评论 -
codeforces D. Balanced Playlist
思维题我现在非常喜欢的题(因为之前被思维题弄死了。虽然这次没想出来,看了题解才会的。其实非常简单,只需要掌握一个核心思想:假如iii最远能到jjj,那么i+1i+1i+1最远起码到jjj因为i+1i+1i+1开始的前缀最大值会更小,就更能走的更远,起码到jjj。并且,如果走的长度是有限的话,是不会超过2n2n2n的,因为第一遍刚得到最值,可能后面的最大值会让前面的不满足要求,所以再跑一...原创 2019-10-22 19:47:29 · 136 阅读 · 0 评论 -
codeforces C Balanced Removals
Easy可以发现数据是支持n2n^2n2的做法。我们可以发现,不合法的情况是两个点形成的正方体中有其他点,等价于我们需要去选取一个尽可能近的,因为不合法的时候其他点离这两个点一定更近。所以暴力查找即可。Hard对于二维的时候:如果我们仔细画一张图,可以发现,正常的排序过后选是可以解决大多数情况。但是对于:这种情况我们就会发生错误。实际上,这种错误只会发生在存在xxx相同的情况。...原创 2019-10-22 16:11:29 · 120 阅读 · 0 评论 -
Codeforces1600分训练日记
2019/5/221700\color{red}17001700 模拟\color{purple}模拟模拟题意主要是要求两种二维坐标的转换;简单的题目,就是暴力转换就可以了我们需要考虑的就是判断是哪一种形式,通过在字母后出现了字符,在字符后又一次出现了字母的方式。需要注意的是转换BBC这样的形式的时候,通过进制转换%26进行,但是需要考虑=0的时候应该是Z,而Z需要占用一个26,所以/=2...原创 2019-05-24 22:33:31 · 1410 阅读 · 0 评论 -
Codeforces Round #503 (by SIS, Div. 2) 补题
A. New Building for SIS题意:告诉我们楼的高度和数量,且这些楼的某些连续固定楼层之间是有通道的,问从最左边的到最右边的需要走多少步。a~b之间的楼层是一定有通道的。b------- --------- -------- --------a------- --------- -------- --------我们已知从左边走到右边,经过通道的距离s始终都...原创 2018-08-26 00:24:17 · 193 阅读 · 0 评论 -
Codeforces Round #582 (Div. 3)部分题解
E. Two Small Strings题意给你nnn个a、b、ca、b、ca、b、c,组成一个字符串并且给定两个长度为2的字符串,使得你得到的串没有这个子串。题解构造一组abcabcabc的全排列,重复nnn次,每种字符串最多666个子串,一旦出现相同的,就可以交换位置,如果还会出现相同的可以继续交换位置,因为只有两个这样做是绰绰有余的,不会出现交换两次之后会出现之前的子串的。#in...原创 2019-09-06 22:46:20 · 126 阅读 · 0 评论 -
Codeforces Round #576 (Div. 2)部分题解
Welfare State题意有两个修改:1、将所有小于xxx的改为xxx。2、单点修改为xxx。题解比赛的做法:维护最小最大值,最小小于xxx就向下递归,最大小于xxx直接区间修改。但是如果一小一大的数据可以卡满复杂度。赛后做法:我们可以发现,对于一个点最后的大小等于最后一次修改过后和222操作修改的比较。我们记录每个操作过后最大的222修改。最后结果:初值/替换之后:修改与...原创 2019-08-02 11:26:13 · 350 阅读 · 0 评论 -
C. Playing Piano
C. Playing Piano题解:对于原来的序列把它对应换成新的序列。新序列保证:同增 同减 相同元素处两元素不同。(原序列相同)对于新序列:递归出来选择。dp[i][j]=max(dp[i][k∈D]+1)D表示使得符合规则的数。dp[i][j]表示在i位置上放j成功走过的步数。(就是满足条件走了多少步)dp[i][j]=max(dp[i][k]+1),k是前一个满足...原创 2018-11-26 14:30:57 · 379 阅读 · 0 评论 -
D. Cutting Out
题目地址题意:一串序列s,让你从这个序列中挑出一个序列t,t的长度给定,同时保证s中有尽可能多的t。题解:只要知道重复的次数,我们就能从s中找到对应的t,并且判断t的长度是否符合要求,并且t的长度如果能大于等于给定长度K,都是能保证符合要求的。二分找到这个重复次数即可。#include<bits/stdc++.h>using namespace std;#def...原创 2018-11-25 00:19:07 · 354 阅读 · 0 评论 -
C. Multiplicity
C. Multiplicity题意:从序列b中找到子序列,该序列可以摆成a[i]%i==0的序列。题解:首先想到二维DP,从i长中找到j长的子序列的方法=dp[i][j]如果a[i]可以除以j,原式=dp[i-1][j-1]+dp[i-1][j]否则,原式=dp[i-1][j];从i递增递归得出结果,答案=dp[n][i],i∈[1,n]。由于递增过来只考虑上一层,所以直接...原创 2018-11-25 18:18:38 · 2513 阅读 · 2 评论 -
Educational Codeforces Round 51 Editorial
Educational Codeforces Round 51 EditorialA. Vasya And Password题意:枚举各种情况。#include<string>#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>...原创 2018-09-22 21:34:45 · 217 阅读 · 0 评论 -
Codeforces Round #510 (Div. 2)
Codeforces Round #510 (Div. 2)可能我太就没参加比赛了..这次比赛思路出的蛮快的,但是emmmm代码能力下降了。大概是...在洛谷刷的水题太多了TAT目前简单把自己看的题目写出来,之后继续补题。前三道题:第一、三题都是模拟,第二道我跑了个DFS,有空看一下题解的解法。这里提前讲一下第二题我是DFS写完之后没考虑第一步就完成操作的...得到所有解法都是...原创 2018-09-17 22:17:34 · 196 阅读 · 0 评论 -
Codeforces Round #502 (in memory of Leopoldo Taravilse, Div. 1 + Div. 2)总结【DIV2】
A.The Rank题目链接:http://codeforces.com/contest/1017/problem/A题意:对总成绩进行排序,得出原来第一组数据排序后的序号。注意:相同成绩原序号较小在前。#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring...原创 2018-08-20 10:43:45 · 341 阅读 · 0 评论 -
codeforce Educational div2(赛后补题)B、C、D、E
B. Minimum Ternary Stringtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a ternary string (it is a string which consists only of char...原创 2018-07-15 17:24:12 · 666 阅读 · 0 评论 -
codeforce Avito Code Challenge 2018(刷题)
截屏有点丑,但是懒得搞了,因为不想登录QQ。这道题是图论的树里面的一道题,半天看不懂题目去别人题解看了一下题意。没在比赛的时候做成功过图论或者是树的题目,因为我总是想的很复杂,这次算是自己做出来的题目。开心!题意呢是让你判断一棵树,是否能找出一个顶点,以他为根节点,衍生出来的路径能到达所有根节点,并且你可以保证每一条边都被涵盖且只在一条路径上。可以看出这棵树一定是一个爪子,我设置两个数组记录出度和...原创 2018-07-14 16:38:27 · 192 阅读 · 0 评论 -
coderforce Educational Codeforces Round 44 (Rated for Div. 2) C(赛后补题)
C. Liebig's Barrelstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou have m = n·k wooden staves. The i-th stave has length ai. You have to assem...原创 2018-06-27 21:38:29 · 650 阅读 · 0 评论