随笔分类 - 题解
摘要:CF1182B Plus from Picture 题目传送门 深搜的练手题。 题目大意:找到一个 由 * 组成的 +,要求用完矩阵中全部的 * ,同时要求有且仅有一个。 思路:先找到一个 * ,让它成为中心点,然后向四个方向进行拓展,同时记录沿途 * 的个数。如果 * 的个数刚好和矩阵中 * 的个
阅读全文
摘要:CF835B The number on the board 题目传送门 贪心入门题。 题目大意: 给出两个正整数 kkk,nnn,其中的 nnn 被修改过,你需要修改 nnn 中的某几位,使新的 nnn 的各个位置的和为 kkk,求最小的修改次数。 思路: 首先,如果原数各位的和已经大于等于 kk
阅读全文
摘要:CF467C George and Job 题目传送门 一道比较简单的 dp 题目。 设 dp[i][j]dp[i][j]dp[i][j] 表示前 iii 个数,选了 jjj 组,所可以获得的最大值。 答案就显而易见了,是 dp[n][k]dp[n][k]dp[n][k]。 设 sum[i]sum[
阅读全文
摘要:CF938D Buy a Ticket 简单最短路练手题。 首先每个点都有自己的点权,根据经验,这肯定是要转边权的。 再看看题目,题目要求求每个人的去看的费用最小值,一般不难想出要跑 nnn 遍最短路,但是时间复杂度太高。 所以我们考虑建立一个虚拟原点,由于一开始的点是有点权的,所以我们把虚拟原点向
阅读全文
摘要:UVA12230 过河 Crossing Rivers 题目传送门 题目大意:有个人准备坐速度为 vvv 的船过宽度为 LLL 河,船是不断处于往返两个河岸过程中的。当他到达河岸时,船随机在某一个位置。求期望过河时间。 概率和期望入门。 首先我们可以知道过河的最坏情况就是船在对岸,那么这样的话船就要
阅读全文
摘要:CF963B Destruction of a Tree 题目大意:有一个 nnn 个节点的树,如果一个点有偶数条边和他相连,那么这个点就可以删去。如果这棵树可以被完全删除的话,输出每个节点依次删除的顺序。 首先,如果 nnn 个点,由于是树,就有 n−1n-1n−1 条边。如果 nnn 为偶数的话
阅读全文
摘要:CF363B Fence 思路:模拟+前缀和 前缀和简单介绍: 设 sum[i]sum[i]sum[i] 表示前 iii 个数的和,就有: sum[i]=sum[i-1]+a[i] 其中 a[i]a[i]a[i] 表示输入的数据。 所以在前缀和的基础上,这个题就十分简单了。 我们从 mmm 开始枚举
阅读全文
摘要:CF779A Pupils Redistribution 这还是一个模拟题 思路非常简单,强行枚举题意,如果其中有同一个分数段的人数是单数的话,那么就一定无法完成调整,因为要求是两边的人数都一样。 设 sa[i]sa[i]sa[i] 表示在第一组中每个分数段出现的人次,sq[i]sq[i]sq[i]
阅读全文
摘要:CF1195B Sport Mafia 简单数学题。 列个方程,设操作了 xxx 次,(如果设吃了多少次好像不太行) 等差数列求和公式: (1+2+3+...+n)=12(n+1)(n)(1+2+3+...+n)=\frac{1}{2}(n+1)(n)(1+2+3+...+n)=21(n+1)(n
阅读全文
摘要:「SvR-1」Don't Mozheng. /oh 模拟字符串练手题 思路:如果要满足 /oh 或者 /hsh,必须要字符的长度是等于 333 或者等于 444 才可以。先用两个字符串把 /oh 和 /hsh 加入进去,然后边输入边进行匹配,可以使用计数器统计吻合个数,如果完全重合,就加上相应的 a
阅读全文
摘要:[JSOI2009] 瓶子和燃料 根据裴蜀定理可以知道,ax+byax+byax+by 能凑出最小的正整数为 gcd(a,b)gcd(a,b)gcd(a,b)。 所以选择几个瓶子,答案就是几个瓶子的 gcdgcdgcd。故将每个数分解因数,找最大且出现至少 kkk 次的因数即可。 #include<
阅读全文
摘要:[PFOI Round1] 暴龙的火锅 这一题就是一个模拟题.... 首先我们先预处理出斐波那契数组,注意要取余 999 (不然就会爆掉)。 斐波那契通项公式: fib[i]=fib[i−1]+fib[i−2]fib[i]=fib[i-1]+fib[i-2]fib[i]=fib[i−1]+fib[i
阅读全文
摘要:AT4626 Subscribers 一道容斥原理的应用 最大值: 就是两个题目较小的那个数的值(不可以是较大的是因为对于另一个题目而言无法满足了)。 最小值:(分两类情况讨论) 是有 xxx 人做了 AAA 题,yyy 人做 BBB 题,NNN 是总人数。 1.若 x+y<Sx+y<Sx+y<S
阅读全文
摘要:AT4810 [ABC133C] Remainder Minimization 2019 这题本质上考察的是模拟算法。 题意: 给出 LLL 和 RRR,在其中找出 iii 和 jjj,使得 i×j mod 2019i×j\;mod\;2019i×jmod2019 最小。 但是其中依旧有应该注意的地
阅读全文
摘要:AT4816 [ABC159D] Banned K 题目大意: 给一个长度为 nnn 的序列,问每次删去 a[i]a[i]a[i] 后,有多少对两两相等的数。 思路: 用一个 sumsumsum 表示一共有几对相同的数字,即先用一个桶保存每一个数的出现次数,然后用全排列公式算出总地情况即可。最后在减
阅读全文
摘要:AT4533 Deque 前来补一篇题解。 这道题还是典型的区间dp。 首先它没有后效性,每个数只可以取一次。并且是从前边后者后边取的。 设 dp[i][j]dp[i][j]dp[i][j] 表示从 iii 到 jjj 的区间先手可以获得分值的最大值。 用全部的和减去先手的值,就是后手的值了。 1
阅读全文
摘要:P3003 [USACO10DEC]Apple Delivery S 题解 前置知识: dijkstra 堆优化 和他的模板: 单源最短路径(标准版 题目大意: 给一个图,注意边是双向的,然后给出 s1,s2,s3s1,s2,s3s1,s2,s3 ,其中 s1s1s1 是起点。然后要求s1 s1s1
阅读全文
摘要:AT4535 Slimes 这道题就是典型的区间dp 设 dp[i][j]dp[i][j]dp[i][j] 表示 i−ji-ji−j 的区间的最小值.a[i]a[i]a[i] 表示前缀和。 于是我们就可以得到方程。 dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]
阅读全文
摘要:P1608 路径统计 题解 不喜欢 dijkstra 优化的同学可以看过来。 前置知识 : dijkstra 以及其性质的足够了解。 不会的左转 oiwiki 题目传送门 P1339 [USACO09OCT]Heat Wave G 这一道题的本质其实就是在 dijkstra 中加一个计数就可以的,但
阅读全文
摘要:CF902A Visiting a Friend 这道题其实还是一个模拟 (建议下降难度) 题目大意: 输入一个 nnn,表示 nnn 组数据,在输入 mmm,表示该序列长度。 然后起始点在 000,接着输入 nnn 次的 xxx 和 yyy 表示在 xxx 和 yyy 这个区间内的数值是可行的。最
阅读全文