自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Young_Zn_Cu

SCOIer 交流加Q:1649061710

原创 TO DO LIST

鉴于本人学习顺序比较杂乱,列一个blogblogblog监督自己练习部分 AGC Blue and red tree NOIP历年真题(看到我请督促我写blogblogblog) DFS基础题单(练手感+夯实基础) 提高难度的DFS题单(训练一下自己写暴力能力) 线段树题单 DP题单...

2020-08-01 14:41:04 25

原创 聚聚们的友链(欢迎互挂qwq

可爱的小姐姐淼淼

2020-04-10 10:11:26 154

原创 关于ZnCu

前言:这是咕了很久的一篇CSP2019CSP2019CSP2019总结,由于本人太菜+++这次发挥失常太严重,很久很久才走出这次比赛的阴影。AnywayAnywayAnyway我会在今年奋起直追,努力拼搏,不留遗憾 。这次CSP发挥的确实不好,除了当天考试状态外自己实力确实不够也是一个很大的问题。故总结这一个多月来的表现,力求下次CSP能高分省一。集训期间学法小结,得与失&学习方法反...

2020-01-05 00:10:51 195

原创 POJ2752 Seek the Name, Seek the Fame【KMP】

POJ2752 Seek the Name,Seek the FamePOJ2752\ Seek\ the\ Name, Seek\ the\ FamePOJ2752 Seek the Name,Seek the Fame【简要题意】给定一个字符串,从小到大输出sss中既是前缀又是后缀的子串长度【题解】KMPKMPKMP比较裸的题,考察对KMPKMPKMP里nxtnxtnxt数组的理解借用KMPKM

2020-08-01 15:50:21 16

原创 [NOI2001]食物链【并查集】

[NOI2001]食物链将同类,被吃,吃分为三个部分,每次新看到一组条件,就在根据题意先检查有没有已经矛盾的边,然后在不同的部分里对应连边维护,最后输出答案即可。重点是把不同的关系分为几个部分然后在这几个部分里做对应的操作,大大减小了代码和思维难度这种方法似乎还挺普遍的,看到有相互抑制关系的时候除了想拓扑排序也要想到分部分建立并查集求解。[来自洛谷题解评论区]通过建立333个数量为1−n1-n1−n的集合,分别表示AAA吃BBB,BBB吃CCC,CCC吃AAA,也就是说在不清楚xxx这个动物在哪一

2020-08-01 14:29:11 16

原创 [JSOI2008]星球大战 【反向建边】

传送门把摧毁改成修建然后反向用并查集判断是否联通这种反向建边思想还挺常见的#include <bits/stdc++.h>using namespace std;const int N=(int)2e5+60;const int inf=0x7fffffff;int n,m,k;struct node{int from,nxt,to;}edge[N];int tot,fir[N],b[N],fa[N],cnt=0,ans[N];bool broke[N];inline vo

2020-07-28 11:31:16 9

原创 拓扑排序-toposort

最近终于把这个坑填了⋯\cdots⋯什么是拓扑排序对一个有向无环图GGG进行拓扑排序,是将GGG中所有顶点排成一个线性序列,使得图中任意一对顶点uuu和vvv,若边(u,v)∈E(G)(u,v)∈E(G)(u,v)∈E(G),则uuu在线性序列中出现在vvv之前。拓扑排序的实现步骤在有向图中选一个没有前驱的顶点并且输出从图中删除所有和它有关的边)重复上述两步,直至所有顶点输出,或者当前图中不存在无前驱的顶点为止,后者代表我们的有向图是有环的,因此,也可以通过拓扑排序来判断一个图是否有环。

2020-07-25 14:54:49 29

原创 CF429B Working out

传送门SolSolSol:看题之后可以发现,就是在矩形内部找一个点,使得矩形的四个顶点到这里的值最大(最后值不包含这几个顶点的值)洛谷上的图 : )分别用dp1,dp2,dp3,dp4dp1,dp2,dp3,dp4dp1,dp2,dp3,dp4记录走到1,2,3,41,2,3,41,2,3,4的最大值,发现最后的最大值一定是A→CA \to CA→C横着走&&B→D\&\& B \to D&&B→D竖着走,或者A→CA \to CA→C竖着走&

2020-07-23 09:37:02 13

原创 Atcoder ABC 171 F

