题目分类整理

几何

线段

线段与多边形

题意:求各线段与多边形的公共长度

Problem - F - Codeforces

思路:考虑向量与每条边的关系,类似扫描线求解

线段与点

题意:线段每碰到点之后会延长一段,问每个线段能碰到多少点

Problem - F - Codeforces

思路:通过线段树维护每个线段

题意:输出每段被覆盖了k次的线段

Problem - D - Codeforces

思路:类似扫描线处理,做一个前缀和

线段与线段

题意:两线段是否相交

https://codeforces.com/contest/665/problem/A

思路:取线段低端点最大以及高端点最小判断即可

题意:将若干线段放到大线段上或从上面拿走,若有多个位置符合条件,放坐标最小的

Parking Lot - 洛谷

思路:通过set去维护

圆与圆

题意:求两圆的公共面积

Problem - D - Codeforces

思路:先判断两圆的关系,然后求解

向量

向量与向量

题意:求两两向量间的最小夹角

Problem - C - Codeforces

思路:转化成角度,进行排序

题意:已知点坐标,计算平行四边形数量

Problem - D - Codeforces

思路:排序后,通过map储存向量即可

题意:在一个三角中,有若干点,找到离斜线上每个点最近的点

Problem - E - Codeforces (Unofficial mirror by Menci)

思路:考虑每个点最近的点,贪心

题意:给定2*n个点,输出所有能使其中n个点变成另外n个点的增量

2023杭电多校3 - Virtual Judge

思路:数据随机的情况下可以暴力或凸包

题意:给定n个点,询问给定矩阵内有几个点

[SHOI2007] 园丁的烦恼 - 洛谷

思路:二维数点板子,按横坐标排序后通过数据结构维护

题意:从A点推B点的箱子到C点的最小步数

https://atcoder.jp/contests/abc323/tasks/abc323_f

思路:B到C的曼哈顿距离必定有,要考虑的是是否要转弯,A到B有横纵两种策略,取最小


字符串

单串

构造

题意:修改最少数量的字符,然后可以更改字符顺序,问最小字典序的回文串是什么

Problem - C - Codeforces

思路:统计数量,由小到大修改

题意:长为n的字符串,每次可以删除s的最后一个字符,或将字符串s变成ss,问使得整个串的长度为k时的字典序最小字符串

Erase and Extend (Hard Version) - 洛谷

思路:定义已构成的最小字典序字符串为0~p-1,那么每次比较i和i%p的字符大小即可得到答案

题意:最少操作次数使得字符串相邻两位不同

Problem - C - Codeforces

思路:暴力

题意:给定一个只有三个字母组成的字符串,找到一个长度至少为其一半的回文子序列

Problem - 1178E - Codeforces (Unofficial mirror by Menci)

思路:根据鸽巢定理,每次选择四个,必有两个是重复的

题意:每个字符属于两个人中的一个,且都有一个权值,可以翻转前缀或后缀的归属,问某个人的值最大能是多少

Problem - B - Codeforces

思路:预处理前后缀求值

计数

题意:计算4的倍数的子串,可含前导零

Problem - B - Codeforces

思路:100是4的倍数,判断两位即可

题意:计算9的倍数的子序列,可含前导零

登录—专业IT笔试面试备考平台_牛客网

思路:dp[i][j]为以i结尾的余数为j的方案

题意:标记不相邻的一些位置,删除其它位置,问最后形成的字符串本质有几个不同的

F - Substrings

思路:定义dp[i][j]表示选择了前i个,结尾为j。设前一个为k,当s_i = k,等于该项,否则等于i-2项+1

题意:选择一些字符组成序列,要求对于任意i<j<k,如果s_i = s_k,那么s_i = s_j,输出方案数

E - Chain Contestant

思路:定义dp[i][j]表示选择了第i项,状态为j的方案数。从i转移到j,若相等,那么j直接加上i的方案,否则要求i的状态中j没出现过

回文

题意:计算满足左半边等于右半边,且都是回文串的子串数量

https://vjudge.csgrandeur.cn/contest/573775#problem/C

思路:manacher预处理然后暴力,或回文树+hash判断

题意:当一个字符串是k阶回文,那么它前一半是k-1阶回文,问字符串的每个前缀是几阶回文

Palindrome Degree - 洛谷

思路:定义dp[i]表示前缀i是几阶回文,递推

题意:求出k阶回文串的数量,k阶回文串,满足本身是回文,左右为k-1阶回文

Palindromic characteristics - 洛谷

思路:区间dp或者哈希暴力或者回文自动机

题意:将回文串分成k+1段后合并,要求合并后的回文串不同于原来的,输出最小k

Problem - B - Codeforces

思路:暴力判断k=1的情况

前后相等

题意:给定s和t,要求构造同等长度的p和q,使得p+s+q+t前后相等,输出方案数

登录—专业IT笔试面试备考平台_牛客网

思路:s和t的位置不影响结果,假定|s|>|t|,分类讨论,当s不会覆盖到自己,那么有|s|-|t|的位置可以随便放,否则通过Z函数判断前后缀是否相同

题意:可以将字符串的相同子串删除,问剩余的最小字符串长度是几

String Factoring - 洛谷

思路:定义dp[i][j]为将i~j的字符串缩成的最小值,通过kmp求解最小的周期

border

题意:要求对于每个前缀i,求出其前缀等于后缀且不重合的方案数

[NOI2014] 动物园 - 洛谷

思路:先kmp求出每个答案,构建树,然后在树上快速求解

题意:计算既是前缀又是后缀的字符串在整串中出现的次数

Prefixes and Suffixes - 洛谷

思路:Z函数求出哪几个符合条件,然后后缀和求解

题意:m次询问,求出给定两个前缀的最长border

【模板】失配树 - 洛谷

思路:构建失配树,求lca

题意:字符串仅包含0、6、8、9,可以将任意区间翻转180度,问有几个不同的字符串

Problem - C - Codeforces

思路:总数减去区间端点为00、88或69组合,特殊的当字符串全是6或者9的时候,不管怎么翻都和原来的不同,所以要去掉串本身

题意:给定s,问经历多少次操作使得s变空。每次操作有一个空串t,依次添加s_{i + 1}s_i到t后面,然后将s变成t

E - Duplicate

思路:当相邻两个数字都大于1的时候,操作会无限下去。第i个字符会复制前一个字符串s_i次,定义dp_i为i到n操作了几次

判断

