自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 单调栈

模板模板来自AcWing常见模型:找出每个数左边离它最近的比它大/小的数int tt = 0;for (int i = 1; i <= n; i ++ ){ while (tt && check(stk[tt], i)) tt -- ; stk[ ++ tt] = i;}题目:单调栈给定一个长度为N的整数数列,输出每个数左边第一个比它小的数...

2020-03-31 17:28:33 83

原创 栈和队列

模拟栈模板(先进后出)模板来自AcWing// tt表示栈顶int stk[N], tt = 0;// 向栈顶插入一个数stk[ ++ tt] = x;// 从栈顶弹出一个数tt -- ;// 栈顶的值stk[tt];// 判断栈是否为空if (tt > 0){}模拟队列(先进先出)模板来自AcWing// hh 表示队头,tt表示队尾int q...

2020-03-31 17:02:02 119

原创 双链表

模板模板来自AcWing// e[]表示节点的值,l[]表示节点的左指针,r[]表示节点的右指针,idx表示当前用到了哪个节点int e[N], l[N], r[N], idx;// 初始化void init(){ //0是左端点,1是右端点 r[0] = 1, l[1] = 0; idx = 2;}// 在节点a的右边插入一个数xvoid inser...

2020-03-31 14:13:30 93

原创 单链表

模板模板来自AcWing// head存储链表头,e[]存储节点的值,ne[]存储节点的next指针,idx表示当前用到了哪个节点int head, e[N], ne[N], idx;// 初始化void init(){ head = -1; idx = 0;}// 在链表头插入一个数avoid insert(int a){ e[idx] = a, ...

2020-03-31 13:44:24 72

原创 区间合并

模板模板来自AcWing// 将所有存在交集的区间合并void merge(vector<PII> &segs){ vector<PII> res; sort(segs.begin(), segs.end()); int st = -2e9, ed = -2e9; for (auto seg : segs) ...

2020-03-30 22:22:00 119

原创 区间和

模板模板来自AcWingvector<int> alls; // 存储所有待离散化的值sort(alls.begin(), alls.end()); // 将所有值排序alls.erase(unique(alls.begin(), alls.end()), alls.end()); // 去掉重复元素// 二分求出x对应的离散化的值int find(int x) //...

2020-03-30 21:49:24 1452 1

原创 位运算

模板模板来自AcWing求n的第k位数字: n >> k & 1返回n的最后一位1:lowbit(n) = n & -n二进制中1的个数给定一个长度为n的数列,请你求出数列中每个数的二进制表示中1的个数。输入格式第一行包含整数n。第二行包含n个整数,表示整个数列。输出格式共一行,包含n个整数,其中的第 i 个数表示数列中的第 i 个数的二进制表示中...

2020-03-30 20:19:10 75

原创 双指针算法

