自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2022-08-26 QLUACM暑假训练5 I题题解

中位数和平均数都有01串的性质,所以我们可以先二分答案mid,找到有哪些数大于等于mid设为1,哪些数小于mid设为-1,然后找哪些区间有至少n/2个正数即转变成了和大于等于0的区间有多少个,那么自然想到要用前缀和处理一下,这样可以o1内查询一段区间的和。然后就转变成了一个经典的二位偏序的题目——即x...

2022-08-31 17:30:07 299

原创 2022.7.14训练赛 DEF题解

D E F

2022-07-14 12:34:38 257

原创 L - Absolute Minima(2022.7.7训练赛)

对顶堆

2022-07-07 21:59:26 280

原创 Codeforces Round #803 (Div. 2) D题题解

交互

2022-06-29 16:36:41 298

原创 CF-C. Watto and Mechanism-字符串哈希

利用哈希处理字符串从而达到避免内存爆炸的问题,利用二分实现快速查找。

2022-06-02 09:47:41 159

原创 莫队-CF-617-E

Problem - E - Codeforces 莫队板题,唯一难点是知道如何处理区间异或 题目中说是区间,则可以转化为前缀和的形式。 令Si=a1 xor a2 xor .... xor ai; 则 al xor a(l+1) xor a(l+2) ... xor ar = Sr xor S(l-1) 然后每次询问就可转化为在 [ l-1,r ] 之间有多少个Si 和 Sj (i<=j) 使得Si xor Sj = k; 又因为Si xor Sj = k 即 Si xor k = Sj

2022-05-23 22:11:45 129

原创 CF-B. Modulo Sum

Problem - 577B - Codeforces 鸽巢原理,如果n大于1000的时候则说明必然会使加上一个数和再加上另一个数后模完m是相同的,那么就一定存在一种情况是模m等于0的,所以当n大于1000时必定有解,否则n<=1000只需要跑背包求方案数即可。 #include<bits/stdc++.h> #define PII pair<int,int> #define PLL pair<long long,long long> #define fi f

2022-05-17 21:00:17 136

原创 CF-B. Swaps

Problem - 1573B - Codeforces 1.因为a和b两个数列没有相同的元素,所以必须让a的第一个元素的字典序小于b的第一个元素的字典序。 2.将b进行桶排序,然后从大到小进行取min,这样的话,就代表>=这个数的数出现最早的下标是多少。 3.i-1是a数组往前移动的步数,b[a[i]+1]-1是比a[i]大的数移动到最前面的最小步数 #include<bits/stdc++.h> using namespace std; const int N=2e5+10;

2022-05-17 15:45:43 142

原创 树上两点距离为k的点对个数-D. Distance in Tree

Problem - 161D - Codeforces经典树形dp #include<bits/stdc++.h> using namespace std; const int N=2e3+10; long long f[N][N];//以i为根的子树中离i距离为j的点的个数 int n,k; vector<int> ve[N]; long long res=0; void dfs(int u,int fa){ f[u][0]=1;//自身距离...

2022-05-15 03:56:28 471

原创 求矩形内以(0,0)为左上坐标第k大/小子矩形面积大小

求以(0,0)为左上坐标第k大子矩形面积大小A-An Easy Problem_GDCPC广东省大学生程序设计竞赛(正式赛) (nowcoder.com) 时间复杂度: #include<bits/stdc++.h> using namespace std; #define fi first #define se second int main(){ long long n,m,k; scanf("%lld %lld %lld",&n,&m,&k.

2022-05-15 03:30:22 327

原创 CF-478/C Table Decorations

Problem - 478C - Codeforces 经典二杀一问题 #include<bits/stdc++.h> using namespace std; int main(){ long long s[3]={}; for(int i=0;i<3;i++) scanf("%lld",&s[i]); sort(s,s+3); if(s[2]>=(s[0]+s[1])*2){ printf("%lld\n",s[0]+s[1]); } else{

2022-05-15 01:46:19 157

原创 CF380C Sereja and Brackets