题意:给定一个字符串,问能否由若干个中心对称串构成

登录—专业IT笔试面试备考平台_牛客网

思路:Manacher预处理,然后判断

题意:只包含A、B、C的字符串,每一秒A变成BC、B变成CA、C变成AB,问t秒后第k个位置什么

D - ABC Transform

思路:第t秒k位是什么可以从t-1秒k/2转移过来,通过递归实现

方案

题意:输出满足既是前缀又是后缀又在中间出现过的最长字符串

Password - 洛谷

思路:kmp找到前后缀的最长字符串,然后在中间找一个最大的

题意:字符串每次将首个字母移动到末尾,对所有字符串排序,输出按顺序的最后一位组成的字符串

[JSOI2007] 字符加密 - 洛谷

思路:将原串扩展一倍,用后缀数组求解

题意:给定原串s1,删除s1的一个字符得到s2,使得s2字典序最小,依次操作直到字符串为空,将所有的字符串连接,输出第p位字符

Problem - C - Codeforces (Unofficial mirror by Menci)

思路:先找到p是第几个字符串,然后删除的方式可以通过栈实现

双串

题意:计算[a, b]中满足条件的数

Problem - D - Codeforces

思路:数位dp

题意:最长公共子序列

F - LCS

思路:dp[i][j]表示第一个串前i位,第二个串前j位的最长公共子序列

题意:找k组相同的子串,长度最大

https://codeforces.com/problemset/problem/682/D

思路:dp[i][j][k]第一个串前i个第二个串前j个选k组的最大值

题意:删除第二串最短的一段子串,使得剩下的字符串是第一个字符串的子序列

Problem - C - Codeforces

思路:预处理第一串前i个能匹配第二串的最大前缀,以及后i个能匹配的最大后缀,输出方案

题意:求b和b每个后缀的lcp长度以及b与a每个后缀的lcp

【模板】扩展 KMP/exKMP(Z 函数) - 洛谷

思路:第一个是z函数,第二个是求b+a的z函数

多串

构造

题意:将所有字符串连接起来,输出字典序最小的那个

https://codeforces.com/contest/632/problem/C

思路:自定义快速排序

题意:构造字符串,使得每个串与其至多有一个不同

Spy-string - 洛谷

思路:暴力枚举每个串哪一位不同

题意:构造删除序列,按照序列删除对应的所有字符,在过程中要求每一串都不相同

H题

Dashboard - 2023 Xian Jiaotong University Programming Contest - Codeforces (Unofficial mirror by Menci)

思路:逆过程考虑,只要最后留下的那个字符数量不同,其它字符随意摆放

计算值

题意:计算串在所有串中出现次数*权值*长度

https://codeforces.com/contest/616/problem/F

思路:后缀自动机计算出现次数以及权值

题意:多次计算串在部分串出现的次数

Mike and Friends - 洛谷

思路:先构建fail树,利用树状数组维护前缀和求解

题意:刚开始集合中有k个串,有三种操作,+、-表示将编号i的字符串加入集合或从集合中删除,若已经存在或已经删除则不变,?表示询问集合中有多少个字符串作为子串在当前字符串中出现

Problem - 163E - Codeforces

思路:构建AC自动机,每次操作即插入或者删除,查询过程暴力过不了,将fail树拍平成链,通过树状数组加快计算进程

题意:有三种操作,在字符串中加入一个字符或者删除末尾一个字符或者将字符串输出到屏幕中,寻味第x个串在y个串中出现的次数

[NOI2011] 阿狸的打字机 - 洛谷

思路:构建fail树后,答案即输出y子树中所有包含x的数量,离线询问后,通过树状数组维护答案

题意:给定n个只含0、1、?的字符串,问有多少个字符串至少和其中一个匹配

登录—专业IT笔试面试备考平台_牛客网

思路:根据字符串长度分治

题意:给定n个只包含0、1、2的字符串,问有多少个合法五元组,定义合法三元组为三个字符串每位满足全相同或两两不同,定义合法五元组为包含一个以上合法三元组

Meta-set - 洛谷

思路:暴力计算三元组数量,然后求五元组数量


子树

无修改

题意:已知每个节点颜色,询问每个节点为根的子树最多的颜色是什么

Problem - E - Codeforces

思路:树上启发式合并

题意:已知每个点的颜色,m次询问,每次询问u子树内>=k的颜色有几种

Tree and Queries - 洛谷

思路:树上启发式合并

有修改

题意:已知每个节点颜色,每次修改某个子树的所有颜色或询问某个子树最多的颜色是什么

Problem - E - Codeforces

思路:颜色数量少,线段树维护信息

题意:n个点,m次操作,操作一将所有点变绿,将深度>=x的点变黄,操作二将查询x的子树有多少个黄色节点

