自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Nowed

醉后不知天在水,满船清梦压星河。

  • 博客(764)
  • 收藏
  • 关注

原创 模板小记

dij// wa 1ci#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#include<queue>#define mp(x,y) make_pair((x),(y))#define rep(i,x,y) for(int i=x;i<=y;i++)using namespace std; const int N=5e5+5;

2020-11-04 22:00:54 328 1

原创 summary

二分法check。

2024-01-14 22:12:28 376

原创 Poj 3074 Sudoku 和 Poj 1011 Sticks

【代码】Poj 3074 Sudoku 和 Poj 1011 Sticks。

2023-10-21 16:43:07 86

原创 退役[留作纪念]

退役了,让此致敬荒唐的过往。

2021-11-20 23:08:00 1066 1

原创 #spfa# [牛客集训] 牛表

main points牛表Solution结论大概是打表发现ansansans矩阵中在200020002000以内最大的数是171717。然后对于每一个数前后17个数相乘连边求最短路。注意一下有两个不同的模数,然后不同的循环注意i和j不要搞混。Code#include<cstdio>#include<algorithm>#include<cstring>#include<queue>using namespace std; cons

2021-10-05 22:01:14 268

原创 ## [ybtoj] 统计集合

题目大意f(x)f(x)f(x)代表xxx集合的最大值减去最小值。问一个集合SSS中所有非空子集的f(x)f(x)f(x)的和。solution手推一下有暴力O(n2)O(n^2)O(n2)然后考虑每一个数对答案的贡献,拆一下式子,合并一下同类项就可以得到相应的系数。code#include<cstdio>#include<cstring>#include<algorithm>#define ll long long using namespace

2021-09-25 16:18:15 175

原创 #矩阵乘法# [luogu 3216] [HNOI2011]数学作业

Porblemhttps://www.luogu.com.cn/problem/P3216SolutionCode#include<cstdio> #include<cstring>#include<algorithm>#define ll long long#define rep(i,x,y) for(ll i=x;i<=y;i++)using namespace std; const int N=10; ll n,mod,W=3;

2021-03-06 09:10:23 204

原创 模板小记4

文章目录可持续化线段树树链剖分可持续化线段树注意$l$和$1$要区分#include<cstdio> #include<algorithm>#include<cstring>using namespace std; const int N=200010; int n,m,b[N<<5],cnt,L[N<<5],R[N<<5],sum[N<<5],a[N<<5],t[N<<5]; in

2020-11-06 17:01:33 212

原创 模板小记3

文章目录匈牙利算法离散化最长公共上升子序列单调栈博弈康拓展开最小表示法缩点割点最大流最小费用最大流匈牙利算法#include<cstdio>#include<algorithm>#include<cstring>#include<map>#define mp(x,y) make_pair((x),(y))using namespace std; const int N=1e5+5; struct node{ int y,nt; }a[N*

2020-11-06 11:27:57 184 1

原创 模板小记2

文章目录线段树单调队列KMP字符串匹配RMQ等比数列龟速乘差分约束0/1分数规划矩阵乘法线段树区间乘,区间加,区间查询#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#define ll long longusing namespace std; const ll N=1e5+5; struct node{ ll sum,mul,add; }a[

2020-11-05 21:57:55 209

原创 #树上差分+lca# [校测 小王子]

TitleSolution考虑统计所有的树边被新边覆盖了几次。1.覆盖0次,则毁掉它就已经可以使树断裂了。这时任意选一条新边去毁,产生M种方案。2.覆盖1次,则毁掉它和覆盖它那条新边就一定能使树断裂,产生的方案数为1,是唯一解。3.覆盖2次或以上,无论怎么样都不能使树断裂,产生的方案数为0定义g[u]的意义为,u和它父亲连接的那条边被覆盖的次数。对于每一条新边〈u,v〉,令g[u]++;g[v]++;g[lca(u,v)]-=2。然后dfs一遍,对于每条树边〈u,v〉(u是v父亲),

