随笔分类 - OI/ACM题解
摘要:Educational Codeforces Round 33 (Rated for Div. 2) 提交记录 https://codeforces.com/contest/893/status D 为了尽可能防止钱数 ,所以设置一个下界 来判断是否有解:也就是每次必要充钱(就是当
阅读全文
摘要:AtCoder Beginner Contest 192 D 注意到只有一位的时候多少进制都一样,方便起见先判掉。 剩下的都是进制越大值越大,考虑二分: 对于当前进制 ,从低位开始计算当前的值,如果发现比限制大了就返回 false,注意到二分的 上限是 ,也就是计
阅读全文
摘要:牛客练习赛100 https://ac.nowcoder.com/acm/contest/11251 简要地写一下 A-E 的解答。 A-D 为了减少篇幅没有放头文件等东西,可以到 E 题去取。 A 范围不大,直接枚举来找即可。 int main(){ int a, b, n; cin>>a>>b>
阅读全文
摘要:传送门: https://codeforces.com/contest/987 A 模拟,开个 map。 int main(){ map<char, string> w; w['p']="Power", w['g']="Time", w['b']="Space", w['o']="Soul", w[
阅读全文
摘要:这题括号多余的情况好恶心 orz,以及负数的情况也增加了这题的难度。 分析 首先,解决一般的中缀表达式转后缀表达式问题: 这里的运算符包括 +,-,*,/,^,当然,扩大运算符包含的集合的时候我们也可以类似推广。 考虑用一个答案栈 res 以及运算符栈 ops 来操作。 遇到数字的时候,将它丢入 r
阅读全文
摘要:这题的思想还是很有意思的~ 分析 考虑将读入的数处理成 pair 数组,第一个属性代表读入的值,第二个属性代表下标。 然后将 pair 数组对值升序排序,可以发现,如果想要 pair 连续的一段出现在同一个双端队列中,那么下标一定是先递减再递增(像山谷一样)(当然,单调这种退化的形式也算)。 为什么
阅读全文
摘要:传送门:https://www.acwing.com/solution/content/82014/ 分析 假如没有染色顺序的约束,那么最佳决策当然是先染权值大的点(本质上就是排序不等式)。 然而现在它有约束,但我们可以保证的一点是:当树上最大的点 的父节点 被染色的时候,立
阅读全文
摘要:A 直接 用结论搞出来即可,但赛时发现范围很小就直接模拟了(注意到机器人在撞到上面和左面的墙并发生变速之前一定能够清除,只需要模拟撞下面、右面的墙) int main(){ int T; cin>>T; while(T--){ int n, m, sx, sy, tx, ty; cin
阅读全文
摘要:传送门: https://codeforces.com/contest/1325 A 很简单的构造,输出 即可。 int main(){ int T; cin>>T; while(T--){ int n; cin>>n; cout<<1<<' '<<n-1<<endl; } retu
阅读全文
摘要:Codeforces Round #549 (Div. 1) 传送门: https://codeforces.com/contest/1142 A 分类讨论。 我们记出发点为 ,走一步后(距离为 )到达的点为 。 我们根据 的位置分成四种()情况:
阅读全文
摘要:这份 dp 题单的最后几题好难 orz。 前面的题比较简单,所以我会选取一些题来讲,其它的直接看代码理解吧 qwq。 传送门: https://atcoder.jp/contests/dp 全部 AC 代码: https://atcoder.jp/contests/dp/submissions?f.
阅读全文
摘要:传送门:https://codeforces.com/contest/1405 A 将序列翻转输出即可。 #pragma GCC optimize("O3") #include<bits/stdc++.h> using namespace std; #define endl '\n' #define
阅读全文
摘要:A 保证乘积不为 ,所以要将所有 加 ,然后看看变换后的数列和是否为 ,如果是再加一个 即可。 #pragma GCC optimize("O3") #include<bits/stdc++.h> using namespace std; #define endl
阅读全文
摘要:这题难度评得是不是太低了 qwq,它在 CF 上的过题人数甚至不到两千。 分析 我们记读入的数组为 w[]。 我的思路是从左到右枚举位置 ,然后找 最左边的点 使得对于 有 ,类似地找到 \(i
阅读全文
摘要:传送门: https://www.luogu.com.cn/problem/UVA11992 蓝书(训练指南)的线段树例题。 分析 这题在思维上并不复杂,是线段树的常见操作。 需要注意的地方主要是标记优先级: 这里我像蓝书一样记增加标记为 ,赋值标记记为 。 当遇到赋
阅读全文
摘要:这两天在 cf 做了若干道双指针的题目,不过 cf 对双指针这个标签的题目分类似乎有点迷。。。很多和双指针关系感觉不是很大。 在我看来,双指针的核心在于决策单调,因为单调性的存在,可以减小解空间,从而降低时间复杂度。 这里选了一些思想比较典型的题目记录一下。 例题 1: 传送门:https://co
阅读全文
摘要:传送门:https://codeforces.com/contest/1277 A 求一下和 相同位数时有多少个是合法的,记为 ,答案为 。 我写的很丑 qwq。 #pragma GCC optimize("O3") #include<bits/stdc+
阅读全文
摘要:传送门: https://vjudge.net/problem/UVALive-3905 分析 将每个点进出矩形的时间的左右区间 处理出来,这样就可以在一维的时间轴做扫描法了。 细节&技巧: 注意到在矩形边界的点不计入贡献,因此处理出来的时间区间均为开区间,在维护贡献 \(cn
阅读全文
摘要:传送门:https://codeforces.com/contest/1549 A int main(){ int T; cin>>T; while(T--){ int x; cin>>x; cout<<2<<' '<<x-1<<endl; } return 0; } B 贪心,能直走就直走,因为是
阅读全文