ACM——Codeforces
文章平均质量分 68
a
一只酷酷光儿( CoolGuang)
桃李不言 下自成蹊
展开
-
Codeforces刷题记录(知识点、链接、索引)不定时更新
题号 题目 知识点 题目链接 1312E Array Shrinking 区间dp https://codeforces.ml/contest/1312/problem/E 1369E DeadLee 思维、贪心 https://codeforces.ml/contest/1369/problem/E 1367F2 Flying Sort(Hard Version) 思维、dp https://codeforces.ml/.原创 2020-06-27 00:17:10 · 2366 阅读 · 4 评论 -
【智算之道】2020总决赛 A Vivid Theory | AC自动机
用暴力哈希过了90,最后一直在写AC自动机.. 写出锅了 ,最后发现原来是这么sb(初始化错误)的错误...首先根据题意即可得答案:只要知道T串在S串中的起始位置,就可以知道(x,y)的答案具体关系为:void work(int t,int len,int slen){///终止位置,T串长度,S串长度 if(t>slen){ int y = (t-len+1)>slen?(t-len+1)-slen:(t-len+1); prin...原创 2020-09-06 12:32:37 · 314 阅读 · 0 评论 -
【Nowcoder】 [TJOJ2013] 单词 | AC自动机、fail树上dp
链接:https://ac.nowcoder.com/acm/problem/20443来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。输入描...原创 2020-03-15 21:16:49 · 247 阅读 · 0 评论 -
【HDU 5880】 Family View | AC自动机、敏感词屏蔽
题目大意:给出几个敏感词汇s_i,一个字符串t需要将t字符串中所有的敏感词汇以*的形式输出题目思路:AC自动机板子题..题目比较典型,博客存储一下。不懂评论里可以交流Code:/*** keep hungry and calm CoolGuang!***/#pragma GCC optimize(2)//#include <bits/stdc++.h>#include<stdio.h>#include<string.h>#inc原创 2020-07-24 03:18:15 · 195 阅读 · 0 评论 -
【Codeforces 1093E】Intersection of Permutations | 树状数组套权值线段树、动态开点、内存回收
题目大意:给定整数nnn和两个1,⋯ ,n1,\cdots ,n1,⋯,n的排列a,ba,ba,bmmm个操作,操作有两种:1 la ra lb rb1\ l_a\ r_a\ l_b \ r_b1 la ra lb rb,设aaa的[la:ra][l_a:r_a][la:ra]区间内元素集合为SaS_aSa,设bbb的[lb:rb][l_b:r_b][lb:rb]区间内元素集合为SbS_bSb,求∣S原创 2021-05-12 18:42:59 · 344 阅读 · 1 评论 -
【Codeforces 1093F】Vasya and Array | 思维、dp、容斥
题目大意:给出一段序列,序列中有−1-1−1和x(1≤x≤m)x(1 \le x \le m)x(1≤x≤m),−1-1−1可以替换为[1,m][1,m][1,m]中任何一个数。认定一个序列是好的,当且仅当序列中所有连续相同数的长度都小于lenlenlen询问有多少种方案使得该序列是好的。题目思路:emmmemmmemmm,这个dpdpdp确实有点难想,主要是没做过这种,总结一下。定义dp[i][j]dp[i][j]dp[i][j]代表前iii个数合法最后一个数是jjj的方案数。sp[i]原创 2021-05-12 18:31:15 · 138 阅读 · 1 评论 -
【Codeforces 1093G】Multidimensional Queries | 线段树、曼哈顿距离
题目大意:给出一个nnn个kkk元组(k≤5)(k \le 5)(k≤5),支持两种操作:1 i (b1,b2,b3,⋯bk)1\ i \ (b_1,b_2,b_3,\cdots b_k)1 i (b1,b2,b3,⋯bk),将第iii个kkk元组置换为当前kkk元组2 l r2 \ l \ r2 l r ,询问[l,r][l,r][l,r]区间内两两之间最大的曼哈顿距离题目思路:转换为kkk维空间问题。原创 2021-05-10 16:25:14 · 237 阅读 · 0 评论 -
【Codeforces 1511G】Chips on a Board | 倍增、思维
题目大意:给出NNN个数,每次询问值域区间在x⊂[l,r]x \sub [l,r]x⊂[l,r]内的所有数x−lx-lx−l的异或和简化下题意:求 ∑⨁(x−l),[l≤x≤r]\sum\bigoplus (x-l),[l\leq x\leq r]∑⨁(x−l),[l≤x≤r]题目思路:本身没思路的…看了看题解那个O(NNlogN)O(N\sqrt{NlogN})O(NNlogN)的解法更不想做了…结果thinkthinkthink了一个O(mlogm)O(mlogm)O(mlogm)的考虑原创 2021-04-21 20:12:57 · 313 阅读 · 0 评论 -
【Codeforces 950D】A Leapfrog in the Array | 思维、思维、思维!!
题目大意:最初的数组长度位2 \times n,包含,包含,包含[1,n]这这这n$个数字,第i个数字在第2×i−12 \times i-12×i−1的位置上。每次将最后一个非空的位置,移到最后一个空位置上。当所有位置全部在[1,n][1,n][1,n]时,停止给出mmm次询问,每次询问,算法停止后第xxx位置的数字是哪个数字:不懂就看图题目思路:卡的心态裂开…思维题能不能做出来啊…考虑最终状态逆向推到出最初的状态,假设xxx的位置pospospos是奇数,那么这个奇数就不会动了,因为移原创 2021-04-15 21:20:57 · 228 阅读 · 0 评论 -
【Codeforces 1281C】Cut and Paste | 思维
题目大意:给一个串sss(下标从111到nnn),和一个变量ititit,初始为000.要你执行xxx次操作,求最后的串长度对109+710^9+7109+7取模的结果.操作如下:将it+1it+1it+1将剪贴板的内容替换为[it,n][it,n][it,n](nnn是当前的串的长度),并在原串中删除[it,n][it,n][it,n]在串的末尾把剪贴板内容粘贴sits_{it}sit 次题目思路:靠。。。写的不能再傻逼了。靠。。。我做法也太傻逼了。看下正解:考虑只会执行xxx次原创 2021-04-15 15:57:58 · 166 阅读 · 0 评论 -
【Codeforces 1277E】Two Fairs | 思维、图
题目大意:给出一个m条边的无向连通图,给出两个特殊点a,b,询问有多少对(u,v)满足:u≠vu \neq vu=vu≠a,v≠bu \neq a,v \neq bu=a,v=b任意一条u→vu \rightarrow vu→v的路径都必须经过aaa和bbb两个点题目思路:昨天看到的题忘记写了。今天想了会儿,这题不是巨水,为什么比赛没怎么有人过呢。其实这个题的答案就在于画出第一个样例的图:从图上看出,2→62 \rightarrow 62→6显然只能经过353 535,原创 2021-04-15 11:55:01 · 155 阅读 · 0 评论 -
【Codeforces 1277F】Beautiful Rectangle | 思维、构造
题目大意:给出NNN个数,需要从NNN个数中选出若干数组成一个矩阵,要求该矩阵每行每列都不能有相同的数字,问能够选出矩阵的最大面积是多少?题目思路:哇哇哇,我又把构造写出来了…又一人间奇迹考虑最后的矩阵是R×CR \times CR×C的形式,不妨设C≤RC \le RC≤R。接下来枚举CCC,那么就不可以出现 出现次数 大于CCC的数字,也就是说,当确定CCC时,所有数字的贡献是:min(C,c[i])min(C,c[i])min(C,c[i]),c[i]c[i]c[i]代表第iii种数字出现原创 2021-04-14 16:52:05 · 192 阅读 · 0 评论 -
【Codeforces 1493C】K-beautiful Strings | 思维、构造
题目大意:给出一个字符串SSS,给出字符串的长度nnn,和mmm输出一个字典序最小的字符串TTT,满足T≥ST \ge ST≥S ,并且T中每个字符出现的倍数都是nnn的倍数题目思路:这构造我竟然写出来了…(感觉没有2000分)人间奇迹考虑最终状态的经典题,字典序T≥ST \ge ST≥S,那么必然存在一个相同的前缀,长度为kkk,满足S[k+1]>T[k+1]S[k+1] \gt T[k+1]S[k+1]>T[k+1]。那就只需要枚举在哪断开即可,贪心的考虑,那么必然从后向前枚举原创 2021-04-13 10:24:35 · 192 阅读 · 0 评论 -
【Codeforces 1288D】Minimax Problem | 状压、二分
题目大意:给出NNN个长度为mmm的数组(m<8)(m<8)(m<8),要求你任意选两个数组a,ba,ba,b,构造一个新数组:ci=max(a[i],b[i])c_i = {max(a[i],b[i])}ci=max(a[i],b[i]),问ccc数组最大的最小值是多少?题目思路:昨天群巨扔来的题,thinkthinkthink了一晚上,今早上发现自己SBSBSB了。可以得到最小值最大化绝对是二分,所以题目就转换成了怎么checkcheckcheck。二分当前的最小值是x,那原创 2021-04-12 09:55:57 · 267 阅读 · 0 评论 -
【Codeforces 983B】XOR-pyramid | 思维、dp
太菜了太菜了,日常被1800吊锤题目大意:给出f(b)f(b)f(b)的递归定义:然后进行QQQ次询问,每次询问区间[l,r][l,r][l,r]内,所有子区间[x,y][x,y][x,y]的f(a[x:y])f(a[x:y])f(a[x:y])的最大值题目思路:以为很简单的题…(确实简单)被卡了,主要原因是忽略了题目给出的定义。第一眼看到这个题可能没什么思路,但仔细理一下题目的定义会发现:x1⊕x2⊕x3⊕x4⊕x5x_1⊕ x_2⊕ x_3⊕ x_4 .原创 2021-04-08 18:40:28 · 136 阅读 · 0 评论 -
【Codeforces 713D】 Animals and Puzzle | 二维RMQ、dp
序: 不可消沉了,没什么大不了的题目大意:询问一个子矩阵内,最大的全111正方形的边长题目思路:首先考虑最大可行性问题,将题目转换成为二分。令u[i][j]u[i][j]u[i][j]代表以(i,j)(i,j)(i,j)为右下角的最长全111正方形的边长如果一个子矩阵(x1,y1,x2,y2)(x_1,y_1,x_2,y_2)(x1,y1,x2,y2)内存在边长为l的正方形那么必满足:Max{u[i][k] ∣ x1−l+1≤i≤x2&y1−l+1≤k≤.原创 2021-04-08 15:49:35 · 191 阅读 · 0 评论 -
【Codeforces 432D】Prefixes and Suffixes | exkmp、差分
题目大意:给出一个字符串SSS,求出该字符串有多少个前缀 = 后缀,并且输出这个前缀在字符串SSS中出现的次数。题目思路:首先判断一个前缀和后缀是否相同,直接用哈希判断就好了所以题目转换成了字符串的前缀在字符串中出现的次数这里就需要z−boxz-boxz−box中的zzz函数了z[i]z[i]z[i]代表S[i:i+z[i]−1]]=S[1:z[i]]S[i:i+z[i]-1]] = S[1:z[i]]S[i:i+z[i]−1]]=S[1:z[i]]这样就知道每一个前缀在字符串中作为后缀出现的原创 2021-03-23 20:28:32 · 166 阅读 · 0 评论 -
【Codeforces 1497E2】Square-free division (hard version) | 双指针、思维、dp
题目大意:给出一段序列aia_iai,你要将序列进行划分,使得每一段内没有两个数的乘积是平方数,输出最小的划分段数。题目思路:先看hard versionhard\ versionhard version,过了之后easyeasyeasy就交了对于最小划分段数往往都是dp,dp[i]dp,dp[i]dp,dp[i]代表以i结尾划分段数全部合法,最少划分多少段。那么自然有,如果区间[k,j][k,j][k,j]合法,那么必然有:dp[j]=max(dp[k]+1,dp[j])原创 2021-03-18 14:33:42 · 215 阅读 · 0 评论 -
【Codeforces 1500D】Genius | dp、思维
题目大意:定义每个位置有困难程度 ci=2ic_i = 2^ici=2i当你在解决完第iii个problemproblemproblem后,可以解决第jjj个problemproblemproblem,当且仅当IQ<∣ci−ci∣IQ < |c_i - c_i|IQ<∣ci−ci∣,解决完j后,你会获得∣si−sj∣|s_i - s_j|∣si−sj∣的分值,同时IQIQIQ变为 ∣ci−ci∣|c_i - c_i|∣ci−ci∣,询问能获得的最大分值。Note:Not原创 2021-03-18 10:24:04 · 218 阅读 · 2 评论 -
【Codeforces 1100F】Ivan and Burgers | 持久化线性基、扫描线
题目大意:询问区间[L,R][L,R][L,R]内子集异或第kkk大题目思路:强制在线也可…但是没有强制在线,直接离线+扫描线就行了考虑将线性基可持久化,对于一个新来的数xxx,在插入线性基时,可能会发生这些替换使得最后x变为:y=x⊕x1⊕x2⊕x3⊕x4⊕x5y = x⊕x_1⊕x_2⊕x_3⊕x_4⊕x_5y=x⊕x1⊕x2⊕x3⊕x4⊕x5那么考虑当x⊕x1x⊕x_1x⊕x1时,也就说此时xxx是可以将x1x_1x1在线性基中主元的位置替换掉,所以看一下xxx的位置是不是原创 2021-03-17 20:52:26 · 378 阅读 · 0 评论 -
【Codeforces 1334C】Circle of Monsters | 思维、枚举
题目大意:有nnn个怪物,第iii个怪物有aia_iai生命值,你可以每次对一个怪物造成111点伤害,当第iii个怪物死去后,会对i+1i+1i+1个怪物产生bib_ibi伤害(如果i=n,i+1=1i = n,i+1 = 1i=n,i+1=1),询问最少需要攻击多少次使得所有怪物全部死亡?题目思路:去年5月份做过的题目,我却看不懂自己之前怎么写的了…然后就有了一个和去年5月完全不一致的写法,可能是因为自己变弱了。首先考虑因为是一个环,所以一旦引爆一个后,后面肯定会发生连锁反应。所以,有原创 2021-03-17 16:57:47 · 316 阅读 · 0 评论 -
【Codeforces 1100E】Andrew and Taxi | 二分、拓扑排序
题目大意:给出一个nnn个点,mmm条边的带权有向图,你可以对其中一些边的方向进行翻转,现在希望通过翻转一些边使得这个图变为有向无环图(DAG)(DAG)(DAG),询问可能的翻转边集中最大值的最小值是多少?题目思路:写持久化线性基前,写个水题热身。最大值最小化? —— 二分当然也不一定全部都可以二分,我们需要知道二分是否满足单调性:二分单调性的证明:假设二分当前边权最大值是xxx,那么边权大于xxx的边是不可以改变的,所以判断权值大于xxx的边是否可以组成一个有向无环图。①①①如果不是有原创 2021-03-17 13:28:35 · 114 阅读 · 0 评论 -
【Codeforces 1447F2】Frequency Problem (Hard Version) | 思维、分块、双指针
题目链接:https://codeforces.ml/contest/1447/problem/F2题目大意:给出一段序列NNN,询问最长的众数不唯一子区间题目思路:之前牛客碰到过一个关于众数的题,所以easy versioneasy\ versioneasy version很容易就秒掉了一个性质:最长众数不唯一子区间内必定包含区间众数proofproofproof:任何一个众数不唯一的子区间都是一段序列去掉首一部分和尾一部分组成的。假设最长众数不唯一不包含.原创 2021-03-11 16:57:03 · 201 阅读 · 0 评论 -
【Codeforces 1447E】Xor Tree | 01字典树、分治
题目链接:https://codeforces.ml/contest/1447/problem/E题目大意:给出一段序列NNN,aia_iai会向aja_jaj连接一条边,当且仅当aja_jaj与aia_iai异或的值最小,求出最少删除多少个数使得得到图是一棵树。Note:i−j,j−iNote:i-j,j-iNote:i−j,j−i看成一条边题目思路:这题来源于1447D最后的目标是:使得只有一对点,满足iii连接jjj,并且jjj连接iii。那么画出字典树观察,满足相互连接的点.原创 2021-03-11 14:13:10 · 204 阅读 · 2 评论 -
【Codeforces 1447D】Catching Cheaters | 字符串dp
题目链接:https://codeforces.com/contest/1447/problem/D题目大意:给出两个字符串s,ts,ts,t,在两个字符串中分别选取两个子串。定义LCS(s,t)LCS(s,t)LCS(s,t)为sss与ttt的最长公共子序列.定义f(s,t)=4∗∣LCS(s,t)∣−∣s∣−∣t∣f(s,t) = 4*|LCS(s,t)| - |s| - |t|f(s,t)=4∗∣LCS(s,t)∣−∣s∣−∣t∣求选取两个子串的f(s,t)f(s,t)f(s,t)的最大.原创 2021-03-10 11:48:17 · 121 阅读 · 1 评论 -
【Codeforces 220B】 Little Elephant and Array | 扫描线、树状数组
感谢宇巨抛过来的题题目大意:给出一个长度为n的序列,进行m次询问。每次询问区间[l,r][l,r][l,r]内,有多少个数字xxx刚好出现了xxx次。题目思路:类比维护区间内出现了多少种数字用扫描线+树状数组的去考虑枚举右端点rrr,维护左端点lll,设法将sum(l,r)sum(l,r)sum(l,r)表示为区间内的合法数字个数所以以区间[2,2,2,2][2,2,2,2][2,2,2,2]为例:1.r=1r = 1r=1,左端点的贡献分别为:[0,0,0,0][0,0,0,0][.原创 2021-03-04 14:45:26 · 311 阅读 · 4 评论 -
【Codeforces 1157F】 Maximum Balanced Circle | 思维、dp、二分
题目大意:给出一个序列aia_iai,序列中选出若干个数使它们满足下面条件:按一定规则排序成为一个环后,任意相邻两项绝对值相差≤1\le 1≤1输出最多能选择多少个数,并将这些数按照合法的规则排列。题目思路:过的人为何这么少呢?拿到这个题首先考虑最简单的终状态,即存在一种山峰序列,使得第一个数和最后一个数差值≤1\le 1≤1。山峰序列:[1,2,3,2,1],[1,2,3,2][1,2,3,2,1],[1,2,3,2][1,2,3,2,1],[1,2,3,2] 这两种都可以称为山峰序列原创 2021-03-04 12:01:15 · 184 阅读 · 1 评论 -
【Codeforces 1418G】Three Occurrences | 思维、线段树维护最小值
写完了,看了下别人的题解,思路可能不是很一样.写写我对这个题的理解吧题目大意:定义一个区间是GoodGoodGood,区间内出现的所有数都只出现了三次。给出一段序列,求出有多少个GoodGoodGood区间题目思路:其实官方题解的思路我觉得蛮秀的,就是我没看懂为何可以hash。那么就自己想了个做法,想了近5个小时。看到区间类的题目,有一种普遍的思路:枚举右端点,计算左端点的贡献所以我们考虑枚举右端点,即以iii结尾的合法区间数量。考虑如何去维护这个区间合法性呢?这么考虑:定义一.原创 2021-03-03 19:43:44 · 151 阅读 · 1 评论 -
【Codeforces 785E】Anton and Permutation | 动态逆序对、树套树
最近状态直线下滑…补补补题目大意:给出MMM次交换位置的操作,输出每次操作后逆序对的数量题目思路:考虑如果交换位置[x,y][x,y][x,y]对逆序对的影响:a[x]<a[y]a[x] \lt a[y]a[x]<a[y],那么交换后逆序对数量+1a[x]>a[y]a[x] \gt a[y]a[x]>a[y],那么交换后逆序对数量-1假设区间[x,y][x,y][x,y]内,大于a[x]a[x]a[x]有bbb个,小于a[x]a[x]a[x]有ccc个,那么交换后.原创 2021-03-03 09:14:08 · 191 阅读 · 3 评论 -
【Codeforces 1490G】Old Floppy Drive | 二分、思维
题目大意:给出一个SSS序列,SSS序列可以按照:S1,S2,S3.....Sn...S1,S2.....S_1,S_2,S_3.....S_n...S_1,S_2.....S1,S2,S3.....Sn...S1,S2..... 无限循环排列进行mmm次询问每次询问xxx,输出从1开始每次向右移动一次,权值和大于等于xxx的最小步数。题目思路:打比赛时思路绕晕了…今天重新理了一下思路:首先假设x=sum[n]x = sum[n]x=sum[n],y=sum[k],ky = su原创 2021-02-22 02:04:10 · 205 阅读 · 5 评论 -
【Codeforces】Codeforces Round #590 (Div. 3) | 全题解
恢复性训练 ,恢复性训练A. Equalize Prices Again题目大意:…找到一个平均值使得总和大于之前的总和题目思路:水题直接上取整就可以了B2. Social Network (hard version)题目大意:大致是维护一个双端队列的操作题目思路:借助STLSTLSTL库里的dequedequedeque函数就可以了,但其实dequedequedeque调用肯定比手写慢很多,这里只是速度起见。Code:/*** keep hungry and calm CoolGu原创 2021-02-16 20:21:36 · 175 阅读 · 0 评论 -
【Codeforces 1234E】Special Permutations | 主席树、差分、思维
题目大意:pi(n)p_i(n)pi(n)代表n的第几个在特定规则下的全排列,具体排列规则如下:p1(4)=[1,2,3,4];p_1(4)=[1,2,3,4];p1(4)=[1,2,3,4];p2(4)=[2,1,3,4];p_2(4)=[2,1,3,4];p2(4)=[2,1,3,4];p3(4)=[3,1,2,4];p_3(4)=[3,1,2,4];p3(4)=[3,1,2,4];p4(4)=[4,1,2,3].p_4(4)=[4,1,2,3].p4(4)=[4,1,2,3].令原创 2021-02-16 19:30:25 · 116 阅读 · 0 评论 -
【Codeforces 444C】DZY Loves Colors | 线段树、均摊复杂度
题目链接题目大意:给出一个序列NNN,初始序列中第iii个数是iii即ai=ia_i = iai=i维护下面两种操作:1 l r x1 \ l \ r \ x1 l r x,讲区间[l,r][l,r][l,r]内都赋值为xxx,并将区间内的每个数的权值增加∣x−ai∣|x-a_i|∣x−ai∣2 l r2 \ l \ r2 l r,询问区间[l,r][l,r][l,r]所有数的权值总和。题原创 2021-02-01 00:51:46 · 297 阅读 · 0 评论 -
【Codeforces 103D】Time to Raid Cowavans | 分块、离线处理
题目链接题目大意:给出一个序列aaa,进行QQQ次询问,每次询问x,kx,kx,k:求出:∑c=0c∗k+x<=nax+c∗k\sum_{c=0}^{c*k+x<=n}{a_{x+c*k}}∑c=0c∗k+x<=nax+c∗k题目思路:显然不太好维护这个东西。但是可以考虑分块暴力一下,由于对于一个位置而言:假设k>sqrt(n)k \gt sqrt(n)k>sqrt(n),那么直接暴力即可,此时复杂度就是(n/k)≤sqrt(n)(n/k) \le sqrt原创 2021-01-26 22:17:22 · 168 阅读 · 0 评论 -
【Codeforces 1475】Codeforces Round #697 (Div. 3) | 全题解
:比赛连接emm,消极了,消极了。这场可以akakak的,看到unrunrunr不想打了,奇怪了,本身我也不加分的呀。赛后333分钟过GGG,101010分钟过FFF,不该消极的。不传播负能量了,开始题解了。A.Odd Divisor题目大意:判断一个整数nnn,是否具有为奇数的因子题目思路:水题了吧.只需要判断是否是2的幂即可,不是2的幂必定有奇数因子呀。Code:/*** keep hungry and calm CoolGuang! ***/#pragma GCC optim原创 2021-01-26 02:03:14 · 2740 阅读 · 12 评论 -
【Codeforces 455D】Serega and Fun | 分块、双端队列
题目链接:问题连接题目大意:给出一个长度为NNN的序列,对这个序列进行下面两种操作:1,l,r:1 ,l,r:1,l,r:将区间[l,r][l,r][l,r]内循环移动一位2,l,r,k:2,l,r,k:2,l,r,k:询问区间[l,r]内[l,r]内[l,r]内有多少个数字kkk,强制在线。题目思路:考虑分块就好了,将序列分成sqrt(n)sqrt(n)sqrt(n)块,每一块维护一个双向队列。对于一个区间的修改操作:在中间的块就可以直接通过O1O1O1的操作完成,两边的块特判一下就好了原创 2021-01-25 02:11:33 · 322 阅读 · 0 评论 -
【Codeforces 1474D】Cleaning | 思维、枚举
题目大意:给出一段序列aia_iai,每次可以选择相邻的两个都不为000的ai与ai+1a_i 与 a_{i+1}ai与ai+1,令其都−1-1−1,(这个操作可使用无限次)。在操作之前,你可以使用一次特权:交换相邻的两个数的位置(只能使用一次)。问是否可以将序列全部变为000.题目思路:首先考虑a1a_1a1一定是要被消除的,并且只能被a2a_2a2消除,那么就构成了下面的消除次数:a1,a2−a1,a3−a2+a1,a4−a3+a2−a1,a5−a4+a3−a2+a1……a_1,a_2原创 2021-01-20 00:57:52 · 1550 阅读 · 5 评论 -
【Codeforces 1474C】Array Destruction | 思维
题目大意:给出一个长度为nnn的序列aia_iai,首先确定一个上届xxx,然后找到数组中ai+aj=xa_i + a_j = xai+aj=x的{i,j}\{i,j\}{i,j}删除,然后x=max(ai,aj)x = max(a_i,a_j)x=max(ai,aj)。问最后是否能得到一组可行方案?题目思路:首先第一个是可以确定的就是,x=mx+yx = mx +yx=mx+y,mxmxmx是当前数组剩余的最大值,yyy是数组中随便一个数。那么确定第一个xxx,以后其实就很容易推出下面的原创 2021-01-20 00:39:09 · 1343 阅读 · 1 评论 -
【Codeforces gym102890M】Mathematics society problem | 贪心
题目链接:原题连接题目大意:给出一个数字串,由1−91-91−9组成,之后给出对于每个数字1≤i≤91\le i \le 91≤i≤9要删除的个数,问删除之后,能组成的最大的数是多少?题目思路:之前在其他ojojoj做过一道类似的原题,原题是:给出一个数字串,删除mmm个数字之后,使得剩下的数字组成的数最大这样看这道题的话,只需要考虑决策性就可以了。假设一个位置iii,是可以删除的,它必然满足si<si+1s_i < s_{i+1}si<si+1,这样sis_isi删原创 2021-01-18 23:59:22 · 440 阅读 · 1 评论 -
【Codeforces 1473E】Minimum Path | 分层最短路
一个观察式子,得出结论的题题目大意:你需要求出,从111~iii,2≤i≤n{2\le i \le n}2≤i≤n的这个权值为:路径总和-路径边权最大值+路径边权最小值 的 最短路题目思路:看到从111到各个点的最短路,那么必然考虑最短路问题。但是这个问题不太好维护,因为无法同时既维护最大值,又维护最小值。所以转换一下,把题目要求的式子,理解为:在一条路径上使得一条边的权值消失,还有一条边的权值*222。因为要求最小,那么必然是最大边权消失,最小边权*222。所以刚好符合题目要求的条件。所以就原创 2021-01-15 01:01:17 · 532 阅读 · 0 评论