2020-11-04 20:01:33 200

原创 #二进制分组+dij# [校测 普通快乐]

Title给旅行者很像,但是这道题目是单向边。Solution非正解: 把所有特殊点压进队列里,然后跑dij,记录次小值和最大值,可以枚举任一个非特殊点求解;正解: Code(非正解)#include<cstdio> #include<algorithm>#include<cstring>#include<iostream>#include<queue>#define mp(x,y) make_pair((x),(y))

2020-11-04 16:47:57 159

原创 #容斥# [校测 选数字]

Title大意:给定一个序列,QQQ次询问,l,r,zl,r,zl,r,z,询问在[l,r][l,r][l,r]区间内选出333个数字的按位或的结果等于zzz的方案数。SolutionCode#include<cstdio> #define rep(i,x,y) for(int i=x;i<=y;i++)using namespace std; const int N=255,M=1e5+5; int c[N+5]={0,1,1},s[M][N+5],a[M],n,

2020-11-03 18:49:07 113

原创 #gcd# [校测 堆箱子]

Title大意:SolutionCode#include<cstdio>#include<algorithm>using namespace std; int L,n,m; double ans; int gcd(int x,int y){return (!y)?x:gcd(y,x%y);}int main(){ scanf("%d%d%d",&L,&n,&m); int g=gcd(n+L,m+L); if (n<

2020-11-03 16:55:38 130

原创 #Floyd分治# [Ybtoj NOIP2020 模拟赛 B 组 Day7]路径之和

Title大意:询问不经过k∈[1,n]k\in [1,n]k∈[1,n],任意有序数对(l,k,r)(l,k,r)(l,k,r)的最短路和。SolutionCode#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#define ll long long#define rep(i,x,y) for(int i=x;i<=y;i++)usi

2020-11-03 08:11:39 136

原创 #Trie# [Ybtoj NOIP2020 模拟赛 B 组 Day7] 区间异或

Title大意:给一个区间,询问有多少了区间满足异或和不小于给定的正整数KKKSolution注意一开始trie要插入初始值0设s[i]s[i]s[i]表示[1,i][1,i][1,i]的异或和,[l,r][l,r][l,r]的异或和相当于s[r] xor s[l−1]s[r]\ xor\ s[l-1]s[r] xor s[l−1]可以用TrieTrieTrie表示前缀xorxorxor和如何求大于等于KKK的区间数,可以在查询的时候,强制前面某些位相同

2020-11-02 20:18:48 177

原创 #离散化+树状数组# [luogu P3586] [POI2015]LOG

TitleP3586 [POI2015]LOG对于一个一开始长度为000的序列,有mmm次操作。有两种操作:将某一位改成一个数判断是否能将进行sss次从序列中选出ccc个正整数,并将它们减一的操作。Solution注意离散化分别对应的数组注意可能会炸long long ,但是大概要估计一下空间关键在第二个操作Z c sZ\ c\ sZ c s。设cntcntcnt为序列中有多少个数是大于等于sss的数量,sumsumsum为序列中小于sss的

2020-11-02 16:59:41 111

原创 #线段树#[gmoj 5361] 捕老鼠

Title有nnn段可覆盖区间[a[i].l,a[i].r][a[i].l,a[i].r][a[i].l,a[i].r]问最少需要多少段这样的区间将[1,n][1,n][1,n]覆盖完。Solution设f[i]f[i]f[i]表示[1,i][1,i][1,i]中的最少覆盖区间数对于每根线段f[r]=min(f[i])+1a[i].l−1≤i<a[i].rf[r]=min(f[i])+1 \\\small a[i].l-1\leq i<a[i].rf[r]=min(f[i])+1a

2020-11-01 14:14:53 93

原创 #数学期望# [牛客第六场 袜子分配]