题意:给定一个字符串SSS,问插入kkk个字符后可以形成多少个不同的字符串,答案对109+710^9+7109+7取模SolSolSol:毕竟是ABC嘛,看完题解应该就懂了,主要说说咋想到的qwqqwqqwq首先观察样例所能得到的式子,发现对于oofoofoof插了五个字符,可以出现oofoo,oooof,ooofo⋯oofoo,oooof,ooofo \cdotsoofoo,oooof,ooofo⋯,那么会导致原串位置不唯一,这样我们就没法用普通插板法来做了,既然不可做的原因是因为位置不唯一,那

2020-07-23 08:27:40 23

原创 HDU5884 Sort【k叉哈夫曼树】

传送门【问题描述】小WWW有一个长度为nnn的非负整数数组aia_iai​和一个大于111的正整数kkk。你每次可以选不超过kkk个数,删掉这kkk个数然后往数组里加入这kkk个数的和,进行一次这样的操作的代价是这kkk个数的和。小WWW能很熟练的计算出合并成111个数需要的最小代价,现在他想问你,求最小的k使得合并成111个数的最小代价小于等于TTT。你输出的kkk要大于等于222。一开始并不知道这就是kkk叉哈夫曼树问题(概念百度),但是如果知道哈夫曼树的这就是一眼题了。自己yyyyyy

2020-07-22 16:09:29 21

原创 CF482A【简单模拟】

CF482ACF482ACF482A题意:构造一个n的排列,使将排列相邻两数相减取绝对值所得到的序列中刚好有k种值思路:最大最小值交替出现,构造完k种值后依次递增or递减构造即可一开始一直在想怎么贪心,以后做题要试着直接从本质入手CodeCodeCode...

2020-07-21 11:21:19 19

原创 20200716NOIP模拟测

T1【题目描述】有一个正整数序列AAA,AAA中含有NNN个正整数A1,A2,...,ANA_1 ,A_2 , ... , A_NA1​,A2​,...,AN​ 。现在依次执行以下QQQ个操作: BiCiB_i C_iBi​Ci​ (表示第iii个操作,将AAA中所有值为BiB_iBi​的元素替换为CiC_iCi​)当操作iii(1≤i≤Q1≤i≤Q1≤i≤Q)完成后,请你求出此时AAA中所有元素的和SiS_iSi​。一眼题,用桶记录每个数的个数,如果x−>yx->yx−>y

2020-07-21 11:15:51 20

原创 CF545C题解【贪心】

CF545C【贪心】一开始把数组开小了然后欢乐卡了一页评测,建议重读小学考虑贪心:第一棵树一定往左边倒,最后一棵树一定往右边倒,接下来考虑中间的树怎么倒最优。首先按xxx从小到大排序,对于一棵树如果能往左倒就往左倒,这样一定会使贡献+1+1+1,如果不能往左边倒就判断能不能往右边倒。一开始觉得这样会不会使右边的树没法倒从而使答案变劣,但仔细考虑,如果这棵树往右边倒,那么这棵树对答案的贡献一定+1+1+1,右边那棵树只考虑往左边倒的情况时该贡献可能不变可能−1-1−1,这样的话答案最多不会变更优,但

2020-07-21 10:26:00 22

原创 20200620-线段树基本操作

看到线段树就头大,码量题我板子都背不下来啊啊写到一半头要炸了(感冒太难受了)于是去摸了个鱼,感觉好点了才继续肝(大雾)线段树单点修改,区间最大值#include <bits/stdc++.h>#define int long longusing namespace std;const int N=(int)2e5+50;int n,m,a[N];inline int read(){ int cnt=0,f=1;char c=getchar(); while(!isdi

2020-06-20 16:42:34 37

原创 20200620 BIT学习小结

树状数组树状数组是一个查询和修改复杂度都为log(n)log(n)log(n)的数据结构,而且是一个在线的数据结构,支持随时修改某个元素的值,复杂度也为logloglog级别。不难发现,现在编号为iii的节点,c[i]表示的其实是[i−2k+1,i]c[i]表示的其实是[i-2^k+1,i]c[i]表示的其实是[i−2k+1,i]这个区间的和,即:c[i]=a[i−2k+1]+…+a[i]c[i]=a[i-2^k+1]+…+a[i]c[i]=a[i−2k+1]+…+a[i]。其中kkk是iii的二进

2020-06-20 12:14:41 56

原创 20200613 NOIP模拟测

