自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 multiset--P1168 中位数

P1168 中位数 multiset保证数据可重、有序。 一个迭代器始终指向中位数 #include<iostream> #include<cstdio> #include<string> #include<cmath> #include<cstring> #include<algorithm> #include<map> #include<set> #include<queue> #include&

2021-09-24 21:54:22 238

原创 拓扑排序--Kitchen Plates

J. Kitchen Plates 找入度为0的点,使与其连接的点都入度-1。 #include<iostream> #include<cstdio> #include<string> #include<cmath> #include<cstring> #include<algorithm> #include<map> #include<queue> #include<vector> using na

2021-09-17 00:07:43 94

原创 单调栈--Jumping Buildings

参考: 序列 3,4,2,6,4,5,2,3: 找出左边第一个比他大的值的下标 如果当前值比栈顶元素要大:弹栈 如果当前值比栈顶元素要小:压栈 综合来说: 就是先把不合法的弹栈,然后必然要压栈。 //sta[]记录下标 for(int i=n;i>=1;i--) { while(tp&&a[sta[tp]]<=a[i]) tp--; if(tp==0) ans[i]=0; else ans[i]=sta[tp]; sta[++tp]=i; } ...

2021-09-15 21:48:52 72

原创 分块,单调栈--Water Balance

E. Water Balance 类似于单调栈的思想,分块巧妙 sum数组记录每一段的平均值,l数组记录每一段的长度 p每次加着走。 因为后面的sum[]还会更新,所以每次合并区间是更改的p-1 #include<iostream> #include<cstdio> #include<string> #include<cmath> #include<cstring> #include<algorithm> #include<map

2021-09-15 11:23:07 48

原创 【逆元,快速幂】子段乘积

111≤kkk ≤nnn≤ 2∗1052 * 10^52∗105 0 ≤ aiaiai < 998244353998244353998244353 前缀积,统计0的个数 #include<iostream> #include<cstdio> #include<string> #include<cmath> #include<cstring> #include<algorithm> #include<map> #i..

2021-09-11 00:36:13 37

原创 【欧拉筛】有趣的数字

题目 #include<iostream> #include<cstdio> #include<string> #include<cmath> #include<cstring> #include<algorithm> #include<map> #include<queue> #include<vector> using namespace std; #define ll long long #de

2021-09-10 23:13:32 38

原创 【排列】 Jury Meeting

C. Jury Meeting 容易搞错数字含义。 1.最大的个数大于1:全部排列就是答案 2.(1不成立,即只有一个最大的)不存在比最大的小1的:0 3.(1,2不成立):排列组合,其实正面做也不难。 #include<iostream> #include<cstdio> #include<string> #include<cmath> #include<cstring> #include<algorithm> #include&lt

2021-09-10 21:52:46 60

原创 (SG)Fibonacci again and again

题目 题意:三堆石子,两人轮流,每次取f[ ]={1,2,3,5,8…}(斐波那契)。 就SG函数。 #include<iostream> #include<cstdio> #include<string> #include<cmath> #include<cstring> #include<algorithm> #include<map> #include<queue> #include<vector&g

2021-09-08 17:39:26 38

原创 string,STL

C. Obtain The String 字符串太长,考虑′a′'a'′a′~′z′'z'′z′ 肯定要保存下每个字符在sss里的所有位置 一对多:vectorvectorvector #include<iostream> #include<cstdio> #include<string> #include<cmath> #include<cstring> #include<algorithm> #include<map>

2021-09-06 17:50:39 47

原创 cf-string,math

C. Carrying Conundrum 分奇偶看 #include<iostream> #include<cstdio> #include<string> #include<cmath> #include<cstring> #include<algorithm> #include<map> #include<vector> using namespace std; #define ll long long #

2021-09-06 16:27:18 58

原创 01字符串

B 题意:给出一个01字符串s,将它无限重复,求有几个前缀和为x的前缀(0则+1,1则-1) 进行+1,-1的操作,最后的值肯定是从最小的值一个个过渡到最大的值 1.题中给出:无限个则为-1,前提肯定是能满足x的,那么即整个串为0,串的前缀又符合为x。 2.满足x的:即x=num*()+Min~Max。 3.否则不满足x,即为0。 注意:空前缀只有在x=0时才有贡献 #include<iostream> #include<cstdio> #include<string>

2021-09-05 00:16:15 225

原创 ccpc网络赛

Command Sequence 题意:给出一个方向序列,按四个方向走,求有多少个子序列保证走完子序列位置不变。 坐标如果用pairpairpair来存,就相当于一个值。记录每个点在下一次到达之前到过的次数,相加 #include<iostream> #include<cstdio> #include<string> #include<cmath> #include<cstring> #include<algorithm> #incl.

2021-08-30 11:45:29 183

原创 2021暑假HDU7

Smzzl with Greedy Snake 贪心在当前吃完的地方直接直线+转弯+直线的方式吃掉下一个 #include<iostream> #include<cstdio> #include<string> #include<cmath> #include<cstring> #include<algorithm> #include<map> #include<vector> using namespace s