Title袜子分配大意: 将nnn双袜子,各双袜子的颜色不一,问nnn次随机抽取一对袜子,如果是同色的话,就会开心一次。 问期望的开心次数。Solution暴力跑全排列找规律。n/(2∗n−1)n/(2*n-1)n/(2∗n−1)一共有2n只袜子,所以就有2n!种拿法。将每对袜子拆成两个不一样的,那么他们在一起当且仅当在n个组的同一组内即为n2n^2n2 种,因为拆成了两个不一样的,所以要乘222。然后每个袜子对期望的贡献是独立的,所以剩下的2n−22n-22n−2只可以随便排。那么答案就

2020-10-30 21:04:25 404 1

原创 #二分+贪心# [校测 大鱼吃小鱼]

Title大意:有nnn条小鱼,两两分组(只剩下一个的单独分组),如果一条小鱼是另外一条小鱼的两倍或以上就能把另外一条小鱼吃掉,问最后的剩下的最少的小鱼数量。Solution首先,从小到大排序,假如是可以匹配的话,前kkk条小鱼是一定与后kkk条小鱼匹配的。我们可以二分前kkk条小鱼,每次checkcheckcheck判断后kkk条小鱼是否能匹配。Code#include<cstdio>#include<algorithm>#include<cstring&

2020-10-30 20:47:02 274

原创 #概率# [校测 超级蚯蚓]