tr数组存四个值,L,R,left,right; left代表[L,R]区间内不合法的左括号数,right代表[L,R]区间内不合法的右括号数。 叶节点如果是'(',则left=1,right=1; 叶节点如果是')',则left=0,right=1; void pushup(int u){ tr[u].left=tr[u<<1].left+tr[u<<1|1].left-min(tr[u<<1].left,tr[u<<1|1].right); t

2022-05-13 01:24:31 170

原创 P1982 小朋友的数字

P1982 [NOIP2013 普及组] 小朋友的数字 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这里感谢题解区老哥的题解,这里附上他这道题题解的链接题解 P1982 【小朋友的数字】 - Kaizyn 的博客 - 洛谷博客 (luogu.com.cn) (折磨我一个小时的题) #include<bits/stdc++.h> using namespace std; const int N=1e6+10; const long long LNF=0x3f3f3f3

2022-05-12 13:24:54 528

原创 求一段 [ l , r ] 区间小于 m 的元素个数-划分树做法

#include<bits/stdc++.h> using namespace std; const int N=1e5+10; int a,b,c; int sorted[N]; struct node{ int num[N]; int toleft[N]; }; node s[32]; int n,m; void build(int l,int r,int deep){ if(l==r) return ; int mid=(l+r)>>1; int key=sort.

2022-05-11 14:20:04 103

原创 P1137 旅行计划 - 拓扑排序+dp

P1137 旅行计划 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<bits/stdc++.h> using namespace std; const int N=2e5+10; int n,m,tot; int h[N],e[N],ne[N],d[N]; int top[N],idx=0; int f[N]; void add(int a,int b){ e[tot]=b; ne[tot]=h[a]; h[a]=tot++; } void top

2022-05-11 03:20:16 248

原创 最大子段和问题

FIrst:无限制最大子段和问题 时间复杂度: #include<bits/stdc++.h> using namespace std; const int N=1e5+10; long long f[N]; int main(){ int n; scanf("%d",&n); long long res=-0x3f3f3f3f3f3f3f3f; for(int i=1;i<=n;i++){ long long x; scanf("%lld",&x);

2022-05-09 18:54:28 443

原创 数据结构-划分树

划分树:解决静态区间第K值问题 #include<bits/stdc++.h> using namespace std; const int N=200005,M=20; int n,m; #define mid ((le+ri)>>1) #define lson le,mid,dep+1 #define rson mid+1,ri,dep+1 struct Node{ int num[N],toleft[N]; }; Node t[M]; int sorted[N]; voi

2022-05-08 20:16:22 385

原创 金明的预算方案-有依赖的背包问题

P1064 [NOIP2006 提高组] 金明的预算方案 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<bits/stdc++.h> using namespace std; const int N=2e5+10; int n,m; int f[N],g[N],v[N],w[N],team[N]; int main(){ scanf("%d %d",&n,&m); for(int i=1;i<=m;i++){ int a,

2022-05-03 23:16:17 144

原创 河科院第一届程序设计比赛-G-最强对手矩阵

G-最强对手矩阵_“九韶杯”河科院程序设计协会第一届程序设计竞赛 (nowcoder.com) 如果利用二维前缀和的话则需要枚举上下左右边界,是n^2*m^2的时间复杂度 而如果利用一维前缀和,然后枚举左右端点,行数枚举的话则是n^2*m的时间复杂度 然后防止出现n过大的情况要把n和m在n大的情况下调换 #include<bits/stdc++.h> using namespace std; const int INF=0x3f3f3f3f; int main(){ int

2022-04-26 14:05:21 98

原创 河科院第一届程序设计比赛-H-友谊纽带

H-友谊纽带_“九韶杯”河科院程序设计协会第一届程序设计竞赛 (nowcoder.com) 先用并查集确定是否可以一定有解,然后再用bfs找到最短最大距离 #include<bits/stdc++.h> using namespace std; const int N=1e5+10; #define PII pair<int,int> #define fi first #define se second int n,m; vector<int> ve[N]; int

2022-04-26 13:32:01 149

原创 河科院第一届程序设计比赛-D-数列重组

D-数列重组_“九韶杯”河科院程序设计协会第一届程序设计竞赛 (nowcoder.com) #include<bits/stdc++.h> using namespace std; int s[11]={-0x3f3f3f3f,2,3,3,3,5,6,6,7,7,8}; int main(){ long long res=0; do{ int flag=0,cnt=0; for(int i=2;i<=10;i++){

2022-04-26 02:49:30 98

原创 kuangbin打卡-搜索-棋盘问题

1114. 棋盘问题 - AcWing题库 简单dfs,精髓在于记录已使用多少棋子,然后分两种方式进行递归,实现可以跳跃行来枚举分布种类。 #include<bits/stdc++.h> using namespace std; const int N=10; int n,m; long long res; int f[N]; char g[N][N]; void dfs(int u,int k){ if(k==m){ res++; return

2022-04-22 12:36:24 216

原创 小A的第一份工作

#include<bits/stdc++.h> using namespace std; #define PLL pair<long long,long long> #define fi first #define se second int main() { int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); stack<P.

2022-04-22 01:32:30 87

原创 小A的出差

#include<bits/stdc++.h> using namespace std; #define PII pair<int,int> #define fi first #define se second const int N=1e6+10; const int mod=1e9+7; const int INF=0x3f3f3f3f; int n,m,k,start,ed; long long x; vector<PII> ve[N]; long long go.

2022-04-22 01:26:05 200

原创 P3078 [USACO13MAR]Poker Hands S

P3078 [USACO13MAR]Poker Hands S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<bits/stdc++.h> using namespace std; const int N=1e5+10; int n; long long s[N]; //该题可以看作是填坑,填左边的坑的时候顺便把右边的坑填了 //如果把左边的坑填了右边的坑还没有填完那就需要花费额外的代价把右边的坑填了 int main(){ scanf("%d",&a

2022-04-21 01:34:57 577

原创 P1007 独木桥

P1007 独木桥 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<bits/stdc++.h> using namespace std; int main(){ int d,n; cin>>d>>n; int maxx=0,minn=0; for(int i=1;i<=n;i++){ int x; scanf("%d",&x); maxx=max(maxx,max(d-x+1,x)); mi

2022-04-20 17:53:55 101

原创 长沙学院-G-小圆前辈的数组

G-小圆前辈的数组_长沙学院2021校赛(重现赛) (nowcoder.com) #include<bits/stdc++.h> using namespace std; const int N=1e5+10; long long s[N]; vector<long long> ve[N]; int main(){ long long n,k,z; scanf("%lld %lld %lld",&n,&k,&z); for(lon

2022-04-18 11:44:51 79

原创 P1892 [BOI2003]团伙

P1892 [BOI2003]团伙 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<bits/stdc++.h> using namespace std; const int N=5e3+10; int p[N+N]; int find(int x){ if(p[x]!=x) return p[x]=find(p[x]); return p[x]; } //若a和b是敌人,b和c是敌人,将a与b+n相连,b+n与c相连,则实现a和c相连 //用二倍数

2022-04-17 20:17:01 276

原创 P2835 刻录光盘

P2835 刻录光盘 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<bits/stdc++.h> using namespace std; const int N=1e3+10; int p[N],s[N]; int num[N][N]; int find(int x){ //找到x的根并实现路径压缩 if(p[x]!=x) return p[x]=find(p[x]); return p[x]; } int main(){ int n; .

2022-04-17 18:35:42 490

空空如也

空空如也

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

TA关注的人

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