2021-08-17 23:46:36 93

原创 2021暑假HDU6

Yes, Prime Minister 参考 #include<iostream> #include<cstdio> #include<string> #include<cmath> #include<cstring> #include<algorithm> #include<map> #include<vector> using namespace std; #define ll long long #defi

2021-08-17 23:41:56 68

原创 2021牛客暑假10

H.War of Inazuma (Easy Version) 一个新知识:__builtin_popcount(i)&1 #include<bits/stdc++.h> using namespace std; int main(){ int n; scanf("%d", &n); for(int i = 1; i <= (1<<n); i++) //[0,2^n) printf("%d",__builtin_popcount(i)&1);/

2021-08-17 23:30:57 65

原创 Codeforces Round #738 (Div. 2)

C. Mocha and Hiking 别忽略了n+1这个点 #include<iostream> #include<cstdio> #include<string> #include<cmath> #include<cstring> #include<algorithm> #include<map> #include<vector> using namespace std; #define ll long lo

2021-08-17 20:24:15 37

原创 Codeforces Round #737 (Div. 2)

B. Moamen and k-subarrays 对比数组和之前的不同,结构体。 #include<iostream> #include<cstdio> #include<string> #include<cmath> #include<cstring> #include<algorithm> #include<map> #include<vector> using namespace std; #define

2021-08-12 11:15:35 56

原创 牛客暑假7

xay loves or 注意y不能为0,要减去满足条件的0 #include<iostream> #include<cstdio> #include<string> #include<cmath> #include<cstring> #include<algorithm> #include<map> #include<vector> using namespace std; #define ll long lo

2021-08-08 18:00:36 60

原创 ~~~合集

Polycarp and Coins 尽量相等,就先两张一起减,差了就补。

2021-08-04 17:19:30 77 2

原创 hdu第五场

VC Is All You Need 题意:nnn个点,每个点可以是红、蓝颜色之一(共有2n2^{n}2n种情况),如果k−1k-1k−1维的超平面可以将所有情况下的红和蓝分开,则输出yesyesyes,否则输出nonono 对于k−1=k-1=k−1=二维的超平面,可以证明n最多为三,且保证为不共线,对于任何一种情况,才能通过移动超平面使得点的划分满足要求。以此类推 #include<iostream> #include<cstdio> #include<string>

2021-08-04 16:36:19 80

原创 2021暑假牛客多校4

Inverse Pair 题意:给出一个有序的全排列,每个元素可以+1,也可以不加,求更新后序列的最少的逆序列对个数。 先一组一组找逆序对,把逆序对中第二个+1,然后树状数组求逆序对。 #include<iostream> #include<string> #include<cstring> #include<algorithm> #include<map> #include<vector> using namespace std; #

2021-08-02 01:17:37 84

原创 2021暑假牛客多校3

Black and white 题意:计算出矩阵元素的值,规定在2*2的矩阵中有三个被涂黑,则第四个自动被涂黑。求涂黑完整个矩阵花费的最小值。 矩阵的值是由(i,j)决定的,而A()的值由前一个A()决定。 a=(a* a* b+a*c+d)%p; ...

2021-07-27 22:14:38 90

原创 I love exam

题意:n个学科,还剩t天,有m种复习材料,求在最多能挂p科的情况下的最大分数 科目-分数-天数用vector来存。两次背包,一次对单个科目进行背包,然后对所有科目背包。 #include<iostream> #include<string> #include<cstring> #include<algorithm> #include<map> #include<vector> using namespace std; #define l

2021-07-25 20:03:02 166

原创 KD-Graph

题意:将无向图的顶点分为kkk个集合,满足: 1.1.1.不同集合任意两点路径中最大值大于DDD(((边权小于等于DDD的两点一定在同一集合里))) 2.2.2.同一集合任意两点,至少存在一条路径中最大值小于等于DDD(((这两点除去路径值大于DDD的,任然是连通的,根据111,即为同一集合))) 题目即求:边权为w[i]w[i]w[i],当w[i]w[i]w[i]<=<=<=DDD时,就认为这两点在同一集合中,求最小的DDD,使顶点恰好被分为kkk个集合。 #include<ios

2021-07-25 00:05:32 116

原创 Maximal submatrix

题目大意:给定一个矩阵,求一个最大面积的子矩阵,保证这个子矩阵的每一列都是非递减的 思路:一个dp数组存入每个点对应的列直到该点的最长的非递减个数,如题目中从111到2∗32*32∗3个数的dp数组对应为:1,1,1,2,2,1。最后遍历每一行,取最大的连续相等的dp数组个数*dp[i]的值,与m相比即可 #include<bits/stdc++.h> using namespace std; int dp[2222][2222]; int a[2222][2222]; const int in

2021-07-23 20:10:02 123

空空如也

空空如也

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

TA关注的人

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