Title大意:有nnn样物品,每个物品有头尾,每一次操作为随机将两个物体头尾相连成一个物体(就是环),进行nnn次操作。问刚好形成环的概率。Solution可以用DPDPDP做,设f[i][j]f[i][j]f[i][j]表示iii条蚯蚓,有jjj条形成环的概率,f[n][0]=1,f[2][2]=2/3f[n][0]=1,f[2][2]=2/3f[n][0]=1,f[2][2]=2/3。化成一维的话f[j]=f[j−1]∗(2∗n−2)/(2∗n−1)f[j]=f[j-1]*(2*n-2

2020-10-30 20:40:29 118 1

原创 #RMQ# [校测 小鱼吃大鱼]

Title求max{Aimod   Aj}(Ai≥Aj)max\begin{Bmatrix}A_i\mod\ A_j\end{Bmatrix}(A_i\geq A_j)max{Ai​mod Aj​​}(Ai​≥Aj​)Solution我们可以暴力枚举值域的倍数,查找在这个[j,j+i−1][j,j+i-1][j,j+i−1]区间内的最大数值(可以用RMQRMQRMQ预处理)减去初始值jjj,就是这个数值在%j\%j%j时的值。Code#include<cstd

2020-10-30 20:32:20 109

原创 #DFS# [校测 年会小游戏][luogu P1463] [POI2002][HAOI2007]反素数

TitleP1463 [POI2002][HAOI2007]反素数Solution注意两数相乘大于另一个数的判断中可能会出现爆long long的情况,所以尽量换成除法对于这一道题目最多会出现的质因数不超过10个2.xxx的质因子是连续的若干个最小的质数,并且指数单调递减 。Code#include<cstdio>#include<algorithm>#define ll long long #define rep(i,x,y) for(ll i=

2020-10-29 14:47:56 143

原创 #区间乘# [luogu P3373] 【模板】线段树 2

TitleP3373 【模板】线段树 2Solution注意快读不要为了省常数而不去判断负数注意区间乘要先处理,然后再处理区间和Code#include<cstdio>#include<cstring>#include<string>#include<algorithm>#define LL long long #define rep(i,x,y) for(LL i=x;i<=y;i++) using namespace s

2020-10-28 22:19:14 141

原创 #三分# [luogu P3382] 【模板】三分法

TitleP3382 【模板】三分法Solution三分模板Code#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#define db doubleusing namespace std; const db eps=1e-7; int n; db l,r,mid,a[15]; db check(db k){ db sum=0; for(

2020-10-28 21:29:03 91

原创 #主席树+字典序# [牛客 经典字符串问题]

Title经典字符串问题给定nnn个数,有qqq次询问,询问[l,r][l,r][l,r]的第kkk大,如果没有答案输出−1-1−1需要把每一个数当作字符串。Solution注意字典序的判定主题题目要求的是第k小把输入按字典序排序,记录rankrankrank,然后直接套主席树静态求区间第KKK小。Code#include<cstdio>#include<algorithm>#include<cstring>#define rep(i,x,y)

2020-10-28 19:57:01 114

原创 #KMP# [牛客 K匹配]

TitleK匹配询问SSS串中有多少字串包含TTT串。SolutionKMPKMPKMP求出每个TTT的位置。一开始是用总的字串个数减去不合法的字串个数,但是不知道考虑少了些什么情况。设c[i]c[i]c[i]表示第iii个TTT串的位置,每一次的答案统计是(c[i]−c[i−1])∗(n−k−c[i]+2)\mathbf{ (c[i]-c[i-1])*(n-k-c[i]+2) }(c[i]−c[i−1])∗(n−k−c[i]+2)Code#include<cstdio>

2020-10-28 19:52:44 215

原创 #线性筛# [牛客 三元组计数]

Title三元组计数给定三个数a,b,ca,b,ca,b,c,要求bbb是aaa的倍数,ccc是bbb的倍数,且a<b<ca<b<ca<b<c,问[1,n][1,n][1,n]之间这样的三元组有多少?Solution对于一个数iii,iii的因子个数∗(n/i−1)*(n/i-1)∗(n/i−1)累求贡献。暴力可过,就打暴力了。Code#include<cstdio>#include<algorithm>#define ll

2020-10-28 19:41:00 138

原创 #线段树优化建图# [luogu CF786B] Legacy

TitleCF786B Legacy有nnn个点,然后有mmm次操作,其中有333种建图的操作,最后询问的以sss为起点,分别以每个点为终点的最短路。正常连接xxx和yyy连接xxx到[l,r][l,r][l,r]连接[l,r][l,r][l,r]到xxxSolution注意dijkstra中判断vis,因为我也不知道我到底改了些什么东西,最后把vis的位置换了一下就AC了跟这一道题#线段树优化建图# [luogu P4083] [USACO17DEC]A Pie for a Pie

2020-10-26 21:33:13 153

原创 #树状数组+并查集# [luogu P4145] 上帝造题的七分钟2 / 花神游历各国

TitleP4145 上帝造题的七分钟2 / 花神游历各国给定nnn个数mmm次操作,如果zzz是111的话,查询lll到rrr之间的和,否则将lll到rrr之间的数都开方。Solution注意开long long因为对于一个数,最多开666次方,所以当一段区间都是111的时候,就可以跳过,处理下一段。然后就是用树状数组暴力处理。Code#include<cstdio> #include<algorithm>#include<cmath>#in

2020-10-26 16:19:18 116

原创 #数学# [ssloj 数星星]

Main idea有nnn颗星星,编号为111到nnn,然后取出kkk个数,要求这kkk个数至少有rrr个数是编号连续的。Solution设已经取了iii个的rrr个连续,那在n−k+1n-k+1n−k+1种任意取iii块,然后对于剩下的k−i∗rk-i*rk−i∗r可以在n−i∗rn-i*rn−i∗r中任意取。ans=∑i=1⌊kr⌋(−1)i−1Cn−k+1iCn−i∗rk−i∗r\large ans=\sum_{i=1}^{\left \lfloor \frac{k}{r} \right \

2020-10-25 19:50:52 94

原创 #字符串# [牛客 语言]

Title语言Solution如果一个字符串中出现了两个444或者是开头和结尾都是444的话,肯定不能组成一个句子。然后对于一个动词,只要前一位是个名词,和最后一位也是个名词时就能组成句子。Code#include<cstdio>#include<algorithm>#include<cstring>#define rep(i,x,y) for(int i=x;i<=y;i++)#define A(x) ((x)&1)#define

2020-10-25 10:47:26 82

原创 #线段树优化建图# [luogu P4083] [USACO17DEC]A Pie for a Pie G

# `Title` [P4083 [USACO17DEC]A Pie for a Pie G](https://www.luogu.com.cn/problem/P4083)有$2*n$个馅饼,其中前$n$个是$B$做的,后$n$个是$E$做的,$B,E$都对馅饼有自己的评分。 从$B$开始互赠馅饼$x$

2020-10-24 18:02:47 171

原创 #线性筛# [牛客 GCD]

TitleGCDSolution注意一定要把思路清晰了,然后再实现,加快码题的效率当xxx包含相等的质因子(xαx^\alphaxα(x∈primex \in primex∈prime))时,ans+=xans+=xans+=x否则因为都是质因数,所以总的gcdgcdgcd是111类似莫比乌斯函数Code#include<cstdio>#include<algorithm>#include<cstring>#define ll long long

2020-10-21 20:13:01 100

原创 #树上带修莫队# [luogu P4074] [WC2013]糖果公园

TitleP4074 [WC2013]糖果公园Solution注意莫队中的指针左右扫描一定要写对ql和qr,找了我一晚的错误。。。!!!树上莫队上加一个时间的维度Code#include<cstdio> #include<algorithm>#include<cstring>#include<string>#include<cmath>#define ll long long #define rep(i,x,y) for

2020-10-21 19:37:15 120

原创 #离散化+欧拉序+lca+树上莫队# [luoguSP10707] COT2 - Count on a tree II

TitleSP10707 COT2 - Count on a tree IISolution注意lca别打错了注意欧拉序的区间别错了注意不带修的莫队块的大小设置为sqrt(n),否则为pow(n,2.0/3.0)先把节点离散化一下。我们可以求树上的欧拉序,对于任意两个点上的路径,就是从iii到jjj的只出现了一个数的节点。假如是它们的lcalcalca的话,就不会出现在序列中,所以要特殊处理。用firstfirstfirst标记第一次出现的位置,用lastlastlast标记第二次出现的

2020-10-21 12:01:41 158 1

原创 #带修莫队# [luogu P1903] [国家集训队]数颜色 / 维护队列

TitleP1903 [国家集训队]数颜色 / 维护队列Solution注意cnt数组要开大,然后q[i].id=cntq而不是i!!!带修莫队就是在普通莫队上加上一维时间轴。不太会证明块的大小与莫队时间复杂度的影响,这道题似乎要将块的大小设置为n23n^{\frac{2}{3}}n32​会比较优秀Code#include<cstdio> #include<cmath>#include<cstring>#include<string>

2020-10-19 22:08:17 143 2

原创 #莫队# [luogu P2709] 小B的询问

TitleP2709 小B的询问Solution注意ceil可能会大于数据范围,可能要换一下,否则就开两倍数组~~~注意奇偶性的优化,之前打的是错误的。bool cmp(node x,node y){ return (b[x.l]^b[y.l])?b[x.l]<b[y.l]:((b[x.l]&1)?x.r<y.r:x.r>y.r); }Code#include<cstdio>#include<algorithm>#include&

2020-10-19 18:25:37 92

原创 #树状数组# [luogu P1972] [SDOI2009]HH的项链

TitleP1972 [SDOI2009]HH的项链Solution注意树状数组中ask函数中x>=1莫队只能拿44分~~把询问根据右端点排序,然后用树状数组统计的是1−j1-j1−j中的不同的个数每次将指针往右移,如果当前的数前面已经标记过了,就去掉前面的标记,在当前位置标记,因为前面的对现在询问的区间是没有贡献的。Code#include<cstdio>#include<cmath>#include<algorithm>#include

2020-10-19 10:59:13 105

原创 #莫队# [luogu SP3267] DQUERY - D-query

TitleSP3267 DQUERY - D-querySolution注意使用位运算的优先级顺序https://www.cnblogs.com/WAMonster/p/10118934.htmlCode#include<cstdio>#include<cmath>#include<algorithm>#include<cstring>#define rep(i,x,y) for(int i=x;i<=y;i++)using n

2020-10-18 22:01:54 86

空空如也

空空如也

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

TA关注的人

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