随笔分类 -  题解

上一页 1 2 3 4 5 6 7 8 ··· 18 下一页
摘要:传送门 解题思路 注意所有的砝码都是倍数关系,所以砝码质量的种类数只有log级别。 先用类似进制的方式求出质量尽可能多的装砝码方案。 然后再在其基础上进行贪心调整——砝码质量小的尽可能多用。 所以从小到大进行贪心选择即可(仿照减法借位) AC代码 #include<iostream> #includ 阅读全文
posted @ 2021-10-08 11:34 尹昱钦 阅读(44) 评论(0) 推荐(0)
摘要:传送门 解题思路 暴力枚举指数的复杂度是 \(O(p)\) 的(费马小定理) 所以用分块思想。 将 \(l\) 分成 \(\sqrt p\) 块,每块的长度为 \(\sqrt p\)。 先预处理出 \(i=1\to \sqrt p\) 时 \(b^i\bmod p\) 的值,开个map存下值所对应的 阅读全文
posted @ 2021-10-08 09:02 尹昱钦 阅读(91) 评论(0) 推荐(0)
摘要:传送门 解题思路 可以自己取一个大质数当做模数,或者直接利用unsigned long long的溢出。 进制也可以选择一个较小的质数,如13131或者15151等。 AC代码 #include<iostream> #include<cstdio> #include<cstring> #includ 阅读全文
posted @ 2021-10-08 07:53 尹昱钦 阅读(56) 评论(0) 推荐(0)
摘要:传送门 解题思路 首先很显然可以贪心进行选择,枚举哪个数字有k个,然后优先绝对值更靠近他的数字,即可算出最小代价。 下一个要求是字典序最小。 还是先删掉绝对值靠近他的点,先从前往后正序删比他的的数字,再从后往前逆序删比他小的数字,即可保证字典序最小。 AC代码 #include<iostream> 阅读全文
posted @ 2021-10-08 07:44 尹昱钦 阅读(127) 评论(0) 推荐(0)
摘要:传送门 解题思路 概括一下题意:求字符串中abababa子序列的个数。 考虑dp。 设dp[i]表示以子序列第i位结尾的方案数。 显然第i位是'a'时dp[i]才不为0。 转移方程为: \(dp[i]=1+\sum_{j=1}^k dp[j]\) 其中k为上一个b出现的位置。 显然可以边求dp边记录 阅读全文
posted @ 2021-10-08 07:33 尹昱钦 阅读(59) 评论(2) 推荐(0)
摘要:传送门 解题思路 按照字符在a中出现的位置映射到b字符串中。 求逆序对数即为答案。 AC代码 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<iomanip> #include<vector 阅读全文
posted @ 2021-10-08 00:15 尹昱钦 阅读(50) 评论(0) 推荐(0)
摘要:传送门 解题思路 先预处理出以1为根节点的各节点的size。 定义一个节点的size为以这个节点为根的子树的a的和。 然后求出ans[1],再进行换根dp求出每个节点的ans,比较大小输出即可。 AC代码 #include<iostream> #include<cstdio> #include<cs 阅读全文
posted @ 2021-10-07 23:39 尹昱钦 阅读(50) 评论(0) 推荐(0)
摘要:传送门 解题思路 好板子啊。 要不是是个省选题 我才不写博客呢。 树剖完了,就是单点修改+区间修改+区间求和。 线段树维护即可。 AC代码 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<a 阅读全文
posted @ 2021-10-04 15:35 尹昱钦 阅读(34) 评论(0) 推荐(0)
摘要:传送门 Lucas定理 OI-Wiki讲的太好了:http://oi-wiki.com/math/number-theory/lucas/#lucas 做一下总结补充解释: \((a+b)^p\equiv a^p+b^p \pmod p\) \(f^p(x)\equiv f(x^p) \pmod p 阅读全文
posted @ 2021-10-03 19:11 尹昱钦 阅读(77) 评论(0) 推荐(0)
摘要:传送门 解题思路 田忌赛马这道题的加强版。 收回我不能用贪心来解决的话。 排序后每个序列都用两个指针记录已经使用的数的位置。(一定先使用两边) 具体策略为: 若最大的比对方大,则最大的上。 若最小的比对方大,则最小的上。 否则就用最小的打对面最大的。 AC代码 #include<iostream> 阅读全文
posted @ 2021-10-01 18:37 尹昱钦 阅读(42) 评论(0) 推荐(0)
摘要:传送门 解题思路 概括一下题意:求min(sumw/sumn),其中sumw表示一个环上的边权和,sumn表示一个环上点的数量。 这种分数规划问题很常见的一个套路为二分答案,然后转化成01分数规划。 即二分一个比值k,判断有无环满足sumw/sumn<=k,也就是sumw-sumn*k<=0。进一步 阅读全文
posted @ 2021-09-28 20:52 尹昱钦 阅读(53) 评论(0) 推荐(0)
摘要:传送门 解题思路 先吐槽一下某谷翻译能不能把输入格式也翻译一下,感觉输入格式比题目描述都长。。 观察到p非常小,于是考虑状态压缩,将当前能打的怪物压缩成一个二进制数。 按照每个二进制数分层,一共分得 2^13=8192 层。 边全部存下会MLE,所以考虑在转移的时候判断一下,只有出边的状态是现在状态 阅读全文
posted @ 2021-09-28 17:45 尹昱钦 阅读(68) 评论(0) 推荐(0)
摘要:传送门 什么是分层图 在一个图上,按照某种限制,进行分层,在相邻两层之间按照某种联系进行连边。 如何实现 一般有两种方法:二维数组法和状态压缩法。 二维数组法:a[i][j]表示第i层的节点j。 状态压缩法:a[j*k+i]表示第i层的节点j,其中k表示层数。(相当于把二维坐标压成一维。) 应用 在 阅读全文
posted @ 2021-09-28 15:38 尹昱钦 阅读(63) 评论(0) 推荐(0)
摘要:传送门 解题思路 关于spfa,他死了 显然是差分约束。每日背规律: 小于等于最短路,求出上界最大值; 大于等于最长路,求出下界最小值。 于是建立大于等于的关系,spfa跑一遍最长路,判断有无正环,最后答案就是各个dis之和。 为保证都为正整数,需要从超级源点0向其他所有点建立一条边权为0的边。 ~ 阅读全文
posted @ 2021-09-28 09:15 尹昱钦 阅读(73) 评论(0) 推荐(0)
摘要:传送门 解题思路 分数规划问题:最大化比值。 可以枚举流量,再dijkstra跑最短路求出费用,更新答案。 AC代码 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> # 阅读全文
posted @ 2021-09-27 19:36 尹昱钦 阅读(116) 评论(0) 推荐(0)
摘要:传送门 解题思路 概括一下题意: 求所有点两两之间最短路的条数和经过k点的最短路的条数。 可以用Floyd边求边维护。 和Floyd本身一样不是很好感性理解,越深想越感觉可能落下或者多算。 要注意最短路条数f[i][i]不能初始化为1.否则当k==i松弛时会多算。 AC代码 #include<ios 阅读全文
posted @ 2021-09-27 19:08 尹昱钦 阅读(99) 评论(0) 推荐(0)
摘要:传送门 解题思路 传递闭包板子题。 直接建边然后Floyd即可。 最后对于每一个点,若比他小的(ma[i][j])加上比他大的(ma[j][i])等于n-1,则他可以确定排名。 AC代码 #include<iostream> #include<cstdio> #include<cstring> #i 阅读全文
posted @ 2021-09-27 18:00 尹昱钦 阅读(99) 评论(0) 推荐(0)
摘要:传送门 解题思路 感觉还是蛮有难度的。 设dp[i][j]表示释放编号在区间i..j的犯人所需要的肉的数量。 一开始枚举最后一个释放的人k进行转移,结果发现wa了,为什么? 深入分析一下,发现不满足无后效性,即未来的决策会影响现在的答案。 因为k左右两边的转移是相互影响的。 而当我们枚举的k的意义变 阅读全文
posted @ 2021-09-27 16:40 尹昱钦 阅读(80) 评论(0) 推荐(0)
摘要:传送门 解题思路 我们发现到某一位时,前面擦去那些数字并不影响当前位,影响的只有前面擦去的数量。 设dp[i][j]表示到第i个数共擦去j个数的答案。 则dp[i][j]=max(dp[i-1][j-1],dp[i-1][j]+(i-j==a[i])); 最后答案就是max(dp[n][j])。 A 阅读全文
posted @ 2021-09-26 16:54 尹昱钦 阅读(58) 评论(0) 推荐(0)
摘要:传送门 解题思路 本题从暴力dfs入手,推出dp转移方程。 先进行排序,速度越大编号越大。 假设齐王从最大开始的出马,dfs(now,l,r)表示齐王出到编号为now的马,田忌还剩下l-r之间的马(因为田忌一定是要么出最大的马,要么出最小的马)。 分类讨论,当田忌最大的马大于齐王,则一定拿下这场比赛 阅读全文
posted @ 2021-09-26 16:31 尹昱钦 阅读(249) 评论(1) 推荐(0)

上一页 1 2 3 4 5 6 7 8 ··· 18 下一页