模板:模板来自AcWingfor (int i = 0, j = 0; i < n; i ++ ){ while (j < i && check(i, j)) j ++ ; // 具体问题的逻辑}常见问题分类: (1) 对于一个序列,用两个指针维护一段区间 (2) 对于两个序列,维护某种次序,比如归并排序中合并两个有序序列的操...

2020-03-30 17:34:18 80

原创 差分

模板模板来自AcWing一维差分给区间[l, r]中的每个数加上c:B[l] += c, B[r + 1] -= c二维差分给以(x1, y1)为左上角,(x2, y2)为右下角的子矩阵中的所有元素加上c:S[x1, y1] += c, S[x2 + 1, y1] -= c, S[x1, y2 + 1] -= c, S[x2 + 1, y2 + 1] += c题目:差分输入一...

2020-03-30 16:27:50 122

原创 HDU 5037 Frog

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5037题意:一只青蛙从0跳到m,最远能跳l,只能在石头上跳。给出一开始n个石头的位置,我们是上帝,能放无数个石头,我们的任务是找到一种放石头的方式使青蛙要跳最多下才能到达m。题记:这题关键在于要想到青蛙在l+1的距离下跳两次,这样青蛙能跳的距离最短。例如青蛙在0,一次能跳五格,我们把石头放在1、6...

2020-03-29 22:02:41 119

原创 HDU 4310 Hero

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4310题记:按照dps/hp来排序即可。#include<bits/stdc++.h>using namespace std;typedef long long ll;struct node{ double hp; double dps;};bool cmp(...

2020-03-29 21:22:24 104

原创 HDU 2037 今年暑假不AC

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2037题记:经典的贪心题目,按照每个节目的结束时间排序,先看结束时间最早的节目即可。#include<iostream>#include<algorithm>using namespace std;struct node{ int startt; in...

2020-03-29 21:18:54 79

原创 前缀和与子矩阵的和

一维前缀和S[i] = a[1] + a[2] + ... a[i]a[l] + ... + a[r] = S[r] - S[l - 1]二维前缀和S[i, j] = 第i行j列格子左上部分所有元素的和以(x1, y1)为左上角,(x2, y2)为右下角的子矩阵的和为:S[x2, y2] - S[x1 - 1, y2] - S[x2, y1 - 1] + S[x1 - 1, y1...

2020-03-28 21:56:58 141

原创 高精度除法

模板模板来自AcWing高精度除以低精度// A / b = C ... r, A >= 0, b > 0vector<int> div(vector<int> &A, int b, int &r){ vector<int> C; r = 0; for (int i = A.size() - 1; i...

2020-03-28 20:48:17 137

原创 高精度乘法

模板模板来自AcWing高精度乘以低精度:// C = A * b, A >= 0, b > 0vector<int> mul(vector<int> &A, int b){ vector<int> C; int t = 0; for (int i = 0; i < A.size() || t; i +...

2020-03-28 20:26:09 179 1

原创 高精度减法

模板:模板来自AcWing// C = A - B, 满足A >= B, A >= 0, B >= 0vector<int> sub(vector<int> &A, vector<int> &B){ vector<int> C; for (int i = 0, t = 0; i < A....

2020-03-28 17:22:07 108

原创 高精度加法

模板:模板来自AcWing// C = A + B, A >= 0, B >= 0vector<int> add(vector<int> &A, vector<int> &B){ if (A.size() < B.size()) return add(B, A); vector<int> C...

2020-03-28 16:21:06 83

原创 浮点数二分

模板:模板来自AcWingbool check(double x) {/* ... */} // 检查x是否满足某种性质double bsearch_3(double l, double r){ const double eps = 1e-6; // eps 表示精度,取决于题目对精度的要求 while (r - l > eps) { d...

2020-03-28 16:08:43 123

原创 整数二分

模板:模板来自AcWingbool check(int x) {/* ... */} // 检查x是否满足某种性质// 区间[l, r]被划分成[l, mid]和[mid + 1, r]时使用:int bsearch_1(int l, int r){ while (l < r) { int mid = l + r >> 1; ...

2020-03-28 16:05:58 216

原创 归并排序

归并排序模板模板来自AcWingvoid merge_sort(int q[], int l, int r){ if (l >= r) return; int mid = l + r >> 1; merge_sort(q, l, mid); merge_sort(q, mid + 1, r); int k = 0, i = l, ...

2020-03-28 14:36:23 73

原创 快速排序

快排模板模板来源:AcWingvoid quick_sort(int q[], int l, int r){ if (l >= r) return; int i = l - 1, j = r + 1, x = q[l + r >> 1]; while (i < j) { do i ++ ; while (q[i] &l...

2020-03-28 14:16:39 65

原创 Codeforces Round #605 (Div.3)

Codeforces Round #605 Div.3ABCDEFA题意:给出三个人的位置,每个人可以走一步,使每两个人之间的距离相加最小。题记:找出三个人的坐标的最大值和最小值,让最大值减去最小值减2再乘2即是答案,如果答案小于0则输出0。#include<bits/stdc++.h>using namespace std;int main(){ int t;...

2020-03-27 13:09:52 179

原创 HDU 2046 骨牌铺方格

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2046题记:一道递推题目。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e5+10;ll dp[55];int main(){ dp[0]=0,dp[1]=1,d...

2020-03-24 17:39:56 83

原创 HDU 2045 不容易系列之(3)—— LELE的RPG难题

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2045题记:先假设第一个数永远是1,那么最后一个数是非1的情况是有规律的,第i个格子是非1的情况是第i-1个格子的非1个数加上1的个数乘2。可得表达式a[i]=a[i-1]+(2i-1-a[i-1])*2,最后打表即可。#include<bits/stdc++.h>using nam...

2020-03-24 13:54:00 163

原创 HDU 2044 一只小蜜蜂...

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2044题记:简单递推,注意数组要开长整型,不然会WA。#include<bits/stdc++.h>using namespace std;long long a[60];int main(){ a[1]=1,a[0]=0; for(int i=2;i<=50...

2020-03-24 12:52:05 105

原创 HDU 2041 超级楼梯

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2041题记:简单递推,每个台阶可以由a[i]=a[i-1]+a[i-2]表示。#include<bits/stdc++.h>using namespace std;int a[60];int main(){ a[1]=1,a[0]=0; for(int i=2;i&...

2020-03-24 12:32:19 155

原创 HDU 2018 母牛的故事

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2018题记:一题简单的递推,对于4天以后的天数a[i]=a[i-1]+a[i-3]。根据式子打表即可。#include<bits/stdc++.h>using namespace std;int a[60];int main(){ a[1]=1,a[2]=2,a[3]=3;...

2020-03-24 12:21:25 78

原创 HDU 1257 最少拦截系统

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1257题记:这题可以用贪心法和LIS来做。贪心:#include<bits/stdc++.h>using namespace std;const int N=1e5+10;const int INF=0x3f3f3f3f;int a[N];int main(){ in...

2020-03-23 17:08:04 86

原创 HDU 1159 Common Subsequence

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159题记:最简单的最长公共子序列问题,用dp解决即可。#include<bits/stdc++.h>using namespace std;const int N=1e6+10;int dp[1005][1005];string s1,s2;int LCS(){ m...

2020-03-21 18:25:28 91

原创 HDU 1024 Max Sum Plus Plus

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1024#include<bits/stdc++.h>using namespace std;const int N=1e6+10;int dp1[N],dp2[N],a[N];const int INF=0x3f3f3f3f;int main(){ int n,m; ...

2020-03-21 17:47:57 79

原创 Codeforces Round #611 (Div. 3)

Codeforces Round #611 Div. 3ABCDEFA题记:水题。#include<bits/stdc++.h>using namespace std;int main(){ int t; cin>>t; while(t--){ int h,m; cin>>h>>m;...

2020-03-21 13:30:14 128

原创 hdu 1175 连连看

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1175题记:dfs+剪枝#include<bits/stdc++.h>using namespace std;const int N=1005;int arr[N][N];int vis[N][N];int a,b,c,d,n,m;bool flag;int dir[4][...

2020-03-18 17:52:33 113

原创 hdu 2553 N皇后问题

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2553题记:典型的dfs题目。#include<bits/stdc++.h>using namespace std;int n;int tot=0;int col[12];bool check(int c,int r){ for(int i=0;i<r;i++)...

2020-03-18 16:57:26 91

原创 hdu 1401 Solitaire

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1401题记:一道双向bfs的题,用vis记录棋子的位置,将开始的棋子bfs四步,结束的棋子bfs四步,如果有开始和结束棋子位置一样的情况输出YES,否则输出NO。#include<bits/stdc++.h>using namespace std;char vis[8][8][8][...

2020-03-18 14:52:53 88

原创 洛谷 P1305 新二叉树

题目链接:https://www.luogu.com.cn/problem/P1305题记:先建立一个数,记录下根节点,之后前序遍历即可。#include<bits/stdc++.h>using namespace std;struct node{//建树 int l=-1,r=-1;};node node[30];bool vis[30];//记录那些字母出现...

2020-03-17 21:23:08 96

原创 HDU 4585 Shaolin

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4585题记:用map存下和尚的等级和id,之后用迭代器找出最等级最接近的两个然后比较即可。#include<bits/stdc++.h>using namespace std;map<int,int>mp;int main(){ int n; while...

2020-03-17 16:14:01 180

原创 HDU 3999 The order of a Tree

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3999题记:建立一个二叉搜索树,然后用前序遍历即可。#include<bits/stdc++.h>using namespace std;const int N=1e5+5;int post[N];int k;struct node{//建树 int value; ...

2020-03-17 13:32:34 102

原创 Codeforces Round #627 (Div. 3)

Codeforces Round #627 Div. 3ABCDEF题目链接:https://codeforces.com/contest/1324A#include<bits/stdc++.h>using namespace std;const int N=1e5+5;int main(){ int t; cin>>t; while(t...

2020-03-16 16:05:53 98

原创 codeforces 1217 A.Creating a Character

题目链接:https://codeforces.com/problemset/problem/1217/A题记:注意d和ans要防止负数的出现即可。#include<bits/stdc++.h>using namespace std;const int N=1e5+5;int main(){ int t; cin>>t; while(t-...

2020-03-16 15:33:13 147

原创 gym 101306

gym 101306ABCDEFG原题链接:https://codeforces.com/gym/101306A题记:用马拉车算法找出字符串里最长的回文串,用数组center存下每个答案的中心位置,r记录半径,之后输出即可。#include<bits/stdc++.h>using namespace std;const int N=1e5+5;int center[N];...

2020-03-16 14:43:59 247

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除