自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 zzuli2022新生周赛第5场题解

zzuli2022第五场新生周赛题解

2022-11-20 16:59:06 1350 2

原创 【Codeforces Round #708 (Div. 2) 】A~D题题解

D题1750分,E1500,然而D题通过率比E2还低…差两分钟没把D写完,早看到E的话就去写E1了…A. Meximization#include <bits/stdc++.h>using namespace std;const int mod = 1e9 + 7;const int N = 2e5 + 5;int n, m, x, y, z, k, t, p;int a[N], Num[N];int solve(){ cin >> n; i.

2021-03-18 01:50:02 384 1

原创 【Codeforces Round #641 (Div. 2) 】E. Orac and Game of Life

考虑只有一个询问的情况。把第一个回合就开始波动的点称为波动点。询问 i,j,k时,我们先找到距离坐标(i,j)最近的波动点的距离,如果k小于这个距离,那么在第k回合波动还没有传到(i,j),(i,j)的颜色不改变。如果k大于这个距离,那么在波动传到(i,j)后,(i,j)的颜色每回合改变一次。对于多个询问,将所有初始的波动点放入队列que中,整体宽搜,记录距离。#include<bits/stdc++.h>#define rep(i,b) for(int i=1;i<=b;i++

2020-05-12 23:58:59 325 1

原创 【Codeforces Round #641 (Div. 2) 】D - Orac and Medians

我们用“感染”来描述一个中位数赋值给一个区间的过程。①易发现如果元素k的左右任意有一个>=k的数时,k就可以感染整个数组。②如果任意一个区间可以被感染成一个>=k的数时,k元素的左侧或右侧一定会被感染成>=k的数。利用结论①即可知k可感染整个数组。#include<bits/stdc++.h>#define rep(i,b) for(int i=1;i<=b;i++)#define drep(i,b) for(int i=b;i>=1;i--)#defi

2020-05-12 23:52:16 211

原创 【Codeforces Round #641 (Div. 2) 】C.Orac and LCM

枚举质因子,对于一个因子,如果至少有n-1个元素都含有它,那么任意一对元素的lcm都包含它,即最后的gcd中包含它。#include<bits/stdc++.h>#define rep(i,b) for(int i=1;i<=b;i++)#define drep(i,b) for(int i=b;i>=1;i--)#define Rep(i,a,b) for(int i=a;i<=b;i++)#define pr pair<int,int>#define

2020-05-12 23:46:55 102

原创 【Codeforces Round #641 (Div. 2) 】B - Orac and Models

B - Orac and Models#include<bits/stdc++.h>#define rep(i,b) for(int i=1;i<=b;i++)#define drep(i,b) for(int i=b;i>=1;i--)#define Rep(i,a,b) for(int i=a;i<=b;i++)#define pr pair<int,int>#define ff first#define ss second#define int

2020-05-12 23:42:45 181

原创 【NC204267】牛牛染颜色

题目链接:https://ac.nowcoder.com/acm/problem/204267树形dp毒瘤题,卡vector和cin#include<bits/stdc++.h>#define rep(i,n) for(int i=1;i<=n;i++)#define drep(i,n) for(int i=n;i;i--)using namespace std; ...

2020-04-24 23:25:41 241

原创 【NC204088】病毒扩散

题目链接:https://ac.nowcoder.com/acm/problem/204088dp动态规划首先考虑在一条直线上传播的情况,容易推出:F[t][n]=F[t-1][n]+F[t-1][n-1]由于在不同路径上的传播情况可以迭加,所以最终结果即为:ans=(0,0)到(x,y)路径数 * F[t][n]路径数的dp公式也易推出:dp[x][y]=dp[x-1][y]+d...

2020-04-24 23:22:19 273

原创 【NC205213】牛妹的游戏

题目链接:https://ac.nowcoder.com/acm/problem/205213通过在4点情况下加点可以发现样例所给情况是所有5个点的图中唯一一种可以输出no的情况。同理,尝试往这个图上加一个点,可以发现无论怎么加最终都会形成三角回路(蓝方或红方)。由此得到点数大于5时一定输出yes。#include<bits/stdc++.h>#define rep(i,n)...

2020-04-24 23:14:12 151

原创 Codeforces Round #636 (Div. 3) 全题解