[传智杯 #4 初赛] 小卡与落叶 - 洛谷

思路:每次询问的结果跟上次的修改有关,将树按照dfs序重构,转化为与深度还有dfs序的二维数点,数据结构维护黄色点的数量

题意:每个点有一个权值,每次可以选择一个点,将其子树异或上一个c,代价是c*siz[u],问每个点作为根的时候,使得整个树的权值相同的最小代价

Problem - D - Codeforces

思路:实现最小代价,需要将所有值都变成根节点的权值,求出1之后,可以通过换根转移到其他点

题意:已知每个点的权重,要求每一个条路径的异或和不为0,可以将一个点修改成任何一个值,问最少修改几次

XOR Tree - 洛谷

思路:从根节点做异或前缀和,可以得到关系,然后贪心修改,启发式合并

题意:每条边有一个字母,问子树内有多少条链排序后是回文串

Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths - 洛谷

思路:启发式合并,维护最大深度

题意:每个点有点权,求出树中所有直链的gcd之和

Problem - 1210C - Codeforces (Unofficial mirror by Menci)

思路:因为gcd最多只有40个,在dfs的过程中暴力传下一个map

题意:求出每条链最大值之和

D - Sum of Maximum Weights

思路:按照权重排序,从小到大每次合并连通块

整树

题意:每个点每次可以向父节点移动,除根节点外,若有多个子节点则选择一个移动到父节点,问最少多少次移动

Problem - E - Codeforces

思路:贪心计算

题意:询问经过每条边的最小生成树

Problem - E - Codeforces

思路:计算出总的最小生成树,将边也作为点连入树中,进行树剖,线段树维护信息

题意:树染黑白两色,问对于每个点染黑色,且所有黑色点为一个连通块的方案数

Subtree - 洛谷

思路:定义f[i]为染i及其子树的方案,定义g[i]为染i及以上的方案,答案就是f[i]*g[i],g[i]可由换根dp得到,需要预处理前后缀优化

题意:刚开始全是白色,每次将某个点染成黑色,问子树中既有白色也有黑色的点的数量

K题

Dashboard - 2023 Xian Jiaotong University Programming Contest - Codeforces (Unofficial mirror by Menci)

思路:离线求出每个子树全染成黑色的时间,前缀和求解


无向图

染色

题意:使得相邻两点的颜色不同且使用颜色最少的方案

Problem - F - Codeforces

思路:二分图思想,最大度即是最小的颜色数量

题意:黑白染色,使得染完后个颜色连通块数量之和最小

about:blank

思路:每连上一条边会使连通块数量减一,所以答案为点数*2 - 边数,要保证每个颜色染完后没有环才会使结果最小,先染一棵生成树,如果剩下的出现环,那么选择一条边然后重新染

判断

题意:二分图中找四元环

F - Find 4-cycle

思路:将两个图合一,当有边重复时就说明有

题意:n个点,m条带权边,q次询问,问u到v是否存在路径,路径权值按位和的值>=V

https://codeforces.com/gym/104417/problem/J

思路:枚举满足条件的值,用并查集思想维护

题意:n个点,m条公交路线,从s+0.5的时间从a出发,在t+0.5的时间到b,q次询问,在x时从y出发,问z的时候在哪里

F - Greedy Takahashi

思路:对于每个点找到可以坐的公交,通过倍增优化暴力的做法

计数

题意:d张图,每张有n个点,开始时没有边,每次将第k张图加入u-v的一条边,并询问有多少点在所有图中都连通

[ONTAK2015] Bajtocja - 洛谷

思路:将d张图的连通状态通过字符串表示,变为哈希值,通过启发式合并操作

构造

题意:构造图,n个点,边权不大于\frac{(n + 1)^2}{4},要求每个点对间最短路径长度不同

G题

Dashboard - 2023 Xian Jiaotong University Programming Contest - Codeforces (Unofficial mirror by Menci)

思路:构成一条链,值从大到小输出,结论可证明

题意:n个点,m条边,将所有点分成三组,组内点不直接相连,组间点之间相连,输出方案

Complete Tripartite - 洛谷

思路:同一组的点连的边相同,随机为点赋值,判断有几组点集

最值

题意:连通的点可以交换,问最大的字典序序列

https://codeforces.com/contest/691/problem/D

思路:暴力

题意:n个点,每条边有两个值ai和bi,记生成树的值为\frac{\sum_{i = 1}^{n - 1} a_i}{\sum_{i = 1}^{n - 1} b_i},求最小生成树

Desert King - POJ 2728 - Virtual Judge

思路:二分答案,用prim判断值,小于0则该答案可以实现

有向图

题意:判断点u能不能到达点v,对于u&v=v,有一条u指向v的有向边

Problem - 1491D - Codeforces (Unofficial mirror by Menci)

思路:位运算的本质

题意:每条边权值为0或1,从1开始dfs,可以遍历重复点,求形成的序列的逆序对

Problem - C - Codeforces (Unofficial mirror by Menci)

思路:当遍历了重复的点的时候,序列已经,定义dp[i][0/1/2]表示序列0的数量,1的数量以及逆序对的数量,通过dfs求解

题意:计算最小环及数量

2023杭电多校4 - Virtual Judge

思路:Floyd过程中计算

题意:计算从1到n两点间的两条路径并的最小值

K题

Dashboard - 2023 Xian Jiaotong University Programming Contest - Codeforces (Unofficial mirror by Menci)

思路:要实现最小,肯定是从1先到x,然后x到y有两条不同的路径,接着从y到n,由此,需要求出1到x,y到n的最短路,以及x到y的最短路和次短路,通过拓扑求解


排列

输出方案

题意:构造\sum_{i = 1}^{n}(n - i)|d_i - i + n|最小的序列,序列满足所有1 ~ n出现两次,其中d_i表示两个相同数出现的位置差

Problem - D - Codeforces

思路:根据等式性质,进行奇偶构造

题意:构造满足m个限制的排列,每个限制要求区间[l, r]中逆序对的数量为奇或偶,限制之间要么相离要么包含

登录—专业IT笔试面试备考平台_牛客网

思路:因为有包含关系,所以可以抽象为树的问题,通过递归解决

题意:选择一些位置删除,删除的下标组成的序列等于剩下的序列,输出方案

Problem - C - Codeforces (Unofficial mirror by Menci)

思路:如果是排列,间隔选,否则,必定有几个不能删除。对于第i个位置,将a_i删除,剩余的是环

题意:给定置换两次后的序列,问原序列

Problem - E - Codeforces

思路:建图,转化成环问题,结论

计数

题意:要求相邻两位间有大小关系,问总共有多少排列符合条件

Permutation - 洛谷

思路:定义dp[i][j]为前i个第i个为j的方案数,通过前缀和优化

判断

题意:若满足p_{i - 1} > p_i > p_{i + 1},可以交换i-1和i+1位元素,问能否使得排列变成有序

[ARC102F] Revenge of BBuBBBlesort! - 洛谷

思路:可证,交换当且仅当i = p_i。构造序列a_i = (i = p_i),若相邻三位为0,No,否则按照两位相同的将序列划分,对于每个区间,判断最长递减序列是不是大于2,是就No,其它都为Yes


括号序列

修改问题

题意:给定包含4种括号的括号序列,不同类型但相同方向的括号可以相互转化,问最少次数使得括号合法

Problem - C - Codeforces

思路:单调栈处理

构造

题意:以最少翻转次数使得原序列合法

Bring Balance - 洛谷

思路:0次暴力,1次找首尾第一个不符合的最大值,2次即1到最大值,最大值+1到结尾。


序列

单序列

最值

题意:任意连续m个元素中要至少选择2个,问最小代价

2023杭电多校2 - Virtual Judge

思路:dp[i][j]表示选择了i之后,前一个元素是i-j,通过前缀和优化dp

题意:n个物品,已知体积,承重和价值,问选择其中的一些进行摆放的最大价值

Tower - 洛谷

思路:根据贪心排序后01背包

题意:n个人,第i个人的速度为vi,重量为wi,每个人至多可以背起一个人,若自身重量大于背上的人,速度不变,否则减去重量差,问最大速度是多少

Problem - D - Codeforces (Unofficial mirror by Menci)

思路:二分最大速度,大于最大速度的可以背人,小于的只能被背

题意:n个石头,从i跳到j的代价是(h_i - h_j)^2 + c,求跳到n的最小代价

Frog 3 - 洛谷

思路:定义dp[i]是跳到第i个石头的最小代价,通过斜率优化求

题意:m个石头,m<=100,从i可以跳到[i + S, i + T],问跳到超过L的范围,最少经过几个石头

[NOIP2005 提高组] 过河 - 洛谷

思路:对于两个石头,中间大部分是无用的,进行压缩后暴力dp

题意:第i个值可以取出部分向左或者右移动不超过d[i],问最大值的最小是多少

Problem - G - Codeforces (Unofficial mirror by Menci)

思路:将每个值先移动到最左边,然后记录能移动到的最右边,接着二分答案,贪心计算

题意:每个点属于红/黄/蓝中的一种,给点连边,花费为坐标差值,使得去掉红色或者蓝色所有点后,剩下的点连通,输出最小代价

New Year and Rainbow Roads - 洛谷

思路:分类讨论,暴力

题意:n个数,每秒钟x会和满足x*y为完全平方数的y合成,问经过w秒的过程中,最大满足条件的数有几个

Strange Definition - 洛谷

思路:将每个数中不能合成的数处理出来,合成不了的永远合成不了,只用考虑0和1秒的状态

题意:n个数,选择长为m的区间加上首项为c,公差为d的等差数列,问序列中第k大的数最大是多少

Problem - D - Codeforces

思路:二分最大值x,判断能否通过操作使得有k个数大于x,记录每个数需要从哪一位开始>x,哪一位开始<x,通过差分求解>=x的数量

所有值

题意:n种元素,选择k个元素,输出所有方案

Problem - E - Codeforces

思路:所有值减去最小值,进行dp

单值

题意:找到序列中与当前值按位和为0的值

https://codeforc.es/problemset/problem/165/E

思路:位运算性质

题意:刚开始总和为0,每次按顺序加上序列的值,要确定一个k使得最后的值最大,只要总和到k就不会低于k

Problem - D - Codeforces

思路:预处理后缀最大值,求解

题意:q次操作,每次将第i位乘上一个x,每次输出整个序列的gcd%1e9+7的值

GCD of an Array - 洛谷

思路:欧拉筛预处理最小质因数,然后通过multiset求解

题意:将序列赋值n份,选择一个未知的k,如果对k序列操作,选择i、j,两个位置元素减1,i-1、j+2加1,对其他序列操作,选择i、j,两个位置元素减1,i-1、j+1加1,给定操作完的n个序列,求出k和对k序列的操作次数

Magical Array - 洛谷

思路:定义一个序列的值为i*ai,那么可以发现对于k序列以外的操作,值不变

输出方案

题意:输出最长子序列,其最小公倍数小于等于指定值

Problem - D - Codeforces

思路:指定值较小,暴力枚举所有因数

题意:输出最长子序列,使得两两间互质

https://codeforces.com/contest/665/problem/D

思路:分类讨论

题意:构造长为n的序列,使得其所有连续子序列中中位数出现次数最大值最小

https://vjudge.csgrandeur.cn/contest/574427#problem/D

思路:思维构造

题意:构造严格单调递增的序列,要求3a_{i + 2} \% (a_i + a_{i + 1}) != 0

https://codeforc.es/contest/1878/problem/B

思路:构造1,3,5...,使得两数和为偶数,3倍答案为奇数

题意:要求将其中一段区间替换为它们的乘积,输出一种方案使得最后序列总和最大

https://codeforces.com/contest/1872/problem/G

思路:如果乘积大于1e9,那么除了两头的1其它直接乘,否则枚举区间端点,暴力

题意:若有一段左右相同的区间,将其左半边及左边全部元素删除,从最小的开始删起,若有多个最小,先删最左的那个,输出最后的序列

Deletion of Repeats - 洛谷

思路:每个数出现次数有限,通过hash判断是否相同,然后按要求删除

题意:输出一个方案a_a + a_b = a_c + a_d

https://codeforc.es/problemset/problem/1500/A

思路:因为和的上限有限,因此暴力枚举,记录和即可

计数

题意:每个数有m种选择,问形成的序列的本质不同的子序列之和

Problem - E - Codeforces

思路:某个数出现的位置假定后,通过组合数学计算

题意:从n个数中选择k次,要求相邻的两个异或和后二进制下1的个数为3的倍数,输出方案

Xor-sequences - 洛谷

思路:定义dp[i][j]表示第i个数选择a_j的方案,可以由所有与自己符合条件的i-1转移过来,预处理两数间是否合法,通过矩阵优化dp

题意:由给定序列发散,每次可以*2+1或者*4,问不超过2^p的数有几个

Problem - 1635D - Codeforces

思路:首先数量符合斐波那契数列的增长,按照二进制的思想,进行去重然后计算

题意:计算按位或的值为0的子序列数量

https://codeforc.es/problemset/problem/449/D

思路:高维前缀和,定义g[i]为按位和之后至少为i的子序列的数量

题意:计算gcd为1的子序列的数量

Coprime Subsequences - 洛谷

思路:F(x)表示gcd为x的数量,f(x)表示gcd为x的倍数的数量,可以通过莫比乌斯反演求解

判断

题意:给定序列,刚开始只包含1,每次将一个子序列的和添加进序列中,问能否得到给定序列

Problem - G2 - Codeforces (Unofficial mirror by Menci)

思路:求前缀和判断

题意:要求构造长为n的序列使得序列元素的倒数之和为1

C - Harmonic Mean

思路:递归构造,每次取最小值拆分

题意:判断是否存在满足限制且不是原序列的子序列

Problem - C - Codeforces (Unofficial mirror by Menci)

思路:预处理每个字符后移的位置,贪心找最大

双序列

相对位置固定

题意:可以交换两序列的元素k次,计算总和差绝对值最小

Problem - D - Codeforces

思路:交换次数少,暴力枚举,二分答案计算

 题意:两个序列长度都为2*n-1,选择其中n个使得每个序列之和都大于总和一半,输出方案

Problem - 23C - Codeforces

思路:选择数量大于一半,按照其中一个排序后,选择奇或者偶

题意:每个序列选择一个子序列,每次可以让选出的序列某个值+1,记使得两个序列完全相同的操作数是k,计算k的总和

登录—专业IT笔试面试备考平台_牛客网

思路:考虑每个位置的贡献,选择第一个序列第i个,第二个序列第j个,前面的贡献是\sum_{i = 0}^{min(x, y)}\binom{x}{i}\binom{y}{i},后面同理

题意:选择k个元素,使得100 * \frac{\sum_{i = 1}^{k}a_i}{\sum_{i = 1}^{k}b_i}最大

Dropping tests - POJ 2976 - Virtual Judge

思路:二分答案,记答案为c,那么第i个元素的值变成a_i - c * b_i,只需要满足最大的k个元素和大于0即可

题意:选择若干个元素,使得\frac{\sum_{i = 1}^{k}t_i}{\sum_{i = 1}^{k}w_i}最大,要满足\sum_{i = 1}^{k}w_i > W

[USACO18OPEN] Talent Show G - 洛谷

思路:二分答案,通过01背包求解>=W的最大权值,判断其是否大于0

相对位置可变

题意:给定两个序列,可以交换某个序列两个位置的值,问差值的绝对值的和最小是多少

https://ac.nowcoder.com/acm/contest/57355/H

思路:转化为两个区间最大相交的问题

多序列

题意:n个位置,每个位置有c种选择方案,从小到大给出,限定了m个不能选的方案,问选择方案的结果最大是多少

Problem - D - Codeforces

思路:暴力枚举每个限制,对于每个限制,枚举每个位置,往前一个,求最大

题意:每个数有两个值,si、pi,当选择了i,必须选择ri,求出\frac{\sum_{i = 1}^{k} p_i}{\sum_{i = 1}^{k} s_i}的最大值

[JSOI2016] 最佳团体 - 洛谷

思路:二分答案,这样子每个点的权值已知,通过树上背包求解判断


01

题意:可以修改k个位置,问最长连续1的值和方案

Problem - C - Codeforces

思路:做前缀和,对于每个点,二分前面改变不超过k的位置

题意:长为n的串,依次将给定的m个区间的子串相连成t,一次操作可以将后面的1换到前面,q次询问,每次将指定位置翻转,问最少使得t的字典序最大

Professor Higashikata - 洛谷

思路:为使字典序最大,要求1尽可能靠前,通过dsu将原字符串重组,通过树状数组维护1的数量

题意:q次操作,将区间翻转(0->1, 1->0)或者查询区间最小删除操作,删除可以选择连续的相邻不同的子串

Problem - B - Codeforces (Unofficial mirror by Menci)

思路:最小删除操作可以归结为max(C0, C1) + 1,C0是00的数量,C1是11的数量,可以通过线段树维护,翻转也是

题意:q次操作,可以将任意区间排序,问操作后有几个不同的字符串

https://codeforc.es/problemset/problem/1849/C

思路:记录每个位置右边第一个1以及左边第一个0,区间排序操作即[nxt[l], pre[r]],当nxt[l] > pre[r]时,都记为-1即可

最值

题意:删除某个位置的花费小于交换相邻两个位置的花费,问最小花费使得序列不递减

Binary String Sorting - 洛谷

思路:枚举交换的位置

题意:给定m个区间,只要其中有一个1,就会得到相应的值,问最大值

https://www.luogu.com.cn/problem/AT_dp_w

思路:定义dp[i][j]为前i个第j个为1的最大花费,通过线段树优化


数学

求和

题意:求1到n对m取模后的和

Problem - E - Codeforces

思路:整除分块

题意:求1到n的k次方对指定模数取模后的和

Problem - F - Codeforces

思路:拉格朗日插值

题意:给定n,输出最小的有n个因数的x

https://codeforces.com/problemset/problem/27/E

思路:分解成质因数,然后暴力求解

题意:给定n,输出2~n中有多少个数的每个质因数个数的gcd等于1

Problem - 1036F - Codeforces

思路:定义f(x)表示gcd为x的数的数量,定义F(x)为gcd为x倍数的数的数量,通过莫比乌斯反演求解

题意:给定n,每次可以将n整除k,代价为b,或者变成k*n+c,代价为a,输出最小代价

Problem - E - Codeforces (Unofficial mirror by Menci)

思路:必定先除,暴力枚举除及乘的次数

题意:约瑟夫问题,第m个出局的人

https://codeforces.com/gym/101955/problem/K

思路:暴力优化

题意:给定x、y、z,找出k满足(x + y) % k = z

Problem - F - Codeforces

思路:分类讨论,x + y < z大于z的都可作为k,否则至少经过一天,判断一下即可


矩阵

计算值

题意:求解每个点周围连通块大小和

Problem - C - Codeforces

思路:记忆化搜索

 题意:计算矩阵中Z字形的子矩阵

Problem - E - Codeforces

树状数组维护斜对角

最值

题意:水平或竖直切割矩阵,使得剩余体积为定值的最小花费

Problem - E - Codeforces

思路:暴力多维dp,定义dp[i][j][k]为切割 i * j 的矩阵最终剩余 k 体积的方案的最小花费,从小到大暴力枚举即可

题意:每一个时间点在某个位置会出现一个点,问最多能碰到多少点。

The Hard Work of Paparazzi - 洛谷

思路:暴力dp

判断

题意:判断矩阵是否对称,对角元素为0,且a_{ij} \leq max(a_{ik}, a_{jk})

Problem - F - Codeforces

思路:按照值从小到大枚举,以bitset优化比较过程

题意:从起点开始,按照斜着走,问最少碰撞几次到终点

Problem - F - Codeforces (Unofficial mirror by Menci)

思路:暴力搜索4*n*m

题意:告诉每个点的下一个位置去哪,判断从一个点开始,是否可以遍历所有点

Problem - B - Codeforces

思路:从入度为0的开始bfs即可

题意:将两个矩阵覆盖,问能否得到给定矩阵

C - Ideal Sheet

思路:扩大给定矩阵,然后暴力操作

题意:问需要将几个点变成障碍才能使不能从左上角走到右下角

Treasure Island - 洛谷

思路:走两遍,向下或者向右,将走过的路标记

计数

题意:n * n的01矩阵,前m行已知,要求每行每列恰好2个1,输出方案数

Problem - 489F - Codeforces

思路:定义dp[j][k]表示剩下j列填2个1,剩下k列填1个1

题意:有n个障碍,问从左上角到右下角的方案,每次只能向下或者向右走

Grid 2 - 洛谷

思路:定义dp[i]为到达第i个障碍不经过其它障碍的方案数

方案

题意:n*n个1*1正方形组成的矩阵,每次可以将2~50个正方形合并成一个大的正方形,输出方案

登录—专业IT笔试面试备考平台_牛客网

思路:dp[i]为合并i*i的最小步数,预处理此dp,暴力递归输出方案

题意:n*m的矩阵,里面有若干个多米诺骨牌,每个骨牌有两个颜色,给出一个方案,使得每行和每列里面白色和黑色的数量相同

https://codeforc.es/contest/1863/problem/D

思路:因为相同,即颜色数量都是偶数的,按照此进行构造

题意:给定字符串A、B,要求每一行最左侧字母组成的字符串为A,每一列最上面字母组成的字符串为B,且每行每列有且仅有一个A、B、C,输出方案

https://atcoder.jp/contests/abc326/tasks/abc326_d

思路:总数有限,dfs暴力


题意:每个数有m种选择,问相邻不同的方案有几种

[ABC307E] Distinct Adjacent - 洛谷

思路:定义dp[i]表示i个数为环的方案,可由i个数成一排推导

最值

题意:每个位置有一个权值,第i个点和pi连边,要求最大环的权值和>=k,问逆序对最小是多少

登录—专业IT笔试面试备考平台_牛客网

思路:构造2,3,4...,x,1的排列,贪心求解即可

题意:每个位置有个值ai,求出值最小的环,环的值为\frac{\sum_{i = 1}^{k} a_i}{k}

[HNOI2009] 最小圈 - 洛谷

思路:二分最小值,通过SPFA判断有没有负环,有的话说明可以更小

题意:从1出发,回到1,路径上没有奇环的最小环

Problem - D - Codeforces

思路:随机化染色,通过dp求解

题意:当a_i \& a_j != 0 时,它们之间有连边,输出最小环

Problem - B - Codeforces (Unofficial mirror by Menci)

思路:当除去0之后剩余数 >120,那么肯定是3,否则floyed暴力

题意:环上有权值,按照值从小到大遍历,输出步数最小的方案

Problem - F - Codeforces

思路:值是增加的,离散化之后dp

方案

题意:n个点在环上按指定方向移动,碰到即按反方向移动,问移动t秒后每个点的位置

Problem - F - Codeforces

思路:每个点的相对位置不变,当某个点经过环的终点时,所有位置发生改变,以此来计算位置


区间

计算区间数量

题意:计算不包含指定数对的区间

Problem - C - Codeforces

思路:固定一端,判断另一端延伸的位置

题意:计算包含满足条件的区间

E - At Least One

思路:双指针

题意:给定n段区间,问每段区间包含的子区间数量

Problem - D - Codeforces

思路:排序后,树状数组维护数量

题意:计算区间左右端点异或和等于中间元素和的区间数量

https://codeforces.com/problemset/problem/1438/E

思路:暴力优化

题意:计算区间异或和大于k的区间数量

Problem - E - Codeforces

思路:字典树

题意:计算区间异或和有偶数个因数的区间数量

https://codeforc.es/problemset/problem/1731/C

思路:记录前缀暴力枚举不符合条件的数量即可

判断

题意:q次操作,将第i位改成x或者询问区间[l, r]内是否存在一个数出现次数为k的倍数

Kazaee - 洛谷

思路:区间内出现次数为k的倍数的数,其和也一定是k的倍数,但反过来不一定成立。考虑对每个值随机化赋值,然后就变成单点修改,区间查询的问题,通过树状数组可解。通过多次随机化降低错误概率。

题意:第i个数要放在编号为[l, r]的盒子内,每个盒子只能放一个,问是否可能

E - Packing Under Range Regulations

思路:考虑贪心,将数尽可能放到左侧,通过优先队列存放右端点

计算值

题意:刚开始全是1,多次修改某段区间值,询问有多少个1

https://codeforc.es/problemset/problem/915/E

思路:数据随机可用ODT,动态开点线段树也可解决

题意:n个数,m次操作,操作1输出区间和,操作2将区间所有数取模,操作3将某个点赋值

Problem - 438D - Codeforces (Unofficial mirror by Menci)

思路:每次取模会使值减小一半,由此操作2可以暴力,通过线段树维护一个最大值即可

题意:n个数,m次操作,操作1输出区间和,操作2将区间所有数开根号

上帝造题的七分钟 2 / 花神游历各国 - 洛谷

思路:根号缩放很快,暴力操作,当区间max等于1的时候结束即可

题意:可以让任意区间+或-任意值,问最少多少次使得全部为0

Interval Addition - Problem - Universal Cup Judging System

思路:做差分,发现对区间[l, r]操作后,差分数组l和r+1和值没有改变

题意:n个区间,从每个区间选一个数,使其按位和最大

https://codeforc.es/gym/104460/problem/J

思路:暴力从高位到低位枚举,然后判断答案的这一位是否可以为1,求出所有状态下的差分数组的和,定义dp[mask]表示该状态下使得全部为0的最大连通块数量

题意:求区间回文串的数量

Queries for Number of Palindromes - 洛谷

思路:dp[i][j]表示i到j有多少回文串,从dp[i + 1][j] + dp[i][j - 1] - dp[i + 1][j - 1] + ok[i][j]转移

题意:给定区间,输出区间内满足左端点值小于右端点值且异或和最大值

Problem - F - Codeforces

思路:暴力dp,确定每个点左侧的最大值,以此来更新区间最大值

题意:某段区间gcd和

F - Rectangle GCD

思路:ST表或者线段树维护

题意:给定n段带权区间,问得到一段不被覆盖且长度至少为C的区间的最小花费。

N - Land Clearing

思路:离散化之后通过前缀和求解

区间满足条件的数

题意:给定一个序列,m次询问,每个已知区间[l, r],找到 l <= i < j < k <= r,满足aj < ai = ak的数量

登录—专业IT笔试面试备考平台_牛客网

思路:用树状数组维护前i个元素中小于ai的值的数量,然后莫队求解

题意:m次询问,问区间内不同数的数量

[SDOI2009] HH的项链 - 洛谷

思路:对于区间中相同的数,只考虑最右边的,按照询问右端点排序,然后数据结构维护数量

题意:定义一个区间颜色数为区间不同颜色的数量,m次询问,问一个区间所有子区间的颜色数量

J题

Dashboard - 2023 Xian Jiaotong University Programming Contest - Codeforces (Unofficial mirror by Menci)

思路:可以莫队维护

异或和

题意:输出所有连续区间和的异或值

[TJOI2017] 异或和 - 洛谷

思路:考虑每一位的贡献,通过树状数组维护

题意:输出所有连续区间异或和的和

小Q的无敌异或 - 黑暗爆炸 4017 - Virtual Judge

思路:考虑每一位的贡献,找到前面有几个不同于当前异或和的值

输出位置

条件

题意:输出区间中不等于某个值的位置

Problem - C - Codeforces

思路:从左至右预处理第一个不等于当前值的位置

题意:包含不超过指定种类的最长合法区间

Problem - D - Codeforces

思路:双指针

题意:区间中某个数出现次数大于1的所有区间

Problem - C - Codeforces

思路:贪心

题意:输出一个区间内超过一半的最小数

[POI2014] KUR-Couriers - 洛谷

思路:主席树维护


点对

题意:给定n,计算满足i*j为平方数的数量

D - Together Square

思路:预处理质因子,对于每个i,找出和它构成平方数的最小值

题意:n个数,q次询问,问有多少点对满足两数乘积>=x

Couple Cover - 洛谷

思路:定义dp[i]表示乘积等于i的数有几个,做个前缀和求解

题意:n个数,选择两个数使其乘积为x^k

Problem - 1225D - Codeforces (Unofficial mirror by Menci)

思路:k=2的时候,将完全平方数都删除后记录求解,否则暴力选出所有平方数然后求解

题意:给定n个点,以及m条关系,问有多少对点,对于其它任意点,要么连接这两个点,要么都不连

Double Profiles - 洛谷

思路:将其他点抽象为集合,可以通过hash表示整个集合来求解

题意:给定矩阵权值,刚开始在(r, c),每次向比自己权值小的位置移动,获得两点间欧几里得距离的分数,问最后期望的分数是多少

Problem - E - Codeforces

思路:转化公式,求前缀和

题意:男女各有n人,给定两两间是否能够匹配,问匹配方案

O - Matching

思路:定义dp[i][s]表示前i个男匹配女状态为s

题意:n个人,已知任意两人间产生的贡献,将它们分组,问最大贡献

U - Grouping

思路:定义v[s]为s状态下的贡献,dp[s]为s的子集状态下的最大值

题意:每个点有一个颜色和改变颜色的花费,边有边权,每一对黑白点的贡献为路径上的边权最大值,问最多的价值

登录—专业IT笔试面试备考平台_牛客网

思路:按边权从小到大排序后,树上dp,dp[i][j]表示点i的子树内选择j个黑点的最大贡献


概率与期望

该类问题可以推导递推方程或者考虑每个状态对结果的贡献

概率

题意:投两次骰子,第一个人的骰子随机产生l1到r1的数,第二个人的随机产生l2到r2的数,问第一个人赢的概率是不是大于第二个人

Problem - A - Codeforces (Unofficial mirror by Menci)

思路:枚举后发现,概率其实就是区间相加除2

题意:长为n的两个串,随机排列,问哪个串更大

https://codeforces.com/problemset/problem/1459/A

思路:比较每一位即可

题意:n个数,每局两人同时各抽一个后放回,问前两局A选的大于B但三局的总和小于B的概率

Problem - 626D - Codeforces

思路:列出式子,发现前两局是一个情况,对二者进行dp求解,定义dp[i]表示差值为i的概率

题意:n个人,安排顺序答题,问当且仅当一个人答对的概率最大是多少

Problem - 442B - Codeforces (Unofficial mirror by Menci)

思路:列出公式,发现规律后排序求解

题意:抽k次奖,有n种奖,问最后抽到m种奖的概率。第i种奖的概率为\frac{w_i}{\sum_{i = 1}^{n}w_i}

F - Lottery

思路:定义dp[i][j][k]为前i种奖,抽了j次,有k种奖的概率。枚举每种奖抽了几个进行转移

题意:2*n张票,问最后剩下相同的票的概率

搞笑世界杯 - 洛谷

思路:dp[i][j]表示剩余i张第一种票,j张第二种票剩下的票相同的概率

题意:n个人,两两间胜负已知,问最后每个人存活的概率

Problem - 16E - Codeforces (Unofficial mirror by Menci)

思路:定义dp[s]表示剩余状态为s的概率

题意:石头,剪刀,布各有a,b,c个,随机选其中两个,问每种只剩下自己的概率是多少

Problem - 540D - Codeforces

思路:定义dp[i][j][k]表示剩下i个石头,j个剪刀,k个布的概率

题意:给定一个字符串,一个人将其逆时针旋转,另一个人知道旋转后的第一个字母,可以选择知道另一个字母,问在最优策略下能猜出来旋转几次的概率

Problem - B - Codeforces

思路:每一个字符开头要选择一个最大概率,即判断每一个长度下的概率最大值

题意:当p属于[0, a],q属于[-b, b],求x^2 - \sqrt p * x - q有实根的概率

https://codeforces.com/problemset/problem/77/B

思路:分类讨论

期望

题意:n个盘子,每个盘子里有1~3个寿司,每次选择一个盘子,有寿司就吃,问吃完的期望

J - Sushi

思路:dp[i][j][k]表示1个寿司的有i盘,2个有j盘,3个有k盘吃完的期望

题意:有三种卡,概率为a、b、c,抽到第三种就结束,抽到一个卡,概率会减去x,若小于x,则此后就无效了,减去的概率会平分给剩余的有效卡,问抽卡的期望

Need for Pink Slips - 洛谷

思路:因为状态很少,暴力搜索

题意:n个物品,每个物品有p[i]种方案,花费c[i]代价可以获得s[i][j]的分数,问获得m分的期望

[ABC314E] Roulettes - 洛谷

思路:定义dp[i]为从i分到m分的期望,考虑去掉0分,更改初始的期望

题意:随机选取l、r,若l>r,交换,问选中的区间有多少个不同的数的期望

Random Query - 洛谷

思路:每个数与前一个相同的数之后的所有数会产生1贡献

题意:n个人排队,每一秒第一个人有p的概率上电梯,1-p的概率不上,问最后电梯里有几个人的期望

https://codeforces.com/problemset/problem/518/D

思路:首先当t<=n的时候,可以公式求解,否则要定义dp[i][j]表示前i个人第j秒的期望

题意:第i个物品通过率为pi,失败则回到第一个,问全部通过的期望是多少

https://codeforces.com/problemset/problem/1265/E

思路:定义dp[i]表示从第i个物品到最后都通过的概率

题意:每个点有一条向后的路径以及若干条向前的路径,等概率向某条路径走,问最后到达n+1的期望

[Cnoi2020] 线形生物 - 洛谷

思路:E_{x -> y} = E_{x -> x + 1} + E_{x + 1 -> x + 2} + ... + E_{y - 1 -> y},推公式即可

题意:构造n个点,在部分点上设置标记,每个点有1/2概率通过,否则回到上一个标记的位置,问通过n个点的期望为k的方案

Checkpoints - 洛谷

思路:单独一个1的期望为2,1后跟着x个0的期望为2^{x + 2} - 2,由此构造方案

题意:n个点,每个点有个贡献,等概率摇到每个点,初始x为0,设摇到的是y,当x<y时,x=y并获得y这个点的贡献,否则结束,问期望的贡献是多少

E - Revenge of "The Salary of AtCoder Inc."

思路:定义dp[i]表示从i摇到结束的期望,可以从大于i的转移过来

题意:给定n,每次等概率选择一个因数,问k次后的数期望是多少

Problem - 1097D - Codeforces

思路:定义dp[i][j]表示i经过j次分解后的期望,发现期望间是独立的,改变dp[i][j]定义为一个数i次因数分解为j的期望

题意:给定n个数,第i个数的范围为[l[i], r[i]],当相邻两个数的乘积为p的倍数的时候,两个人获得1000元,1和n是相邻的,问期望获得的钱

Problem - 621C - Codeforces (Unofficial mirror by Menci)

思路:因为p为质数,当且仅当某个数为其倍数,由此求出每个数是p倍数的情况,根据概率公式计算

题意:n个有m个面的骰子,第i面有i个点,问投出的最大的点数的期望

Problem - 453A - Codeforces

思路:P(max = i) = (P(max \leq i) - P(max \leq i - 1)) * i

题意:每次操作删除一个节点及其子树,问删除整个树的期望

Problem - 280C - Codeforces

思路:每个点对于答案的贡献就是深度分之一

题意:从根节点出发,问到达每个点的dfn的期望

https://codeforces.com/problemset/problem/696/B

思路:对于两个子节点,一个大于先于另一个的概率为1/2,由此推得转移式

题意:n个点的树,刚开始全未标记,随机选一个点标记,然后在标记点的相邻点随机选一个标记,问最后形成的序列逆序对的期望

https://codeforces.com/problemset/problem/1540/B

思路:考虑每一对点的贡献,记为a<b,考虑b比a更早遍历到,从根节点开始到lca(a, b)的概率相同,后面才不同,定义dp[i][j]表示还差i步遍历到a,差j步遍历到b的概率

题意:n个社团,m个徽章,分配给每个社团一个徽章,每个人随机参与社团,问收集到所有徽章的最小期望

Problem - I - Codeforces

思路:徽章需要平均分配,只会有两种情况,定义 dp[i][j] 表示还差 i 个第一类,j 个第二类徽章的期望

题意:n个位置,第i个位置有p[i]的概率为O,1-p[i]的概率为X,连续的O会产生长度平方的贡献,问期望贡献

Problem - 235B - Codeforces

思路:定义q[i]从到i位结束都是O的期望,那么可以得到q[i] = p[i] * (q[i - 1] + 1),再考虑答案,E(i^2) = E((i - 1)^2) + E(2i + 1),递推求解

题意:贡献变成立方

OSU! - 洛谷

题意:同样递推方程

题意:某些位置固定成O或者X,其它等概率

WJMZBMR打osu! / Easy - 洛谷

思路:分类推导


博弈

题意:总共k个石子,每次取等同于序列中一个元素的石子,问先手还是后手胜

K - Stones

思路:定义dp[i]为先手能否获胜

题意:先手可以交换任意两行,后手可以交换任意两列,采取最优策略,轮流进行,问谁先让矩阵满足a_{1, 1} <...< a_{1, m} < a_{2, 1}<...

登录—专业IT笔试面试备考平台_牛客网

思路:只有几种特殊,分类讨论

 题意:一个序列,每次可以取头或者取尾,先手希望差值更大,后手相反,问最后差值是多少

L - Deque

思路:区间dp,定义dp[i][j]表示区间[i, j]的最大值


交易

最少时间获得一定物品

题意:已有一种货币,已知每天转为成另外两种货币的汇率,问最少多少天可以买到指定数量的物件(由转化的两种货币购买)

Problem - D - Codeforces

思路:答案是单调的,考虑二分答案,然后暴力枚举物件数量即可


集合

题意:n个集合刚开始都只包含一个数,n-1次合并,合并后两个集合成为一个新集合,每次带来的收益是原集合大小/新集合大小,问最后各点收益。

F - A Certain Game

思路:将合并的过程画出,可以发现是一个树,dfs求解

题意:构造长为n的序列,每个元素为一个集合,集合可包含1~k中的数,问进行排序之后使得i为i+1的子集合的方案数。A为B的子集合当且仅当,x存在A中,那么x+1存在B中

Problem - H - Codeforces (Unofficial mirror by Menci)

思路:定义f(i)表示非空集合数量<=i的方案,g(i)=f(i)-f(i-1),答案为所有g(i) * fac[n] * invfac[n - i]。f(i)可通过组合计算得到

题意:空集合,q次操作,1插入一个数,2将集合中所有数+x,3输出集合最小数并删除

https://atcoder.jp/contests/abc212/tasks/abc212_d

思路:要消除每个数前面+的数的影响,所以记录2操作的前缀和,向优先队列中插入x-前缀和即可


淘汰

题意:2^n个人,两两对决,胜者晋级,不超过\lceil \frac{1}{3}2^{n + 1} \rceil次询问,每次告诉二者谁的胜场多,要求找出谁最后获胜

Problem - D - Codeforces (Unofficial mirror by Menci)

思路:由询问次数推出,没进行两次询问就要淘汰三个,对于相邻的四个人,询问1和3的胜场大小,按照此模式分类讨论


题意:给定两种有代价的装备,第一种提供x值,第二种提供y值,每种装备买一个。给出一些怪兽,如果怪兽的xi和yi都小于选定的x和y,那么会有zi的奖励。最大化收益。

World of Darkraft: Battle for Azathoth - 洛谷

思路:对第一个数值进行排序,维护第二个数值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值