每次都能咕一周才写博客咕哉咕哉T1【题目描述】给出NNN个整数A1,...,ANA_1,...,A_NA1​,...,AN​,请你计算A1×...×ANA_1×...×A_NA1​×...×AN​ 的值。如果计算结果超过101810^{18}1018,则输出−1-1−1。约束条件:2≤N≤1052≤N≤10^52≤N≤1050≤Ai≤10180≤Ai≤10^{18}0≤Ai≤1018输入的所有值都是整数。【SolSolSol】读入时判断是否有000,有000则一定为000。判断是否超过

2020-06-19 21:30:12 80

原创 20200606 NOIP模拟测

不得不说ATCATCATC的题真的考思路OrzOrzOrz,以后大概可以尝试用多种不同的角度看这些题说不定就能AAAT1【题目描述】在阿尔卑斯山上有N个天文台,编号分别为:1~N1~N1~N。这NNN个天文台的海拔高度分别为:H1,H2,……HNH_1,H_2,……H_NH1​,H2​,……HN​。有MMM条路分别连接两个不同的天文台,某条路i连接天文台Ai和Bi。如果从一个天文台AiA_iAi​出发通过一条路能到达与其相连的所有天文台(统称为AikA_{ik}Aik​),并且AiA_iAi​的

2020-06-12 22:05:09 58

原创 [APIO2015] T1巴厘岛的雕塑

题目传送门题目范围如果要求用long longlong\ longlong long,在左移的时候一定要写成1LL1LL1LL!题意巴厘岛的一条主干道上共有NNN座雕塑,依次编号为111到NNN。雕塑 iii的年龄为YiY_iYi​。政府想把这些雕塑分成恰好XXX组,要求每组不能为空,且每组雕塑的编号必须连续。每个雕塑必须属于某一组。分组方案需要考虑美观程度。计算方法如下:分别计算每组雕塑的年龄之和,然后将每一组的结果按位取或,就得到了该分组方案的美观值。求最小的美观值So

2020-05-08 19:32:05 41

原创 20200411 省选模拟T3 Dance

T3 dance CQOI2009【问题描述】 一次舞会有 n 个男孩和 n 个女孩。每首曲子开始时,所有男孩和女孩恰好配成 n 对跳交 谊舞。每个男孩都不会和同一个女孩跳两首(或更多)舞曲。 有一些男孩女孩相互喜欢,而其他相互不喜欢(不会“单向喜欢”)。每个男孩最多只愿 意和 k 个不喜欢的女孩跳舞,而每个女孩也最多只愿意和 k 个不喜欢的男孩跳舞。 给出每对男孩女孩是否相互喜欢的信息,舞会...

2020-04-11 16:31:54 30

原创 2020-4-6 NOIP模拟(kruskal,wsq二分,搜索,简单数学)

ZnCuZnCuZnCu的废话:为啥我每次遇到搜索就要炸啊呜呜 肯定是写少了awaawaawa 俺为啥每次都能在搜索炸掉(深刻反思ing+ing+ing+开始多刷题)不过NOIPNOIPNOIP和省选难度差距好大好大啊哭 反正模拟省选从来没有板子题 今天一道sbsbsb题一道板子题一道毒 瘤 搜 索毒\ 瘤\ 搜\ 索毒 瘤 搜 索絮...

2020-04-06 16:55:32 68

原创 20200328省选模拟

