
好题
文章平均质量分 73
飞猪不会飞123
ICPC区域赛银,2年算法竞赛辅导经历。北京师范大学计算机研究生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CF365-E - Mishka and Divisors,数论+dp
题目大意:给n(n≤1000)n(n \leq 1000)n(n≤1000)个数,求用最少的数相乘得到k(≤1e12)k(\leq 1e12)k(≤1e12)的倍数.题目思路:令dp(i,j)dp(i,j)dp(i,j)代表前iii个数,累乘得到jjj的倍数的最小个数(01背包)jjj只取kkk的约数。对于第iii个数,转移为:dp(i,j)=min(dp(i−1,j),dp(i−1,jgcd(ai,j))+1)dp(i,j)=min(dp(i-1,j),dp(i-1,\frac{j}{gcd(原创 2021-09-03 00:19:09 · 160 阅读 · 0 评论 -
2020小米选拔赛(二)-A-2020-二分答案+贪心
题目链接题目大意:给你一个长度为n(n≤1e5)n(n \leq 1e5)n(n≤1e5)只含有0,20,20,2的字符串。每个数字只能用一次。让你找出最多的互相不重复的子序列202020202020.例如:8202202002题目思路:2019湘潭邀请赛有道简单版,这道复杂一点。如果四个数字互不相同。直接贪心即可。这里的问题就在于数字有重复。那么《凑满一个是一个》这种贪心会错.比如上面那个。换一种贪心思路:假设让我们找出xxx个子序列。那么可以这么做:先找出前xxx个2.再对每个原创 2021-06-01 22:35:11 · 172 阅读 · 0 评论 -
p4552-差分
第一问容易看出是max(p,n)max(p,n)max(p,n)第二问,考虑b[1]b[1]b[1]可以被我们构成多少可能的结果。让每个数变成一样的本质就是让差分数组的后n−1n-1n−1项全变成0.该过程的每一步 就是 让一个正数–,负数++.因为要保证步数最小,那么这里面至少有min(p,n)min(p,n)min(p,n)步是从[2,n][2,n][2,n]中同时拿掉一对+1-1剩下abs(p−n)abs(p-n)abs(p−n)步,有两种决策,要么和b[1]b[1]b[1]操作,要么和b.原创 2021-08-29 12:06:04 · 180 阅读 · 0 评论 -
2016CCPC网络选拔赛C-换根dp好题
题目大意:给一颗树,带点权和边权.问你每个点,得到的最大价值.(点权代表价值边权代表花费).每个点只能拿一次,边反复计算花费.题目思路:容易想出一种树形dp后换根的思路:dp(i,0/1)dp(i,0/1)dp(i,0/1)代表以iii为根的子树,最后回到/不回到i点的最大价值.dp(i,1)=∑j∈Sonimax(dp(j,1)−2∗wi,0)dp(i,1)=\sum_{j\in Son_i}max(dp(j,1)-2*w_i,0)dp(i,1)=∑j∈Sonimax(dp(j,1)−2∗w原创 2021-08-23 22:05:09 · 290 阅读 · 0 评论 -
2021上海市赛-H-二分答案
题目大意:一维坐标上有nnn个车.每个车有坐标,速度(有方向),类型.问你最早在多少秒有车发生碰撞n≤1e5n \leq 1e5n≤1e5题目思路:显然二分答案。关键在于如何check相撞?没有相撞等价于任意两对不同类型的车之间的相对位置没有发生变化.这么check显然是对的,但是显然复杂度是爆炸的.但我们只需要存一个车左边离他最近的不同类的车的下标以及右边离它最近的不同类的车的下标。二分后sort,然后O(n)O(n)O(n)的check每个车是否符合条件即可。因为一旦发生相撞,一定有车原创 2021-08-21 22:50:43 · 223 阅读 · 0 评论 -
2021蓝桥杯国赛-J异或三角形-数位dp
题目大意:t组询问,每次询问一个数n.问你有多少个三元组(a,b,c)(a,b,c)(a,b,c)满足:1.a,b,c∈[1,n]a,b,c \in [1,n]a,b,c∈[1,n]2.a⊕b⊕c=0a \oplus b \oplus c = 0a⊕b⊕c=03.a,b,ca,b,ca,b,c构成三角形思路1:sosdp第二个条件告诉我们,其实我们只需要循环前两个数,第三个数是确定的.第三个条件等价于:两个小的数相加大于第三个数.那么对此,我们容易得出(枚举两个数a,b):1.当b为a的子原创 2021-08-20 10:10:36 · 9631 阅读 · 18 评论 -
GDCPC2021 K - 线段覆盖模型2
题目大意:一维数轴上给你若干条线段,每个线段有一个值vvv,然后mmm次操作。要求支持线段插入和区间查询最大值减最小值.强制在线n,m≤1e5,数轴∈[1,3000]n,m\leq1e5,数轴\in[1,3000]n,m≤1e5,数轴∈[1,3000]题目思路:本题核心思想:区间覆盖问题转换成二维平面前缀问题一个区间[x,y][x,y][x,y]看成二维矩阵中的一个点(x,y)(x,y)(x,y).则①修改[x,y][x,y][x,y]看成单点修改②查询[x,y][x,y][x,y]即查询l≥原创 2021-08-09 10:56:37 · 277 阅读 · 0 评论 -
2021湘潭邀请赛-正式赛-I-区间划分dp,线段树优化贡献转移
类似题目:CFRound7221-E前言:本题给出了一种新的思路来用线段树优化dp,即用线段树优化花费函数转移.题目大意:给你一个nnn序列。让你将其划分成kkk段。每一段的贡献为:该段不同数字个数,问最小化贡献和。n≤1e5,k≤10n \leq 1e5 , k \leq 10n≤1e5,k≤10题目思路:暴力dp.dp(i,j)dp(i,j)dp(i,j)代表前iii个数分成jjj个段的最小贡献和。有O(n2k)O(n^2k)O(n2k)的做法。dp(i,j)=min{dp(k,j−1原创 2021-06-23 22:01:43 · 385 阅读 · 2 评论 -
2021四川省赛J-Ant-思维+队列
题目大意:一维数轴[1,1e9][1,1e9][1,1e9]上有nnn个蚂蚁,每个蚂蚁有一个初始方向(左右).然后开始以1的速度运动.两蚂蚁碰撞后反向.在数轴两端有两个石头,每个石头分别有a,ba,ba,b的耐性(指被撞多少次后碎掉).蚂蚁撞上石头后也反向。问所有蚂蚁全部掉落的时间.n≤1e5,a,b≤1e9n \leq 1e5 , a , b \leq 1e9n≤1e5,a,b≤1e9.题目思路:1.每隔2L2L2L,每个蚂蚁会回到自己的原位置且方向不变.所以我们可以直接模拟最后一轮的情况.2.原创 2021-06-17 10:58:20 · 421 阅读 · 1 评论 -
2021蓝桥杯省赛J:括号序列-思维+动态规划
题目链接题目大意:给你一个括号序。让你添加最少的括号使得它合法,输出多少种本质不同的结果.例如:(() -> ()() , (())n≤5e3n \leq 5e3n≤5e3题目思路(from y总):有几个性质需要发现:1.最开始我们可以知道要加多少个左括号,要加多少个右括号.2.左括号和右括号的插入是独立的,可以直接方案相乘起来.解释:如果左右括号不位于同一个间隙,显然方案相乘.而就算有若干个左右括号在同一个间隙中,也一定是))..))((..(())..))((..(())..)原创 2021-06-10 09:35:06 · 5793 阅读 · 2 评论 -
洛谷P2824-排序-线段树分裂合并+set / 二分答案+线段树
题目大意:给你一个长度为nnn的排列。然后给mmm次操作。每次对一个区间升序排序/降序排序。问最后第p个位置是多少?方法一:二分答案+线段树(思维)核心:对数字排序太慢了。但是对01串排序却可以高效的使用线段树来实现那么我们可以二分答案,令答案在[mid,n][mid,n][mid,n]区间里。将值域在该区间里的数变为1,其他变为0。那么线段树模拟一遍,然后checkcheckcheck一下位置p是否为1.这么二分即可。复杂度:O(mlognlogn)O(mlognlogn)O(mlognlogn原创 2021-06-09 20:44:38 · 718 阅读 · 0 评论