09 2024 档案
摘要:2019 CSP-J 题目整理 B-公交换乘 思路梳理 先想暴力算法,一遇到公交车,就在已出现过的优惠卷中寻找价格大于等于公交车票价,并且出现时间最早且没有用过的优惠卷,时间复杂度为 ,必然会炸。但是注意题目中给到的特殊性质,要求如果优惠卷有效,则 \[t_{bus}-t_{su
阅读全文
摘要:2019 CSP-S 题目整理 A-格雷数 思路简介 思路很简单,如果编号在中点的左边那么就输出0,否则输出1,同时还要改变编号。 代码实现 #include<bits/stdc++.h> #define maxn 80 using namespace std; typedef __int128 i
阅读全文
摘要:2020 CSP-J 题目整理 B-直播获奖 思路梳理 题目中说“如有选手成绩相同,则所有成绩并列的选手都能获奖,因此实际获奖人数可能比计划中多”,这是一个坑点,因为即使有分数相同的人,他的分数也是和位于第 人的分数相同的,而题目只让输出分数,所以不用在意。先来考虑暴力算法,没加
阅读全文
摘要:绿豆蛙的归宿 如果正着求 , 需要记录从起点到当前点的概率 ,这个概率是会传递的。所以考虑倒着求 ,则 爬树的甲壳虫 期望DP,多倒序求解。 这一题如果正着求会掉到0所以考虑倒序。 \[f[n]=0\\ f[i]=1+p[i+1]∗f[0]+(1
阅读全文
摘要:扩展欧几里得算法(exgcd) 简介 扩展欧几里得算法基于辗转相除法构建,主要用于求方程 最小正整数解 步骤 1.求方程的解 我们构造两个方程 \[\begin{cases} ax+by=gcd(a,b)\\ bx'+(a\%b)y'=gc
阅读全文
摘要:欧拉线性筛 简介 欧拉线性筛主要用于求以内的所有素数,时间复杂度为 算法实现 欧拉线性筛的原理是保证以内的所有素数只被他所含有的最小质因子筛过,这样就使得每个素数只被筛过了一次。 我们设一个数组表示第个素数是多少,\(is\_pr
阅读全文
摘要:数位DP 适用条件 此类题目一般要求在区间内满足条件的数的个数,答案一般与数的大小无关,而与数各位的组成有关。题目中给出的数的范围一般较大,往往在以上因此无法暴力枚举,只能使用动态规划 代码实现 使用记忆化搜索更简单易于理解。 从数的高位向低位搜索,每一位可以为\(
阅读全文
摘要:状态压缩DP 对于一个集合,他一有个子集,而状态压缩就是枚举这些子集,每一个状态就是一个由构成的集合,如果为就表示不选当前的元素,否则就表示选。因为状态压缩将每一个状态压缩成了一个用二进制表示的数,所以不光可以节省空间,还可以节省时间。 因为是枚举子集,所以时间复
阅读全文