思路借鉴来源T1类似于赛道修建这道题一开始把,;, ;,;打错了从正解挂到12pts12pts12pts呵呵我真的想拿头调代码思路:因为是要最大化最小值,于是以111为下界n−1n-1n−1为上界二分kkk值,然后dfsdfsdfs判断是否合法。考虑如何dfsdfsdfs:递归uuu的所有儿子vvv,vvv会为uuu带来一条lenv+1len_v+1lenv​+1长度的边(111是uuu...

2020-03-28 16:56:06 54

原创 三维凸包

一些前置知识(鉴于博主没系统学过三维几何,若描述有错误欢迎提出)法向量:垂直于平面的直线所表示的向量为该平面的法向量(右手螺旋定则)求法:同一平面内任选两个向量做叉积,得到模长为面积的法向量。点到平面的距离:该点到平面上任意一点的向量与该平面法向量做点积(可以理解为平面上的投影思想)判断一个点DDD是否在该平面上:求法:在平面上任意找一个点,和该点构成向量,与法向量做点积判断是否为0...

2020-02-28 17:56:54 90

原创 [NOI2010]超级钢琴 前缀和 ST表 优先队列 贪心

P2048 [NOI2010]超级钢琴前缀和 ST表 优先队列 贪心贪心&\&&优先队列:每次选最优的子段,选kkk次就是我们所要的结果,用堆将解存进去,每次堆顶的元素就是最优解。前缀和:如果每次都计算当前子段区间的和显然时间复杂度爆炸,故联想到直接采用前缀和在O(1)O(1)O(1)时间内求出ST表:存储当前节点的l→rl\to rl→r区间内的最大值,注意因为查...

2020-02-17 23:49:21 27

原创 CSP-S2019

格雷码考场上以为以往都是考简单数论于是这道题一直在想转换成十进制有什么规律,后来发现没有规律手写几个分析一下规律即可,记得开unsigned long longunsigned\ long\ longunsigned long long#include <bits/stdc++.h>#define ull unsigned long lo...

2020-02-16 16:45:25 70

原创 2020-2-13NOIP模拟测

写在前面的话:我给自己跪下来顺带磕头求求自己考试先写暴力分。T2T2T2最低最低档暴力分好歹也有20pts20pts20pts吧,在本次考试除了我基本都AAA了T1T1T1 T3T3T3的情况下写了暴力分就是rk1rk1rk1了好吗虽然这个rk1没啥用还有就是要提升一下自己的做题速度 一开始看完题:T3T3T3最可做于是开开心心地去码T3T3T3,没想到错了个sb地方调了俩小时。然后开T1T1...

2020-02-13 17:07:11 128

原创 哈希

基本字符串哈希hash基本实现(计算公式)上一道模板题#include <bits/stdc++.h>#define int unsigned long longusing namespace std;const int N=1000000+100;const int h=37;char s1[N],s2[N];int apr[N],hash,val[N],s...

2020-02-12 00:07:50 43

原创 Codeforces1300(618Round Div2)

题目题解写在前面(牢骚&废话&一丢丢总结):不好好打场比赛都不知道自己到底有多菜.jpg.jpg.jpg第一次打CodeforcesCodeforcesCodeforces就掉RatingRatingRating祭一开始因为操作不熟和网站太慢,别人都快做完前两道题了才开始做,第一次提交的时候语言没调对还没反应过来愣是CECECE了三次估计刷新了OIOIOI界低级错误的s...

2020-02-10 21:58:35 93

原创 Graham算法

Graham算法一种凸包算法,扫描部分的时间复杂度为O(n)\mathcal{O}(n)O(n),总的时间复杂度O(nlogn)\mathcal{O}(nlogn)O(nlogn)原理:从点集中先找出一个最左下方的点,易证这个点肯定在凸包上,然后以这点为极点,将所有点根据与这点的极角进行排序,并且同时使用一个栈结构维护凸包上的点。按照极角序依次将当前点与栈顶的两个点作拐向判断:若右拐,则将当前...

2020-01-02 12:09:42 179

原创 二分图最大匹配(匈牙利算法)

注意每次搜索时一定要清空上次搜索标记每次二分图匹配是只从一边开始搜索,另一边在matchmatchmatch时已经走过了且不能连双向边#include <bits/stdc++.h>using namespace std;const int N=1000050;int n,m,e;int fir[N],to[N<<1],tot,w[N<<1],nx...

2019-11-15 20:06:36 98

原创 LCA

注意:DFSDFSDFS从根节点开始找根的时候是先把x,yx,yx,y跳到同一深度,所以比较depdepdep一定要加===第二次倍增是直接找LCALCALCA那个点,所以比较的不是depdepdep是直接比较fff,第二次倍增跳一定是从20→020\to020→0,不是20→120\to120→1。#include <bits/stdc++.h>using namesp...

2019-11-15 19:48:00 92

原创 2019-11-12CSP-S模拟测

这次考炸了,T1其实冷静画画图就可以看出来的,为什么没有看出来呢?每次都妄想能靠脑子直接看出答案,极其不会利用草稿纸,一定要好好反思,尝试着用各种角度看问题,各种方法在草稿纸上乱玩样例,这样才能够灵感乍现啊妄图直接靠眼睛看出答案我未免也太高估自己智商了hhT1注意到题目中给定的性质:按照给定的字符串建造一棵TrieTrieTrie树,然后按照任意一种dfsdfsdfs序输出,当前序列一定...

2019-11-13 20:09:28 119

原创 2019-11-11 CSP-S模拟测

T1T2T2本来暴力30pts愣是因为语文问题爆零,不过赛后总结大概也是对线段树本质了解的还不清楚吧TAT,前路漫漫,还要继续努力吖T3

2019-11-13 17:16:03 88

原创 2019-11-09CSP-S模拟测

T1P5322 [BJOI2019]排兵布阵背包问题直接对nnn的城堡进行处理,可以预处理出每个可以得分时需要的最少士兵数,因为排序过后后面能打完的前面也一定能打完得分,DPDPDP处理即可#include <bits/stdc++.h>using namespace std;const int N=105;int a[N][N],n,s,m;int need[N],d...

2019-11-11 08:15:15 29

原创 关于状态压缩DP的步骤总结

蒟蒻的个人理解,不保证正确,不保证完善位运算枚举每个当前题目中的状态, 枚举当前状态的每个分支状态,即[0/1][0/1][0/1]在或不在,预处理出每个状态的状态集合(即处理包含所有可到达的合法状态的状态集合)预处理出每个特殊状态的DP初值枚举所有状态,在当前状态下枚举能扩展到的合法集合,位运算判断当前点是否存在于此时枚举的合法状态中DP根据题意处理...

2019-11-08 22:03:29 25

原创 2019-11-08 CSP-S模拟测

T1本题前置知识:线性求逆元由题可得:a=P(X=−1)=(1−α)βa=P(X=-1)=(1-\alpha)\betaa=P(X=−1)=(1−α)βb=P(X=0)=(1−α)(1−β)+αβb=P(X=0)=(1-\alpha)(1-\beta)+\alpha\betab=P(X=0)=(1−α)(1−β)+αβc=P(X=1)=α(1−β)c=P(X=1)=\alpha(1-...

2019-11-08 21:08:21 34

原创 【模板】线段树2

P3373 【模板】线段树 2先贴个板子#include <bits/stdc++.h>#define int long longusing namespace std;const int N=100050;int n,m,mod,a[N],opr,x,y,k;inline int read(){ int cnt=0,f=1;char c=getchar(); whi...

2019-11-08 08:02:15 18

原创 NOIP2016 换教室

感觉这道题代码细节令人智熄D1T3换教室做过且仅做过的一道期望DP,感觉DP不是很难写,就是细节贼多还容易弄混(论36pts -> 100pts的惨痛经历)思路:设dp[i][j][0/1]dp[i][j][0/1]dp[i][j][0/1]表示:处理到了序列第iii个元素,使用了jjj次申请机会,当前序列申请还是不申请时(0:申请,1:不申请),按照题意走过的最小期望长度。于是可...

2019-11-07 20:31:29 27

原创 2019-11-5模拟测试

T1思路:判断御符能否被破除完①可以:计算破除完御符后还能剩多少伤害值②不行:直接计算不破御符时最大的伤害值理由:贪心思想,因为只破除御符不会对伤害值有贡献,所以不可能存在破了一部分的情况。最优破除御符方案:使用刚好能破除当前御符的兵符,保证留下的伤害值更大。最优只破兵符方案:进攻方:降序排序。防守方:升序排序。使最大的进攻方兵符去打最小的防守方御符代码实现:注意可能存在负数,处...

2019-11-07 08:44:39 35

原创 2019-11-2 CSP-S模拟测

T1(exgcd/ksm求乘法逆元)思路:看到x∗y∗z mod p =1x*y*z\ mod\ p\ =1x∗y∗z mod p =1,长得就像ax≡1 (mod p)ax \equiv 1\ (mod\ p)ax≡1 (mod p),于是联想到乘法逆元一看数据范围:对于所有测试点,保...

2019-11-06 21:57:19 41

原创 2019-11-6 CSP-S模拟测

今天的题,除了T2感觉都不是我可做的啊,这真“CSP”呢(算了算了等我以后变强了再来做吧,先丢在这)T1sol:T2sol:思路:1. 开一个栈来记录当前的节点,如果放进栈中的是一个右节点,那么就一直弹栈直到弹到合法的左节点为止,每次弹栈处理当前区间的l,rl,rl,r,相当于合并当前合法块为一个区间(此时是最小的合法区间),方便以后对每个合法区间建一棵树2. 如果当前区间...

2019-11-06 21:11:44 39

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