题目链接:A.CandiesB.Balanced ArrayC.Alternating SubsequenceD.Constant Palindrome SumE.Weights DistributingF.Restore the Permutation by Sorted SegmentsA.Candies思路:简单枚举即可AC代码:void solve() { ...

2020-04-22 15:38:22 309

原创 【CSU - 2325】How many LOL?

题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=2325#include<bits/stdc++.h>#define rep(i,n) for(int i=1;i<=n;i++)using namespace std;typedef long long ll;const int mod=1e9+7;co...

2020-04-21 17:13:33 123

原创 【Codeforces Round #634 (Div. 3) 】F. Robots on a Grid

题目链接:https://codeforces.com/contest/1335/problem/F题目大意:机器人按轨道运行,在运行中机器人间不能发生冲撞。问最多能摆放多少机器人,和在最大摆放的前提下能占据多少黑块。个人思路:找到每个连通块,在每个回路(根据题意所有回路一定是简单回路)上选一个点进行宽搜,在同一层上被搜到的点中只要有一个黑块就可以使占据黑块的总量加一。#include...

2020-04-14 18:40:46 311

原创 【Gym - 102500A】 Average Rank

写完非常有成就感的一道题。思路稍微有些复杂,不太能讲清楚,关键点有两个:1.当某个选手的分数改变时,只有原本和他分数相同的人的排名会改变。2.累计的方式,除了符合我们思维的sum【i】=sum【i-1】+a【i】之外,还有一种方式是,sum+=(a【i】-a【i-1】)*(m-i+1) ,自行理解#include<bits/stdc++.h>#define rep(i,n) ...

2020-04-01 12:21:10 1407

原创 【Gym-102500F】Firetrucks Are Red

牢记!并查集的合并是fa[father(u)]=father(v)!不是fa[u]=father(v)!oi赛打成这个样子蓝桥杯就是去抬人的#include<bits/stdc++.h>#define rep(i,n) for(int i=1;i<=n;i++)using namespace std;typedef long long ll;const int N...

2020-03-30 21:52:44 917

原创 【Gym - 102500G】Gnoll Hypothesis

比赛时带入的第三个参数代错了,样例居然还都能正常通过…下次一定要先在纸上完整把递推式写下来再敲代码#include<bits/stdc++.h>#define rep(i,n) for(int i=1;i<=n;i++)using namespace std;typedef long long ll;const int N=400005;ll n,m,k,x,y...

2020-03-30 21:12:16 687

原创 【zoj-3962】Seven Segment Display

比赛时推了一个巨麻烦的公式,结束后才想到可以利用前缀和思想简化。#include<bits/stdc++.h>#define rep(i,n) for(int i=1;i<=n;i++)#define fi first#define se second#define pr pair<int,int>using namespace std;typedef...

2020-03-26 21:53:11 124

原创 【FZU-2303】Mind control

个人思路:按照题意,我们先限定最高的编号,然后在这个编号下的编号中选出m-1个数。逐一选择每个最高编号,可以发现这种取法可以涵盖所有取法可能,猜想得到下面结论:画杨辉三角验证发现成立:按照题意,求数学期望,逐步化简,中间再次套用①公式,得到o(1)的结论:得到结论后求个逆元就可以了。#include<iostream>#define rep(i,n) for(in...

2020-03-25 15:06:10 143

原创 【FZU-2297】Number theory

#include<iostream>#define rep(i,n) for(int i=1;i<=n;i++)#define ls i<<1#define mid (l+r)/2using namespace std;const int N=200005;int n,m,t,L,R,pos,x,c[N*4];char ch;void update...

2020-03-24 17:27:19 130

原创 zzuli19级第四次选拔赛第二场题解

恭喜sj大佬在摘得新生赛桂冠后又摘得19级首个AK撒花~简单讲下思路:前五道都算签到题b题:只需默认开始为0,减到负值的操作忽略掉就行d题:容易看出n可以一直除以重量得到不为0的结果n/2次,输出答案n/2+1即可,手算几个数找规律也能出来e题:题面翻译得很简单,很好理解int main(){ cin>>n; for(int i=1;i<=n;i++){ c...

2019-12-24 21:03:42 257

原创 hdu2665

主席树模板题:http://acm.hdu.edu.cn/showproblem.php?pid=2665#include<bits/stdc++.h>#define ls ls_[i]#define rs rs_[i]#define mid (l+r)/2using namespace std;const int NN=100100;int n,m,k,x,y,z,q...

2019-12-24 19:48:48 99

原创 P3810 三维偏序(陌上花开)

还是这道题,不过是树套树解法。权值线段树套平衡树用了pbds库里封装好的平衡树,手打splay的话要二百行了。。。pbds库是真的香,打出来比cdq分治还短。。三维偏序问题的总体思路都是转化为二维偏序问题来想,cdq分治是用分治的方法保证了每次查询时前两维是有序的,(右区间严格大于左区间,二维压缩为一维),再用权值线段树维护第三维。而树套树则是保证第一微有序后,用第三维作第二维的值,再用权值...

2019-12-24 19:48:32 172

原创 P3810 三维偏序(陌上花开)

既然之前写这道题的时候提到了一下动态开点的写法,那就来更一下线段树套线段树(其实是权值树状数组套权值线段树)的写法本质上和套平衡树的写法是一个思路,只不过平衡树更省空间就是了。。。像这一题我一直开到2e5的40倍才过,真是丧mei心miao病wu狂bi#include<bits/stdc++.h>#define ls lc[o]#define rs rc[o]#define...

2019-12-24 19:48:29 172

原创 P3380 二逼平衡树

#include<bits/stdc++.h>#include<ext/pb_ds/assoc_container.hpp>#include<ext/pb_ds/tree_policy.hpp>#define ls lc[o]#define rs rc[o]#define mp_ make_pair#define Pr pair<int,int...

2019-12-24 19:48:12 141

原创 P2633 Count on a tree

一道水题水一天,玄学玄学对拍输出数据都对。。结果一直报re。。最后发现居然是因为一个没有返回值的函数没有用void类型,格式不规范开o2居然会报re?这神仙bug我真是吐血三升以后再遇到找不到的bug还是尽早重写吧。。。思路很清晰的一题:主席树,儿子继承父亲,可以发现每个节点当前版本的权值线段树维护的就是从这一节点到根节点的权值。于是只要倍增找到x,y两节点的lca,就可以得到:...

2019-12-20 21:07:11 108

原创 P3332 [ZJOI2013]K大数查询

树套树的区间更新,区间查询区间更新用的是差分的做法实现的,理论时间复杂度应该是最快的?不明白为什么有大佬能跑到几百ms,好像用的是整体二分。。。详解以后有时间单独贴,理解起来不是很容易差分做法:#include<bits/stdc++.h>#define ls ls_[i]#define rs rs_[i]#define mid (l+r)/2using nam...

2019-12-10 16:15:55 113

原创 【图论】基础算法及模板

一)单源最短路问题测试: http://www.51nod.com/Challenge/Problem.html#problemId=2673dijkstraint dis[NN],vis[NN];struct qnode{ int v,dst; qnode(){} qnode(int vv,int dd){ v=vv;dst=dd; }...

2019-12-04 11:37:10 413

原创 P3224 [HNOI2012]永无乡

题目链接:https://www.luogu.com.cn/problem/P3224这题的平衡树写法,实测不开o2的情况下权值线段树快些,开了o2后最后一个大数据平衡树更快#include<bits/stdc++.h>#include<ext/pb_ds/assoc_container.hpp>#include<ext/pb_ds/tree_policy.h...

2019-12-04 07:56:39 104

原创 P3224 [HNOI2012]永无乡

平衡树的一道题目,也可以用动态开点的权值线段树来做,毕竟好打,理解也不难对于每一座岛开一棵动态开点的线段树,连接岛屿时,将两个连通块合并,顺便合并线段树吐血的是第一遍写一直re,重写一遍直接过了#include<bits/stdc++.h>#define ls lc[o]#define rs rc[o]#define mid (l+r)/2using namespace ...

2019-12-03 22:27:33 90

原创 【cdq分治】P3810 三维偏序(陌上花开)

CDQ分治的模板题暴力一些用树套树也可以写#include<bits/stdc++.h>#define mid (l+r)/2using namespace std;typedef long long ll;const int NN=400100;const int inf=0x3f3f3f3f;ll n,m,k,x,y,z,q,W,T,N,cnt,tmp,dst,c...

2019-12-03 08:25:31 93

原创 【倍增】【st表模板】洛谷P3865

提起动态区间问题,我们首先想到的肯定是线段树但是对于静态的区间问题来说,可能有些算法是更加高hao效xie的~今天来介绍一种叫st表的数据结构,了解一下它的倍增思想-------------挖个坑,以后补哈~-------------#include<bits/stdc++.h>using namespace std;typedef long long ll;const...

2019-12-01 14:44:52 81

原创 Codeforces Round #603 (Div. 2) E(线段树区间更新)

题目链接:http://codeforces.com/contest/1263/problem/E题目大意是给你一个光标,输入命令控制移动或改变当前位置的符号,对于每个命令输出当前括号的是否匹配,如果匹配则输出最大的嵌套层数。样例:input:11(RaRbR)L)L(output:-1 -1 -1 -1 -1 -1 1 1 -1 -1 2可以将左括号视为+1,右括号视为-1,...

2019-11-30 13:56:10 158 1

原创 【模板】P1967 货车运输(最小生成树+树上lca)

题目描述A 国有 nn 座城市,编号从 11 到 nn,城市之间有 mm 条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有 qq 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。输入格式第一行有两个用一个空格隔开的整数 n,mn,m,表示 AA 国有 nn 座城市和 mm 条道路。接下来 mm 行每行三个整数 x, y, zx,y,z,每两个整数之间用一个空格隔开,表示从 xx 号城市到 yy 号城市有一条限重为 zz 的道路。注意: x \n

2019-11-29 19:42:35 227

原创 【模板】树链剖分

树链剖分测试:测试:洛谷:P2590 [ZJOI2008]树的统计#include<bits/stdc++.h>#define ls i<<1#define rs i<<1|1#define mp_ make_pair#define Pr pair<int,int>#define mid (l+r)/2#define X tree[...

2019-11-29 17:13:53 112

空空如也

空空如也

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

TA关注的人

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