随笔分类 - 算法竞赛 / 题解
Accepted!
    
摘要:练习题题解 第1题 连通块 DP CF 1051 D 题目链接 给定一个 \(2\) 行 \(n\) 列的矩阵 \(a\) ,你可以在矩阵中填数,任选第 \(i\) 行第 \(j\) 列,可以填 \(1\) 或 \(0\) ,即可以使 \(a[i,j]=0\) 或使 \(a[i,j]=1\) ,填满
        阅读全文
                
摘要:洛谷题单 【数据结构2-1】二叉堆与树状数组 P1878 舞蹈课 优先队列+模拟 题目链接 每次要取出最小值,考虑用优先队列维护。维护出跳舞的两个人的 \(id\) 以及技术相差值。 然后每次取出队头元素,判断左右两边的是否可以构成新的舞伴加入优先队列即可。 注意:每个人只能和一个人组成舞伴,所以要
        阅读全文
                
摘要:洛谷题单 算法2-3 字符串 KMP模板 使用前保证字符串下标从 \(1\) 开始。e.g. s="?"+s; template<class Type> struct KMP{ vector<int> init(Type s){ int n=(int)s.size()-1; vector<int> 
        阅读全文
                
摘要:洛谷题单 算法2-3 分治与倍增 P2345 [USACO04OPEN] MooFest G 树状数组 题目链接 思路: 让我们求所有两两之间 \(max(v_i,v_j)\times |x_i-x_j|\) 的值之和。 经典思路,考虑每个数对答案的贡献。对于每个数 \(v\),会产生所有比 \(v
        阅读全文
                
摘要:Atcoder Beginner Contest 380 题解 (A-G) 题目链接 A - 123233 #include<bits/stdc++.h> using namespace std; using i64=long long; void Showball(){ string s; cin
        阅读全文
                
摘要:Atcoder Beginner Contest 379 (A-F) 题目链接 A - Cyclic #include<bits/stdc++.h> using namespace std; using i64=long long; void Showball(){ char a,b,c; cin>
        阅读全文
                
摘要:洛谷题单 算法2-2 常见优化技巧 单调栈 单调栈最经典的应用,就是在一个数列里寻找距离元素最近的比其大/小的元素位置。 模板题,寻找每个元素右边第一个比它大的元素下标。 stack<int> s; for(int i=n;i>=1;i--){ while(s.size()&&a[s.top()]<
        阅读全文
                
摘要:CF 577 B. Modulo Sum 鸽巢原理/01背包 题目链接 思路: 每个数可选可不选,经典的01背包问题,但是数据范围过大,因为要找可行解即可,考虑去找满足题意的子数组(子数组是特殊的子序列)。就变成一个经典的前缀和问题。只需要找到前缀和数组中存在两个相等的值,那么满足条件。由于需要取模
        阅读全文
                
摘要:Codeforces Round 946 (Div. 3) 题解 A. Phone Desktop 贪心 优先考虑放 \(2\times2\) 的,然后剩下的补 \(1\times 1\) 的。注意需要上取整即可。 #include<bits/stdc++.h> using namespace st
        阅读全文
                
摘要:2024牛客寒假算法基础集训营2 补题 A.Tokitsukaze and Bracelet 签到 模拟 参考代码: #include<bits/stdc++.h> using namespace std; #define ff first #define ss second #define eb 
        阅读全文
                
摘要:Atcoder Beginner Contest 330 题解
        阅读全文
                

浙公网安备 33010602011771号