09 2024 档案

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

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