随笔分类 -  题解

摘要:TAG:最短路,DP,拓扑排序 题意 给定一个 n 个点 m 条边的无向图,边有边权。 给定两对点 s1,t1s2,t2。 你可以选定 s1t1 的一条最短路径,使得这些边的边权变为 0,要求操 阅读全文
posted @ 2024-09-14 16:15 固态H2O 阅读(13) 评论(0) 推荐(0) 编辑
摘要:前言 思维训练 1,几乎没有什么算法,枚举 or 搜索 or 二分 CF1681D Required Length TAGS:暴搜 + 剪枝 前置函数 下文中称:len(x)x 十进制下的位数。 First. 为什么是搜索 开始看到这道题想到了贪心:每 阅读全文
posted @ 2024-04-07 21:56 固态H2O 阅读(22) 评论(0) 推荐(0) 编辑
摘要:TAG: 计数、数学 变量说明 下文中 k 指整洁方块个数。 First. 如何计数? 一个方案一个方案地数肯定是不现实的,不妨反过来想:每个方块在多少个方案中被照亮。 Second. 如何求多少个方案 首先预处理出有多少位置可以将 si,j 照亮。记 阅读全文
posted @ 2024-03-18 14:51 固态H2O 阅读(11) 评论(0) 推荐(0) 编辑
摘要:题意 给定一个长度为 n 的序列和一个模数 m,记 ci 表示 modm 后的结果为 i 的数的个数。现在可以使每个数增加 1,请问最少要操作多少次才能使所有 ci=nm。并输出最后的序列。 First. 如何最 阅读全文
posted @ 2024-03-18 14:51 固态H2O 阅读(18) 评论(0) 推荐(0) 编辑
摘要:赛时不会 E,看到 F 高兴坏了。 First. 题目分析 首先,这道题单点修,区间查,一般都可以用数据结构做,此时我们不妨往线段树上想一想。 那么求次大,我们线段树需要维护什么呢? 对于合并两个区间,其的次大并不是两个区间次大中的较大者,而还需要考虑两个区间的最大值,即两个区间最大值、次大值中的次 阅读全文
posted @ 2024-03-18 14:50 固态H2O 阅读(19) 评论(0) 推荐(0) 编辑
摘要:目前题解区还没有证明,我交个证明。 形式化题意 给定每个点的度数 di,请构造一个简单无向图(无重边无自环)。 First. 无解 首先,根据握手定理,每个无向图的度数之和为边数的两倍,所以如果度数之和为奇数,那么肯定无解。 但是发现,这种情况之外还有别的无解情况(本题有 3 个无 阅读全文
posted @ 2024-02-13 18:54 固态H2O 阅读(12) 评论(0) 推荐(0) 编辑
摘要:ABC335 C - Loong Tracking TAG: STL,模拟 APPRAIS:STL 的巧用 前置知识 deque 可以下标 O(1) 访问。 deque 可以删除队尾队首元素,在队尾队首插入元素。 First. 修改 设 阅读全文
posted @ 2024-01-06 22:07 固态H2O 阅读(28) 评论(0) 推荐(0) 编辑
摘要:CF1900D - Small GCD【数论超好题】 前置知识 欧拉函数 - OI Wiki 筛法 - OI Wiki 正题 题意 给定一个数组 a,找出 a 中所有不同的三元组 (x,y,z),求所有 gcd(min1,min2) 的和,min1 为三元组中最小的数,$ 阅读全文
posted @ 2023-11-28 23:08 固态H2O 阅读(11) 评论(0) 推荐(0) 编辑
摘要:题意 每次输入一个数 i,在对应的 ai 上使其值加一,每次修改然后输出字典序最小的最大值。 思路 设当前最大值的编号为 ans,每次修改 ai 之后,如果 ai>aans 那么 i 就是现在最大的。如果 ai=aans,如果 i 的字典序 阅读全文
posted @ 2023-11-19 09:27 固态H2O 阅读(7) 评论(0) 推荐(0) 编辑
摘要:题意简述 给你 n 个物品和他们的坐标 ai,求坐标区间 [x,x+m) 内的最大物品数量。 problem.1 区间枚举 最先想到的是标记坐标,然后按坐标枚举区间,取最大值。 这样绝对是会超时的。 不妨考虑从每个礼物的坐标出发,寻 阅读全文
posted @ 2023-11-01 16:42 固态H2O 阅读(6) 评论(0) 推荐(0) 编辑
摘要:主要算法 全源最短路(改版)。 题意 此题要求从某一个点到其他任意的点的路径上的最大边权的最小值。 思路 第一步 计算边权,用两点的曼哈顿距离 dis 去除以出发蹦床的系数 Pi,为了满足跳得过去且 S 为整数,所以边权为 $\left \lceil \frac{dis}{P_i} \ 阅读全文
posted @ 2023-10-28 16:25 固态H2O 阅读(18) 评论(0) 推荐(0) 编辑
摘要:CF501B Misha and Changing Handles 思路 通过并差集,将旧名字的父亲设为新名字。将每个没出现过的旧名字加入初始名字。最后查找旧名字的祖先,就是新名字。 if(!id[old_name]){ id[old_name] = ++ num; ans[++ cnt] = ol 阅读全文
posted @ 2023-09-20 14:19 固态H2O 阅读(5) 评论(0) 推荐(0) 编辑
摘要:思路 要想花费最小,不妨先考虑贪心。 对于权值较大的节点,应该最先断开它与其他节点连接的边,否则,它的权值会多次统计到答案中,不满足最小。 而由于删边较为麻烦,考虑逆序操作,改删边为加边。典型的套路:逆向操作。 阅读全文
posted @ 2023-08-26 17:39 固态H2O 阅读(8) 评论(0) 推荐(0) 编辑
摘要:题意 给出 n,请构造一个长度为 n 的排列 a,使得一个数组 d(di=gcd(aiaimodn)) 中不同数字的个数最大,下文将该值称作价值。 思路 先考虑升序的排列:1,2,3,,n1,n,其价值显然为 1。 对于每个 ai阅读全文
posted @ 2023-08-16 02:14 固态H2O 阅读(5) 评论(0) 推荐(0) 编辑
摘要:题意 给定一个数 n,请求出将 n 拆散后,可以组成的数字中(无前导零的)质数的个数。 思路 First 排列 此题首先需要找出将 n 拆散后的所有没有前导零的排列。 那排列怎么求呢? 有一个 STL:next_permutation,可以求出一个数组的下一个排列。 用法:next_pe 阅读全文
posted @ 2023-08-14 20:31 固态H2O 阅读(5) 评论(0) 推荐(0) 编辑
摘要:思路 First 由于需要将所有单词排序,我们首先需要截取出所有单词。 如果遇到大写字母,使用一个指针向后扫,直到遇到下一个大写字母。而这一段子串,就是一个单词。 Second 接下来,我们需要给单词排序。 注意:这里的字符串忽略大小写排序! 所以,我们需要自己写一个cmp改变排序规则: bool 阅读全文
posted @ 2023-08-12 08:44 固态H2O 阅读(3) 评论(0) 推荐(0) 编辑
摘要:CF1179A Valeriy and Deque 更好的观看体验 思路 首先,每次操作后会将大的那个数排至队首。所以说,当队列中最大的那个数到达队首时,队首元素将不再改变,而其他的元素依次循环。因此,我们可以记录最大数不在队首之前的操作,在其到达队首之后,记录其余元素的循环节即可。注意:需要记录使 阅读全文
posted @ 2023-06-26 13:22 固态H2O 阅读(1) 评论(0) 推荐(0) 编辑
摘要:CF678D Iterated Linear Function 题意 fi,x=A×fi1,x+Bf0,x=xfn,x。 思路 这道题的递推关系十分清晰。但由于数据范围大($1\le A,B,x\le 10^ 9,1\le n \le 阅读全文
posted @ 2023-06-17 08:26 固态H2O 阅读(3) 评论(0) 推荐(0) 编辑
摘要:AT_abc203_D 题意 给出一个 N×N 的矩阵,然后依次枚举 k×k 的子矩阵。 对于 k×k 的子矩阵,一共有个 k2 元素,找出其中的中位数。这里的中位数是子矩阵中元素从大到小排列的第 $\left \lfloor \frac{ 阅读全文
posted @ 2023-06-03 09:23 固态H2O 阅读(8) 评论(0) 推荐(0) 编辑
摘要:Robot Breakout(CF1196C) 思路 这道题因为平面极大,暴力枚举每个点肯定会超时。所以,我们不妨从机器人出发。 我们可以枚举每个机器人可以执行的操作: 位置从 (Xi,Yi) 变为 (Xi1,Yi),即向左走。 位置从 (Xi,Yi) 变为 $(X_i,Y 阅读全文
posted @ 2023-05-17 21:23 固态H2O 阅读(6) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示