2024年8月18日
摘要: 题意 给定N个人成的环,第i个人到第i+1个人之前的距离为a[i](第N个人到第1个人的距离为a[n]),每个人只能顺时针走动。求问有多少点对(s,t)使得第s个人走到第t个人的距离是M的倍数。 思路 对于这种环状问题,我们最开始的思路就是开个双倍数组把环破坏成链转换成线性问题。接下来就是我们要思考 阅读全文
posted @ 2024-08-18 22:13 Linear_L 阅读(27) 评论(0) 推荐(0)
  2024年8月11日
摘要: 题意 给你 $ n $ 个在二位平面上的整点(即横纵坐标都为整数的点),以及一个距离阈值 $ D $,求有多少个整点 $ (x,y) $ 满足$ \sum\limits_{i=1}^n |x-x_i|+|y-y_i| \leq D $ 思路 题目显然是要要求某个点到给定的 $ n $ 个点的曼哈顿距 阅读全文
posted @ 2024-08-11 09:44 Linear_L 阅读(159) 评论(0) 推荐(0)
  2024年7月5日
摘要: 题意 https://atcoder.jp/contests/abc335/tasks/abc335_f 题解 显然想到dp,我们首先会产生一个最为朴实的想法,我们设dp[i]为以第i格作为结尾的方案数。那么考虑状态转移,有:dp[i]=∑dp[j](1≤j<i,i≡j(mod a[j]))。这样的 阅读全文
posted @ 2024-07-05 20:46 Linear_L 阅读(67) 评论(0) 推荐(0)
  2024年6月21日
摘要: 题意 给出一个长度为N的序列A,有Q次询问,每次询问输入两个整数i,k,表示将A[i]赋值为x。 每次询问输出序列A的mex。mex是指序列中未出现的最小非负整数。 思路 由于N是小于等于2e5的,那么说明每次询问的mex结果是无论如何都不会超过2e5+1的。我们先用set将1~2e5+1都存起来。 阅读全文
posted @ 2024-06-21 17:01 Linear_L 阅读(21) 评论(0) 推荐(0)
摘要: 题意 给定xoy平面上的N个点,可以进行K次操作,每一次操作可以让这N个点中的一个点横向或纵向移动一个单位。最后用一个所有边都平行于x轴或y轴的正方形将这N个点包围,请最小化这个正方形的边长。 思路 最小化最大横向或纵向长度,显然二分答案。二分最后正方形的长度,现在问题转化为如何check。我们现在 阅读全文
posted @ 2024-06-21 16:53 Linear_L 阅读(25) 评论(0) 推荐(0)
  2024年6月19日
摘要: 题意 直接看题吧https://atcoder.jp/contests/abc328/tasks/abc328_f 题解 本题主要考了带权并查集,具体实现是在路径压缩的时候顺便维护一下边权(其中w[i]表示点i距离它的祖先的边权之和,fa[i]是点i的祖先)。依次遍历每一次询问,如果询问中的a与b拥 阅读全文
posted @ 2024-06-19 18:23 Linear_L 阅读(89) 评论(0) 推荐(0)
  2024年6月15日
摘要: 题意 公司要升级一个产品的K种属性,每种的初始值为0。有N种升级计划,第i种花费c[i]的代价给编号为j=1,2,...,K的属性分别增加a[i][j],求把所有属性提升到大于等于P的最小代价 题解 显然多维费用背包,定义dp[t][i][j][k][s][r]为前t个物品,让这几种属性为i,j,k 阅读全文
posted @ 2024-06-15 18:16 Linear_L 阅读(71) 评论(0) 推荐(0)
  2024年6月13日
摘要: 题意 有T次询问,每次询问给出三个参数N,X,K,分别表示,有N个节点的二叉树,询问从X号节点出发走K条边能走到多少个不同的点。 思路 对于一颗二叉树上的点,我们可以分两种情况,一种是向上走,一种是向下走。 对于向下走,我们只需要不停的、分别的遍历当前节点的右儿子(对于二叉树就是序号乘2),直到向下 阅读全文
posted @ 2024-06-13 18:49 Linear_L 阅读(42) 评论(0) 推荐(0)
摘要: 题意 有一个箱子,每次可以向里面添加或者拿走一个数,问每次操作过后,任选箱子里的数相加,总和等于k的方案数是多少。 思路 萌新算是学到新东西了,这其实是个可撤销背包的板题。 我们先考虑一个问题: 对于普通计数类dp,我们现在禁用某一个数i,我们现在想知道某一个数j有多少种方式表示(即dp[j])。那 阅读全文
posted @ 2024-06-13 16:37 Linear_L 阅读(42) 评论(0) 推荐(0)
  2024年6月12日
摘要: 题意 在坐标轴上给定N个点,坐标依次为x1,x2,...,xn,你需要从原点前往xn并且实现往返,其中从第一个点到第N-1个点上有加油站,其中第i个加油站可以花费p[i]购买f[i]升汽油,汽油的上限为H升,每行驶一单位距离需要花费一升汽油。在全部过程中每个加油站最多使用一次,判断是否可以完成行程并 阅读全文
posted @ 2024-06-12 20:19 Linear_L 阅读(24) 评论(0) 推荐(0)