2024年8月24日
摘要: 题意 有N堆石头,第i堆的石头的个数为a[i],Alice和Bob轮流拿取石头,每次拿取某一堆石头后(记拿之前这堆石头的个数为a[i])可以将该堆石头的个数更改为除了a[i]以为的a[i]的因数。不能操作者输,双方采取最优决策,求问谁会赢 思路 这题没啥好说的,sg打表之后,按照尼姆游戏全部sg值异 阅读全文
posted @ 2024-08-24 23:23 Linear_L 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 题意 给你一颗由N个点组成的树,指定K个节点,求包含这K个节点的最小子树的大小 思路 考虑正难则反,我们从开始的树当中剪掉那些没有任何指定点的子树,剩下来的子树就是最小的、能包含所有指定节点的子树。关于剪去这个操作,就是dfs一旦遇到以当前节点为根的子树没有任何指定点时,就停止dfs,并把该子树的大 阅读全文
posted @ 2024-08-24 23:16 Linear_L 阅读(16) 评论(0) 推荐(0) 编辑
  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 阅读(7) 评论(0) 推荐(0) 编辑
  2024年8月11日
摘要: 题意 给你N个在二位平面上的整点(即横纵坐标都为整数的点),以及一个距离阈值D,求有多少个整点(x,y)满足Σ(abs(x-x[i])+abs(y-y[i]))≤D,(1≤i≤N) 思路 题目显然是要要求某个点到给定的N个点的曼哈顿距离之和,但是如果强行枚举点,根据数据范围显然是不可以通过的。那么我 阅读全文
posted @ 2024-08-11 09:44 Linear_L 阅读(98) 评论(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 阅读(3) 评论(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 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 题意 给定xoy平面上的N个点,可以进行K次操作,每一次操作可以让这N个点中的一个点横向或纵向移动一个单位。最后用一个所有边都平行于x轴或y轴的正方形将这N个点包围,请最小化这个正方形的边长。 思路 最小化最大横向或纵向长度,显然二分答案。二分最后正方形的长度,现在问题转化为如何check。我们现在 阅读全文
posted @ 2024-06-21 16:53 Linear_L 阅读(7) 评论(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 阅读(5) 评论(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 阅读(4) 评论(0) 推荐(0) 编辑
  2024年6月13日
摘要: 题意 有T次询问,每次询问给出三个参数N,X,K,分别表示,有N个节点的二叉树,询问从X号节点出发走K条边能走到多少个不同的点。 思路 对于一颗二叉树上的点,我们可以分两种情况,一种是向上走,一种是向下走。 对于向下走,我们只需要不停的、分别的遍历当前节点的右儿子(对于二叉树就是序号乘2),直到向下 阅读全文
posted @ 2024-06-13 18:49 Linear_L 阅读(3) 评论(0) 推荐(0) 编辑