- 博客(46)
- 收藏
- 关注
原创 About Antimony
大家好呀我又回来了!!!高考炸了,现在冲电子神(科)技大学的珠峰计划AFO后路线偏移了一点点,想过走强基学物理学,但高考裂开还有个人兴趣等等还是让我决定学计算机总之就是回来啦,重操旧业第一次是这样写我自己的:兴趣挺多OI音乐法语科幻(还有其他好多好多。。。学长又帅又强头发浓密的dzyo哥哥(我菜我认不到那么多人)同学们fsyo金钩钩冯巨giaohr傻鸡sjyyrZnCuNDMZ_verjungigo_64(高考697巨神)联系方式:Q 3268044712博客园...
2020-10-25 21:14:48 227
原创 [校内模拟][Kruscal重构树][线段树合并] 201031 NOIP T3 Garden
题意一张图,点有颜色,边有边权,查询从一个点开始,每次经过边权不大于某值的边,求经过的颜色种经过次数最多且最小的30pts暴力这种值最多且最小的问题,最近写线段树合并写多了就看着很熟但是我不会kruscal重构树,就只写了O(n2)O(n^2)O(n2)的丑陋代码30pts#define FILE(x) freopen(x".in","r",stdin);freopen(x".out","w",stdout);#include<bits/stdc++.h>using namesp
2020-10-31 16:20:25 142
原创 [校内模拟][树形DP] 201031 NOIP T1 BST
题意已知一个二叉搜索树,求依次插入而形成这颗树的序列数量正解建树,手玩发现答案与子树大小有关,可以DP记答案(以uuu为根的子树的序列数)为fuf_ufu手玩发现答案与子树大小有关考虑转移发现两子树合并其实就是子树的序列合并,两棵子树的序列不能变子树的序列有fsf_sfs种,子树的序列合起来要填到sizu−1siz_u-1sizu−1个空位上(−1-1−1是因为根节点一定在第一个)考虑左子树,应该选sizssiz_ssizs个位置放,组合数所以转移:fu=flchfrch(si
2020-10-31 14:32:57 115
原创 [线段树合并] 线段树合并:从入门到精通 之 刷题
文章目录入门T1 [USACO17JAN]Promotion Counting PT2 Lomsat gelral入门My BlogT1 [USACO17JAN]Promotion Counting PPortkey尴尬第一,忘记空间:动态开点*20第二,数组是从小到大拍的,也就是1小于n,而答案要统计大于p[u]的数量#include<bits/stdc++.h>using namespace std;#define in Read()int in{ int i=0,f
2020-10-30 21:48:57 187
原创 [Debug]C++ cout/cerr
好东西!更深入的用法我就不做探究了,但是下面这个用法感觉挺强大的使用freopencout输入到文件里cerr输入到标准输出里signed main(){ freopen("1.out","w",stdout); for(int i=1;i<=100;++i){ if(i&1) cout<<i<<endl; else cerr<<i<<endl; }}...
2020-10-30 20:19:54 191
原创 [校内模拟][最大生成树] 201030 NOIP T1
TA题意kkk轮操作,每次删除尽量多的边删除,若有多种方案,选择边权和最大的,要求删除边中不存在环正解考场上不敢往这方面想????一眼一个最大生成树边权和最大和边尽量多是平行条件,互不影响有点可持久化的感觉,但是不是考虑分层并查集,层为kkk再一层中一条边被删掉了,更高层中两端点一定不会相连每次找到最后一个相连的层,在更高一层中相连,这一条边就会在这一层中被删除(语文不好qwq,这个层就是这么个东西大家自行体会吧)#include<bits/stdc++.h>using
2020-10-30 16:11:26 116
原创 [校内模拟][思维题/全逻辑] 201030 NOIP T2
TB题意n×nn\times nn×n的黑白棋盘,可以将一行的颜色全部刷到一列上,问将整个棋盘变黑的最少操作次数正解被绕晕了????考虑白色ccc记录有白色的列数,注意到如果一行不全黑这个值不会变(显然)如果有一行变为全黑,那么再花费ccc代价即可将整张图变黑于是考虑将一行变黑的最快办法如果第rrr列有一个黑格,则通过一堆操作可以使第rrr行变为黑色,这个操作次数为rrr行白色个数那么求出每行最小的白格个数#include<bits/stdc++.h>using na
2020-10-30 15:40:30 141
原创 [线段树合并] 线段树合并:从入门到精通 之 入门
文章目录基操T1 板/[Vani有约会]雨天的尾巴 /【模板】线段树合并基操T1 板/[Vani有约会]雨天的尾巴 /【模板】线段树合并Portkey多次给树上路径上的点加一个数,求每个节点上加得最多的数差分,然后加回来普通差分:维护一个值即可现在:合并一个数组,使用线段树合并自己查出来70行少打了一个+=✌️就很板#include<bits/stdc++.h>using namespace std;#define in Read()int in{ int i=0,
2020-10-29 16:47:15 212
原创 [莫队] 莫队七例
文章目录基本思想T1 小Z的袜子T2 小B的询问T3 Gty的二逼妹子序列T4 [AHOI2013]作业T5 [HNOI2016]序列题意题解T6 曼哈顿交易基本思想离线暴力区间左端点分块T1 小Z的袜子portkeyprintf("%lld/%lld\n",q[i].A/d,q[i].B/d);把斜杠杠打反就很淦#include<bits/stdc++.h>using namespace std;#define in Read()#define int long long
2020-10-29 15:31:42 135
原创 [分块] 上帝造题的七分钟2 / 花神游历各国
上帝造题的七分钟2 / 花神游历各国Portkey区间开方(见Block5)毒瘤题,竟然输入数据会出现l>rl>rl>r#include<bits/stdc++.h>using namespace std;#define in Read()#define int long longint in{ int i=0,f=1;char ch=0; while(!isdigit(ch)&&ch!='-') ch=getchar(); if(ch==
2020-10-29 08:00:06 142
原创 [二维树状数组][二维差分] 上帝造题的七分钟
就很优秀上帝造题的七分钟二维树状数组板题差分→\to→树状数组二维差分→\to→二维树状数组题意二维数组,区块修改,区块查询类比于一维数组区间修改区间查询题解一维差分数组于前缀和的转化关系:sn=∑i=1nai=∑i=1n∑j=1idj=∑i=1n(n−i+1)dis_n=\sum_{i=1}^na_i=\sum_{i=1}^n\sum_{j=1}^id_j=\sum_{i=1}^n(n-i+1)d_isn=i=1∑nai=i=1∑nj=1∑idj=i=1∑n(n−i+
2020-10-28 21:15:38 252
原创 [分块] 双倍经验/蒲公英
蒲公英求最小众数蒲公英掉紫了????黑色经验-1n≤4e4,ai≤1e9n\le 4e4,a_i\le 1e9n≤4e4,ai≤1e9,离散化竟然不带修,多美好的世界预处理si,js_{i,j}si,j表示第iii块中jjj的出现次数pi,jp_{i,j}pi,j表示第iii块到第jjj块的众数那么[l,r][l,r][l,r]的众数为整块众数和散装中数的并集,统计这些数个数即可用桶统计,pot[i]≤2n+1pot[i]\le 2\sqrt n+1pot[i]≤2n+1整块类
2020-10-28 20:19:16 132
原创 [校内模拟][最短路] k长最短简单路 201028 NOIP/暴力打得比标程好
T3 C题意给出无向图,nnn点mmm边,求从111到nnn经过kkk条边的简单最短路简单最短路定义为无重边,无重点路径min(n,m,k)≤5\min(n,m,k)\le 5min(n,m,k)≤5暴力比较优秀的79pts暴力#include<bits/stdc++.h>using namespace std;#define in Read()int Read(){ int i=0,f=1;char ch=0; while(!isdigit(ch)&&
2020-10-28 19:07:34 178
原创 [思维题][校内模拟] 201028 NOIP T1
T1 A题意给出一些棋子的位置,对于每一个棋子,可以左移一格或两格,前提是目标位置上无棋子移出棋盘(即坐标≤0\le 0≤0)则记为挂掉,问挂掉的顺序有多少种正解观察发现有如下的情况,棋子挂掉的顺序是任意的[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2m2WJ5X3-1603874684272)(C:\Users\am\AppData\Roaming\Typora\typora-user-images\image-20201028162744488.png)]
2020-10-28 16:45:43 109
原创 [校内模拟][转图论] 201028 NOIP B题
T2 B题意有一个由a,b,c,d,ea,b,c,d,ea,b,c,d,e个1,0,1,0,11,0,1,0,11,0,1,0,1依次拼接而成的0/1串给出一些区间,一个操作可以将一个区间取反,且花费为区间长度求使原串变为全111串的最小花费,如果不存在方案,输出−1-1−1正解考场上想到正解,没有用奇奇怪怪的方法但是没有打long long????注意到每个区间最多使用一次(使用偶数次不变)然后区间相减(叠加)的操作就感觉和图论特别相似[外链图片转存失败,源站可能有防盗链机制,建议将图
2020-10-28 14:58:29 125
原创 [分块] 分块练习九例
LOJ 6277~6285T1 Block1区间加,单点查#include<bits/stdc++.h>using namespace std;#define in Read()int in{ int i=0,f=1;char ch=0; while(!isdigit(ch)&&ch!='-') ch=getchar(); if(ch=='-') ch=getchar(),f=-1; while(isdigit(ch)) i=(i<<3)+(i&l
2020-10-28 14:41:02 247
原创 [组合数学][校内模拟] 201027 NOIP T3 Walk
T3 Walk有环考虑减去环记flf_lfl为长lll的、可能自交的环的个数,有转移:fl=∑i=1⌊l2⌋(li)(l−ii)(l−2il−2i2)f_l=\sum_{i=1}^{\lfloor\frac{l}{2}\rfloor}\binom{l}{i}\binom{l-i}{i}\binom{l-2i}{\frac{l-2i}{2}}fl=i=1∑⌊2l⌋(il)(il−i)(2l−2il−2i)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img
2020-10-27 20:35:30 134
原创 [校内模拟][树形DP] 201027 NOIP T1 cut
T1 Cut树形DPqwq冯巨的代码最好懂:记fuf_ufu为以uuu为根子树的答案,即链剖下去最多≥k\ge k≥k的连通块个数记cntcntcnt为大小≥k\ge k≥k的字数个数,转移见图#include<bits/stdc++.h>using namespace std;#define in Read()int in{ int i=0,f=1;char ch=0; while(!isdigit(ch)&&ch!='-') ch=getchar();
2020-10-27 18:47:45 113
原创 [校内模拟] 201027 NOIP Practice T2 Clockwork 众人皆WA我独A(划去)
T2 Clockwork快乐题!就我一个正解????两个序列ai,bia_i,b_iai,bi,模4意义下对al,ra_{l,r}al,r加某数,对答案贡献为该数,最小化使两序列相同的答案显然需要相减(mod4)\pmod 4(mod4)区间操作考虑差分目标使差分数组全0于是统计正数/负数之和(两个和都一样),即∑[di>0]di\sum[d_i>0]d_i∑[di>0]di显然这样不是最优的,于是考虑下表:lr+1→lr+1ans1−33∣1−1−22−32∣
2020-10-27 16:44:10 122
原创 [图论][STL][分层图] 小技巧练习
T1 Ostring题意给出字符串,要求实现操作:翻转在队首或队尾插入字符正解双端队列deque<char>q记录反转奇偶性rev^=1T2 不同字符个数题意给出字符串,要求实现操作:更改询问区间不同字母个数正解线段树树状数组,加一维tre[26][N]set内部有序(红黑树)set支持删除操作,lower_bound查询第一个>=l的数的位置,如果<=r则有这种字符T3 Subway题意一个图,每条边有颜色求最小1到n经过不同
2020-10-26 17:05:44 286
原创 [校内模拟][双指针] 201023 NOIP Practice T3 Kth
T3题意定义Fk(S)F_k(S)Fk(S)表示序列SSS前kkk大数之和求∑l,rFk(Sl,r)\sum_{l,r}F_k(S_{l,r})∑l,rFk(Sl,r)题解又是转化思想考虑每一个数的贡献双指针维护区间端点细枝末节:统计完了贡献要抹除这个数注意lll是跑到贡献区间外面去了的,lv+rv=k+2lv+rv=k+2lv+rv=k+2时说明rrr跳出去了,那么lll往回跳一个每个点贡献的区间个数为左边端点的取法乘上右边端点的取法先来一波65pts/O(n2k)O(n^
2020-10-25 22:47:30 118
原创 [校内模拟][数论] NOIP Practice T1 数论谜题
T1题意求∑l,rω(∏i∈[l,r]ai)\sum_{l,r}\omega(\prod_{i\in [l,r]}a_i)l,r∑ω(i∈[l,r]∏ai)其中ω(x)\omega(x)ω(x)为xxx的质因子个数正解转化/换个角度每个区间某个质数第一次出现时,对区间有一个贡献#include<bits/stdc++.h>using namespace std;#define in Read()int in{ int i=0,f=1;char ch=0; wh
2020-10-24 15:05:40 165
原创 [可持久Trie] 可持久Trie板子
最大异或和可持久trie板题实现两个操作:在序列aaa末尾添加一个数xxx,并且序列长度增大111询问求一个位置p∈[l,r]p\in [l,r]p∈[l,r],最大化(⨁pnai)⊕x(\bigoplus_p^na_i)\oplus x(⨁pnai)⊕x,其中xxx为读入数考虑前缀和,记⨁1iai=si\bigoplus_1^ia_i=s_i⨁1iai=si,记val=sn⊕xval=s_n\oplus xval=sn⊕x现目标最大化ap⊕val,p∈[l−1,r−1]a_p\
2020-10-24 10:23:00 126
原创 [思维好题] yyr的妹子数
二哥好强啊yyr的妹子数三个值a,b,ca,b,ca,b,c,一些操作a+b≤c⇒a=a∗2,b=b∗2,c=c−a−ba+b\le c\Rightarrow a=a*2,b=b*2,c=c-a-ba+b≤c⇒a=a∗2,b=b∗2,c=c−a−ba+b>c⇒p=min(⌊c2⌋,min(a,b)−1),a=a−p,b=b+p−c,c=c∗2a+b>c\Rightarrow p=\min(\lfloor\frac{c}{2}\rfloor,\min(a,b)-1),a=a-p,b=
2020-10-21 21:14:24 336
原创 [校内模拟][思维题] 201017Practice NOIP Day2 T2 Invert
T2题意长LLL的环上有nnn个人,有些正向走,有些逆向走,速度均为111个单位/s/s/s如果相遇,两人反向给出时间,求第iii个人在环上的位置正解注意到这些人的相对位置不变,最后排个序就行了注意到有人经过分割点(指000和L−1L-1L−1中间的点)如果正着走,坐标最小的人编号++,编号为1的人坐标–反之同理注意算每一个人时,可能该人多次穿过分割点注意算起点的时候,%n需要里面-1,外面把1加回来因为起点不可能为0#include<bits/stdc++.h>us
2020-10-21 19:05:52 156
原创 [树上差分] 树上差分两例
[JLOI2014]松鼠的新家树上差分常见套路:子树和为原数组苦逼菜鸡72行打错qwq因为只有第一个点val不用-1,后面访问到的都要-1(对于一条路径起点权值不用加)#include<bits/stdc++.h>using namespace std;#define in Read()int in{ int i=0;bool f=true;char ch=0; while(!isdigit(ch)&&ch!='-') ch=getchar(); if(ch=
2020-10-21 15:56:54 154
原创 [差分/前缀和] 简单差分+二维差分+树上差分+树状数组差分六例
「一本通 4.4 练习 1」Dis#include<bits/stdc++.h>using namespace std;#define in Read()int in{ int i=0;bool f=true;char ch=0; while(!isdigit(ch)&&ch!='-') ch=getchar(); if(ch=='-') ch=getchar(),f^=1; while(isdigit(ch)) i=(i<<1)+(i<<
2020-10-21 09:35:13 228
原创 [差分/前缀和] 二维前缀和
继续刷题Monitor#include<bits/stdc++.h>using namespace std;#define in Read()int in{ int i=0;bool f=true;char ch=0; while(!isdigit(ch)&&ch!='-') ch=getchar(); if(ch=='-') ch=getchar(),f^=1; while(isdigit(ch)) i=(i<<1)+(i<<3)+ch
2020-10-20 21:06:31 106
原创 [组合数学][六省联考2017]组合数问题
T3Portkey1.1 1≤n,k≤301\le n,k\le 301≤n,k≤30递推算组合数(似乎这种方法还能再A一个点)差评zgs的机子不给这点分1.2 特殊点p=2p=2p=2判断奇偶性k=1k=1k=1二项式定理k=2k=2k=2跟二项式定理差不多1.3用一些稍微高级的方法预处理啊,阶乘逆元啊之类的不要暴力就行了1.4冯巨来也!来一个生成函数(nm)=(1+z)n[zm]\binom{n}{m}=(1+z)^n[z^m](mn)=(1+z)n[zm]这
2020-10-20 18:49:00 189
原创 [数学][六省联考2017]相逢是问候
PortkeyT2我发现我的问题了题目给我的引导我总是认为它是问题1.1 不带修写好前缀和1.2 每个位置只更改一次线段树+快速幂1.3 观察总结样例二:一个数操作次数多了以后模的结果就不变了这里主要针对ppp比较小的几个点,手玩ccc的几个情况pic<----线段树维护即可30pts1.4 欧拉定理一个很难的柿子然后可以不写高精???高精题差评弃...
2020-10-20 16:21:35 137
原创 [贪心] [六省联考2017]期末考试
Portkey#include<bits/stdc++.h>using namespace std;#define in Read()#define int long longint in{ int i=0;bool f=true;char ch=0; while(!isdigit(ch)&&ch!='-') ch=getchar(); if(ch=='-') ch=getchar(),f^=1; while(isdigit(ch)) i=(i<<
2020-10-20 16:10:23 120
原创 [差分/前缀和] 菜题の刷
贴码码,刷题题U53525 前缀和(例题)#include<bits/stdc++.h>using namespace std;#define in Read()int in{ int i=0;bool f=true;char ch=0; while(!isdigit(ch)&&ch!='-') ch=getchar(); if(ch=='-') ch=getchar(),f^=1; while(isdigit(ch)) i=(i<<1)+(i<
2020-10-20 11:17:41 94
原创 [差分] [USACO15DEC]Max Flow P
Max Flow P题意给定一棵树,一些路径,一条路径上所有点权值+1+1+1,求权值最大的点权值1 正解考虑差分一条路径u↔vu\leftrightarrow vu↔v分成u↔lcau\leftrightarrow lcau↔lca与v↔lcav\leftrightarrow lcav↔lca两部分最终DFS#include<bits/stdc++.h>using namespace std;#define in Read()int in{ int i=0;bool f=
2020-10-20 10:34:48 186
原创 [校内模拟][DP/推柿子] 201017 Practice NOIP T3 Walk
T3题解给得不直观冯巨一来秒懂只是知道意义不会推理然后脑子一团浆糊题意一条街,有两侧,每侧nnn个超市逛超市的规则是:街一面到另一面随便一家没去过的;街一面到这一面最近的没去过的求不同的逛完所有超市的方案数冯巨fi,j=jfj−1,i+(2i+2(i−2)i)ifi−1,j=jfj−1,i+(2i−2)fi−1,j\begin{aligned}f_{i,j}&=jf_{j-1,i}+(\frac{2}{i}+\frac{2(i-2)}{i})if_{i-1,j}\\&
2020-10-19 20:13:55 125
原创 [校内模拟][不可分类的树论][不可描述的题面] 201016 Practice NOIP T4 Tree
T4一道非常虐心的题,题面太恶心了,就不放毒了题意将有偶数个节点的树上的点两两匹配,一种匹配方案的贡献是每对匹配点之间的最短路径长度和的平方,求所有匹配方案的贡献之和。答案取模。具体地说,设did_idi为一种匹配第iii对点之间的最短路径,则这种匹配的贡献是(∑i=1n2di)2(\sum_{i=1}^{\frac{n}{2}}d_i)^2(∑i=12ndi)2题解4.1 n≤10n\le 10n≤10暴搜设F(n)F(n)F(n)为有nnn个点的匹配数20pts4.2 菊花图
2020-10-19 17:27:08 124
原创 [校内模拟][奇偶最短路] 201016 Practice NOIP T3 Road
T3题意一个图,q次查询,问是否存在u→vu\to vu→v且长度为ddd的路径3.1 n,m,q,d≤100n,m,q,d\le 100n,m,q,d≤100BFS预处理fu,v,d=0/1f_{u,v,d}=0/1fu,v,d=0/1表示是否存在u→vu\to vu→v且长度为ddd的路径O(n)O(n)O(n)30pts3.2 任意两点间至多存在一条简单路径输入一片森林树上最短路径长度disu,vdis_{u,v}disu,v有u→vu\to vu→v路径长度kkk满足k≥di
2020-10-19 11:07:42 218
原创 [校内模拟][线段树/平衡树] 201016 Practice NOIP T1 escape
T1给出n,kn,kn,k和一个长nnn的字符串SSS,求将S中两个相邻字符交换后能得到的字典序最大的字符串经大佬提示,考虑贪心咋就不敢贪心呢,贪心显然成立显然所要的答案要把小的字母往前放一定会尽量把能移动的最小的字母放到最前考虑从前往后贪心,现在确定第iii位的数字设区间长度L=min(n−i,k)L=\min(n-i,k)L=min(n−i,k),在[i,i+L][i,i+L][i,i+L]中寻找最小字母,位置是ppp放到iii位上,kkk减少p−ip-ip−i直到k=0k=0k=0
2020-10-19 09:56:38 145
原创 [校内模拟][二分] 201017 Practice T1 Chemist
T1一些液体密度ρi(1≤i≤n)\rho_i(1\le i\le n)ρi(1≤i≤n),一些容器体积vi(1≤i≤n)v_i(1\le i\le n)vi(1≤i≤n)要求将液体装进容器里,求总质量的最小、最大值发现排序后max=∑i=1nρivimin=∑i=1nρivn−i+1max=\sum_{i=1}^n\rho_iv_i\\min=\sum_{i=1}^n\rho_iv_{n-i+1}max=i=1∑nρivimin=i=1∑nρivn−i+1Θ(nlogn)
2020-10-17 15:24:49 125
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人