摘要:
.Dashboard - Codeforces Round 898 (Div. 4) - Codeforces 1.Problem - G - Codeforces这一题我们首先进行分类讨论,因为情况很多 第一种情况当首尾存在一个B的情况时,我们可以吃掉所有的A,这个时候只需要计算出A的数量就可以 阅读全文
摘要:
1.树的搜索的板子题。每次修改的时候在子树根节点标记,并且向下传递dfs即可 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define endl '\n' 4 #define ll long long 5 #define cy cout < 阅读全文
摘要:
1.acwing 1057 闫氏DP分析法状态表示fi,j,kfi,j,k—集合: 考虑前 i 天的股票,第 i 天的 决策 是 k,且完成的 完整交易数 为 j 的方案 状态表示fi,j,kfi,j,k—属性: 方案的总利润 最大MAX 状态计算fi,j,kfi,j,k: fi,j,0=max(f 阅读全文
摘要:
1.信息学奥赛一本通(C++版)在线评测系统 (ssoier.cn) 1283登山 根据题意,该题的图形为单峰的序列,从左至右先递增再递减,我们可以依次枚举峰值 然后再分别计算左右两个子序列的长度 1 #include<bits/stdc++.h> 2 using namespace std; 3 阅读全文
摘要:
1.vector数组从尾部插入,尾部删除。相关用法代码如下: 1 //1.尾部插入及删除数字 2 vec2.push_back(1); //尾部插入元素 3 vec2.pop_back() //删除尾部元素 4 5 //2.使用下标访问元素, 6 cout << vec2[0] << endl; / 阅读全文
摘要:
1.循环右移,老套路了,直接开2n数组 然后利用树状数组进行区间求和和单点修改,每次减去之前以及出现过的值 Problem - E - Codeforces 1 #include<bits/stdc++.h> 2 using namespace std; 3 4 const int N = 1e6 阅读全文
摘要:
1.双指针暴力超时,优化方案 Problem - D - Codeforces 当数组中只存在1和2的值的时候我们可以考虑用二分去优化,我们可以找到数组中最后一个1的值,前面都是1和2的话 我们可以通过最后一个1去灵活地凑出 第一个数到最后一个1的数的和中间的任意一个值(划重点) 当然我们要尽可能凑 阅读全文
摘要:
1.稠密图用邻接矩阵来存 朴素版dijkstra 算法 acwing 849 1 #include<bits/stdc++.h> 2 using namespace std; 3 4 const int N = 510; 5 int n,m; 6 int dis[N]; //每个点到起点的最短距离( 阅读全文
摘要:
1. 1 /如何手写一个堆?完全二叉树 5个操作 2 //1. 插入一个数 heap[ ++ size] = x; up(size); 3 //2. 求集合中的最小值 heap[1] 4 //3. 删除最小值 heap[1] = heap[size]; size -- ;down(1); 5 //4 阅读全文
摘要:
用于字符串的插入和查询 1.acwing835 1 #include<bits/stdc++.h> 2 using namespace std; 3 4 const int N = 100010; 5 int son[N][26]; //trie树中每个点的所有儿子 6 int cnt[N],idx 阅读全文