04 2025 档案

摘要:题目链接:https://codeforces.com/contest/2098/problem/B 题意: 大致说有[1,1e9]个房子,还有n个酒吧分布在n个房子里(可以是相同的房子) 定义f(x)为编号为x的房子与所有开着的酒吧的直线距离 现在可以使最多k个酒吧关闭 让你求哪些房子(注意不能重 阅读全文
posted @ 2025-04-29 22:30 Marinaco 阅读(132) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc403/tasks/abc403_d 题意: 给定一些数,要求删去一些数使得任意一个数x都不能存在x+d,x-d 求删除操作最少次数为多少? 思路: 通过桶来记录每个数的出现次数,那么对于起点为[0,d-1]的模序列(即每次+d 阅读全文
posted @ 2025-04-29 18:52 Marinaco 阅读(70) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P1801 题意: 略 思路: 需要在一个变化(元素不断增加)的数组 快速查找第i小的元素 考虑使用对顶堆 即分别开一个大根堆和一个小根堆 如果要求第几大的元素即让小根堆元素相对大,大根堆元素相对小 如果要求第几小的元素即让 阅读全文
posted @ 2025-04-27 22:12 Marinaco 阅读(26) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P3143 题意: 在给定的数组上 找到两个 最大的 极差不大于k 的子序列。输出其长度之和 思路: 贪心地,先将数组排序,然后选择两个区间即可 通过滑动窗口选出以每个节点为左端点的最大窗口大小 后缀最大值优化查询 void 阅读全文
posted @ 2025-04-26 11:13 Marinaco 阅读(66) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/107879/E 题意: 有n个关键时间,两种操作:1.延后一个关键时间1s 2.提前一个关键时间1s 是否能在不超过其时间的情况下将所有关键时间操作两次 思路: 容易知道当存在某一个时间点使得有两个关键时间重复了是肯 阅读全文
posted @ 2025-04-26 09:32 Marinaco 阅读(21) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc402/tasks/abc402_d 题意: 圆上有n个点,挑出mx2个点组成m条线段,求这m条线段其中相交个数 思路: 结论:圆上两点a1,b1组成线段平行于另一条线段a2,b2当且仅当(a1+b1)mod n = (a2+b 阅读全文
posted @ 2025-04-24 21:14 Marinaco 阅读(36) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P1714 题意: 在长度为n的数组中求区间窗口小于等于m的区间最大和 思路: 单调队列+前/后缀和优化 枚举区间右端点,然后对于最左端点与右端点之间进行后缀的单调队列即可 void solve(){ cin>>n>>m; 阅读全文
posted @ 2025-04-24 19:46 Marinaco 阅读(18) 评论(0) 推荐(0)
摘要:单调栈: 用于求解一个数组上所有数左边/右边第一个比它小/大的数 实现思路(求这个数右边的第一个比它大/小的数为例): 求比它大的: 维护栈从底至顶单调递增 当遍历到一个元素时,当栈非空且栈顶元素小于该遍历元素时,不断出栈(并记录出栈元素答案) 求比它小的: 维护栈从底至顶单调递减 当遍历到一个元素 阅读全文
posted @ 2025-04-24 19:06 Marinaco 阅读(38) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/record/214917040 题意: 给定一个矩阵,求F矩阵的最大面积 思路: 题目要求用O(N x M)的复杂度求解 因此思路是类似求解接水问题,利用单调栈优化复杂度 具体来说:设f[i][j]:从第i行第j列向上最大的F矩阵高度,对 阅读全文
posted @ 2025-04-24 18:55 Marinaco 阅读(19) 评论(0) 推荐(0)
摘要:题目: ... 题意: 给定一个数组,选择三个数 ai,aj,ak 满足 ai*b=aj , aj*b=ak 统计这样的(i,j,k)(不需要使i<j<k)三元组有多少个? 思路: 发现条件类似于等差数列 : aj/ai =b ,ak/aj=b 当b不等于1时,那么 ai , aj, ak 都不相等 阅读全文
posted @ 2025-04-23 21:42 Marinaco 阅读(31) 评论(0) 推荐(0)
摘要:题目: 给你一棵由 n 个结点组成的树和 m 个不重复的无序数对 (a1,b1),(a2,b2),...,(am,bm),注意对于其中每一个i,ai和bi都不相同,ai,bj (1≤i,j≤m)。 小憨憨王冰冰想知道是否能够选择一条树上的边砍断,使得对于每个 (ai,bi) 满足 ai​ 和 bi不 阅读全文
posted @ 2025-04-22 21:52 Marinaco 阅读(27) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P1347 题意: 对于n个变量A,B,C.. 给定m个类似A<B的关系,判断满足这些变量之间什么关系 1.是否出现逻辑矛盾,(A<B,B<C,C<A) 2.是否能够判断出所有变量之间的大小关系 思路: 拓补排序问题 对于每 阅读全文
posted @ 2025-04-22 20:30 Marinaco 阅读(32) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P1127 题意: 给定n个单词,后面单词的第一个字母与前面单词的最后一个字母相同,输出字典序最小的排列 思路: 经典欧拉路径问题 单词作为边,该单词的第一个字母和最后一个字母作为节点建图 1.建立并查集,判断图的连通性 2 阅读全文
posted @ 2025-04-22 12:48 Marinaco 阅读(46) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/107500/D 题意: 给定一个数组,需要划分成k个区间。 并且这些区间“25”子序列(数组的数字拼接成字符串)的最大出现次数要尽可能小 求“25”子序列最大出现次数最小值 思路: 经典二分答案,关键在于check怎 阅读全文
posted @ 2025-04-21 18:12 Marinaco 阅读(33) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/107500/F 题意: 给定一个排列,构造一个排列使得 (ai^bi)_sum(1~n) 最大 思路: 有点神秘的这题,本来想着大的数和小的数匹配,结果并不正确 题目要求生成排列,其实就是构建 1~n范围的 每个数字 阅读全文
posted @ 2025-04-21 17:28 Marinaco 阅读(40) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/107500/E 题意: 对于一颗给定的树,可以选择一个点花费2 x w[i] 的代价将其染黑 或选择两个点花费 w[i] + w[j] 的代价将这两个点及其简单路径(经过LCA的路径)上的点染黑 求将整棵树染黑所需的 阅读全文
posted @ 2025-04-21 16:31 Marinaco 阅读(25) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P3017 题意: 给定一个矩阵,需要切成axb块,使每块的最小值尽量大。 思路: 显然二分最大化最小值 关键在于如何统计块数,即如何写check函数 不妨先按一行一行来切,在每一行中,当切出的块大于等于mid的时候,转而切 阅读全文
posted @ 2025-04-20 11:53 Marinaco 阅读(30) 评论(0) 推荐(0)
摘要:题目链接:https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=994805069361299456&page=1 题意: 给定一个二叉树的后序以及中序遍历序列,求其层序遍 阅读全文
posted @ 2025-04-18 22:03 Marinaco 阅读(43) 评论(0) 推荐(0)
摘要:源点S,汇点T 通过bfs找到增广路,并逆序构建残留网 累加可行流即为答案 链式前向星存图 注意边的编号从2开始,这是为了让编号^1时,是我们构建的退流管道边(即2的退流管道为3,4的退流管道为5...) 时间复杂度O(n*m^2) int S,T; struct edge{ int v,w,ne; 阅读全文
posted @ 2025-04-17 18:53 Marinaco 阅读(22) 评论(0) 推荐(0)
摘要:命令通用格式:命令本身 + 可选选项 + 可选参数 1.ls ls展示当前工作目录(默认/home/user)下的文件 可选选项:1.-a:展示隐藏文件 2.-l:以列表的形式呈现 3.-h:显示文件大小单位 2.cd(change directory) 切换工作目录 cd + 路径 (默认/hom 阅读全文
posted @ 2025-04-17 18:36 Marinaco 阅读(19) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/107000/E 题意: n行m列的矩阵,每次可以改变两个相邻的灯的状态,求将灯全开的操作 思路: 当遇到两个0相邻时直接将其变为1。 当一个0与一个1相邻时可以交换0,1的位置 不妨将0全部移到最右列 0的个数为奇数 阅读全文
posted @ 2025-04-16 15:56 Marinaco 阅读(23) 评论(0) 推荐(0)
摘要:struct edge{ int v;//这条边指向的点 int w;//该边的权值 int ne;//下一条边 }e[maxn]; int h[maxn];//存节点i的头边编号 int idx;//边的编号 void add(int a,int b,int c){ e[idx]={b,c,h[a 阅读全文
posted @ 2025-04-15 21:30 Marinaco 阅读(32) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc401/tasks/abc401_e 题意: 给定一个无向图,1为根节点。要求求出当k分别=1,2,3....n时 需要消除点使得1,2,3,..k的节点连通并且使消除的点最少 思路: 并查集+set 对于每一个k节点,与比k小 阅读全文
posted @ 2025-04-15 20:16 Marinaco 阅读(34) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc401/tasks/abc401_d 题意: 给定一个字符串,其中‘?’字符可以替换成'.'或'o'。我们想要这个字符出现k个o,并且每个o都不相邻 每个问号都可以替换的情况下,既可以替换成.也可以替换成o的问号依旧是问号 输出 阅读全文
posted @ 2025-04-15 19:31 Marinaco 阅读(31) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/106859/G 题意: 给定总集合U,由若干个pair<string,string>构成 现拥有集合X:为集合U的子集 集合P:由若干个string构成 现要求X:1.为集合U的子集 2.不能只有一种元素 为此,可以 阅读全文
posted @ 2025-04-14 19:51 Marinaco 阅读(23) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/106859/F 题意: n个数组,每组分别有价值不同,重量不同的若干张牌,和一张桃(其价值为x,重量为y) 初始背包容量为0,可以通过吃桃使背包容量+1 顺序不分先后,求能获得的牌的最大价值 思路: 分组背包 设f数 阅读全文
posted @ 2025-04-14 19:40 Marinaco 阅读(25) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/106859/E 题意: 给出x个1,y个2,z个3的排列,重新排序使得新的排列尽量少地匹配旧的排列 思路: 把x,y,z和它们分别代表的数字编号排序,设个数从大到小为:c,b,a。分别代表nc,nb,na的数字 1. 阅读全文
posted @ 2025-04-14 19:31 Marinaco 阅读(34) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P9241 题意: n架飞机,给出每一个飞机初始可降落时间t,降落花费的时间l,最终可降落时间d,求能否全部降落 思路: 暴力DFS struct node{ int t,d,l; }; int n; vector<node 阅读全文
posted @ 2025-04-11 17:12 Marinaco 阅读(26) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P3131 题意: 求是7的倍数的最长的区间长度 思路: 对于两个数a,b: (a-b)(mod m) = 0 => a (mod m) = b (mod m) 所以对于所有%7后的前缀区间,假设左边l点%7后等于右边r点% 阅读全文
posted @ 2025-04-10 21:00 Marinaco 阅读(21) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/103867/J 题意: 要求1.合并l和r的集合2.判断l~r之间的所有数是否在同一个集合内 思路: 并查集启发式合并 大概就是普通并查集在合并时需要 小集合 并到 大集合 里 然后维护nxt数组,如果与右边连通则指 阅读全文
posted @ 2025-04-10 19:45 Marinaco 阅读(23) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/103867/G 题意: 规定F(l,r)= sum(a[i])(l<=i<=r)*(r-l+1) 前缀和p[i]绝对值小于等于5000 求最大F 思路: f=(pre[r]-pre[l-1])(r-l+1)=(pre 阅读全文
posted @ 2025-04-10 18:41 Marinaco 阅读(74) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/103867/D 题意: 已经知道物体价格走势,每天可以买入一定量的物体,要求必须次日卖出。求使最后赚得利润大于M的最小本金X为多少 思路: 二分答案+贪心枚举 对于每一天,如果下一天物体价格上涨,那么买入尽可能多地买 阅读全文
posted @ 2025-04-10 14:36 Marinaco 阅读(34) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/103867/E 题意: 在数组上移动每次可以往左或往右一格,或者通过传说门移动,求到达n的最小移动次数 思路: 隐式图BFS问题 注意vis数组的使用 int n; int a[maxn]; int vis[maxn 阅读全文
posted @ 2025-04-09 22:12 Marinaco 阅读(38) 评论(0) 推荐(0)
摘要:欧拉函数:phi[n]:[1,n]与n互质(gcd=1)的数的个数 欧拉函数性质: 1.若n为质数,则phi[n]=n-1 2.若n为质数,则phi[nk]=(n-1)(n(k-1)) 3.积性函数:phi[nxm]=phi[n]xphi[m] 以下为O(n)复杂度求欧拉函数板子 vector<in 阅读全文
posted @ 2025-04-09 19:02 Marinaco 阅读(28) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P2638 题意: n个存储区,每个存储区可以放任意个0或1。0最多有a个,1最多有b个,求方案数 思路: 发现这是每组允许为空的隔板法 即对于一个数字,如果放k个,要求分成n组,(k<n),那么需要先借来n个,分完组后还回 阅读全文
posted @ 2025-04-09 15:10 Marinaco 阅读(18) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P1246 题意: a=1,b=2......,z=26,ab=27,ac=28 思路: DFS按顺序枚举所有的单词编码,存在哈希表中查询 dfs具体需要枚举单词长度,按照单词长度为关键字搜索 int cnt; map<st 阅读全文
posted @ 2025-04-09 12:41 Marinaco 阅读(25) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P2822 题意: 对于0<=i<=n , 0<=j<=min(i,m)的组合数 求其中有多少个k的倍数 思路: 组合数递推公式:f[i][j]=f[i-1]j-1 由于后面的组合数非常大,所以需要取模k 利用二维前缀和,计 阅读全文
posted @ 2025-04-09 10:39 Marinaco 阅读(50) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc400/tasks/abc400_c 题意: 定义一个数当其为2^a * b^2为好数 其中a,b>=1 求[1,n]好数的个数(n<=1e18) 思路: 从1~63枚举2的幂次 由于b为偶数时会在下一个幂次再次出现,所以对于每 阅读全文
posted @ 2025-04-07 17:12 Marinaco 阅读(28) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/106318/G 题意: 给定一颗子树,规定其val为 从根节点1到叶子节点的简单路径的权值之和 的max 现在给出q次查询,每次查询将x节点连接到y节点之下,求此时的val(每次操作不改变原树) 思路: DFS序(树 阅读全文
posted @ 2025-04-07 16:48 Marinaco 阅读(28) 评论(0) 推荐(0)
摘要:配置Git: 跟踪参与开发项目的人员 用户名+电子邮箱 git config --global user.name " " git config --global user.email " " 设置每个项目中主分支的默认名称 git config --global init.defaultBranc 阅读全文
posted @ 2025-04-06 16:45 Marinaco 阅读(28) 评论(0) 推荐(0)
摘要:求欧拉路 欧拉路:只经过所有边一次的道路 欧拉回路:只经过所有边一次且回到起点的道路 类似于一笔画 前提条件:如果图是连通的(同属于一个集合) 1 无向图: 欧拉路径存在条件:恰好有两个度数为奇数的点(其他点度数都为偶数),路径从一个度数为奇的点到另一个度数为奇的点 欧拉回路存在条件:所有点的度数为 阅读全文
posted @ 2025-04-05 16:12 Marinaco 阅读(67) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P1807 题意: 求1~n之间的最长路 思路: 将所有边权变为负边权,跑spfa最短路可得-最长距离 int n,m; struct edge{ int v,w; }; vector<edge>e[maxn]; int d 阅读全文
posted @ 2025-04-05 15:17 Marinaco 阅读(22) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P1494 题意: 求在区间[l,r]上取得两个相同颜色的袜子的概率 思路: 莫队,注意开longlong以及最后直接用最大公约数gcd约分 int n,m; int a[maxn]; int cnt[maxn]; stru 阅读全文
posted @ 2025-04-04 19:50 Marinaco 阅读(40) 评论(0) 推荐(0)
摘要:int n,m; int a[maxn]; int cnt[maxn]; struct node{ int l,r,id; }q[maxn]; int k; bool cmp(node a,node b){ if(a.l/k!=b.l/k)return a.l/k < b.l/k; if((a.l/ 阅读全文
posted @ 2025-04-04 17:35 Marinaco 阅读(21) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P2709 题意: 给定一个序列,m次查询,每次查询要求返回区间 每个数的出现次数 的平方 之和 思路: 莫队,即将原序列分成n块sqrt(n)的块,再将查询按照l在块的编号为第一关键字,r为第二关键字进行排序 离线双指针进 阅读全文
posted @ 2025-04-04 17:29 Marinaco 阅读(28) 评论(0) 推荐(0)
摘要:题目链接:https://atcoder.jp/contests/abc393/tasks/abc393_f 题意: 给定一个序列,q个询问 每个循环给定一个R和X 请找出在[1,R]序列前缀范围的且最大值不超过X的LIS 思路: 对于所有询问考虑离线查询 规定f[i]为长度为i的LIS的最小结尾值 阅读全文
posted @ 2025-04-02 22:00 Marinaco 阅读(36) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P1229 题意: 给定一颗二叉树的前序遍历和后序遍历,由于无法确定中序遍历,求这颗二叉树有多少种画法? 二叉树的前序,中序,后序遍历: 前序遍历:先遍历根,再递归遍历左子树,再递归遍历右子树 中序遍历:先遍历左子树,再遍历 阅读全文
posted @ 2025-04-02 11:02 Marinaco 阅读(64) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P2607 题意: 略 思路: 图为外向树,(n个节点,n个边) 对于每一个连通块,先找环(每个连通块都有一个环)然后断环成树,跑树形dp板子 vector<int>e[maxn]; int vis[maxn],w[maxn 阅读全文
posted @ 2025-04-01 21:29 Marinaco 阅读(22) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P1091 题意: 找到最小出队人数使得队列中剩余的人高度呈严格凸形状 思路: 枚举以每个位置为结尾的最长上升子序列和最长下降子序列,取max int f1[105]; int f2[105]; void solve(){ 阅读全文
posted @ 2025-04-01 19:49 Marinaco 阅读(58) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.com.cn/problem/P1004 题意: 走两次nxn的方格并取数,求取数的最大值 思路: 四维dp!记f[i,j,x,y]为第一次走到i,j,第二次走到x,y的能获得的和的最大值 不难发现由四种状态转移过来 当i,j,x,y位置相等时,只能加一 阅读全文
posted @ 2025-04-01 19:39 Marinaco 阅读(29) 评论(0) 推荐(0)

//雪花飘落效果