自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 E. Case of Computer Network

题目链接题意:给定n个点m条边的无向图,然后q组数对(x,y),问是否存在一种方案使m条边定向后,同时满足可以从x到y。能输出Yes,否则输出No。n,m,q<=2e5n,m,q<=2e5n,m,q<=2e5感觉是将无向图定向后,问是否构成强连通图题目的升级版。因为是无向图可以求出这个图的边双连通分量,对于在双连通分量中的(x,y)(x,y)(x,y)总能到达。接着不在一个双连通分量中,如果该双连通分量不连通,那么直接输出NoNoNo,因为这两个点不连通就无法到达。可以知道互连的双

2021-08-26 17:04:18 94

原创 栗酱的数列

题目链接题意:t组数据,每组n,m,k,长度为n的数组a,长度为m的数组b,询问a中有多少长度为m的子串a1满足(a1+b1)%k=...=(ai+bi)%k=...=(am+bm)%k(a_1+b_1)\%k=...=(a_i+b_i)\%k=...=(a_{m}+b_{m})\%k(a1​+b1​)%k=...=(ai​+bi​)%k=...=(am​+bm​)%k2<=n,m<=2e52<=n,m<=2e52<=n,m<=2e51<=ai,bi,k&lt

2021-08-23 13:47:19 83

原创 牛客多校7 F xay loves trees

题目链接题意:给定两颗以1为根n个点的树,问你最大的集合S,满足S中的任意两个元素在第一颗树上必有一个点是另一个点的祖先,且要是连续的一些点,在第二颗树上都不是对方的祖先。1<=n<=3e5第一个条件可以看出来是一条链,对于第二个条件如果选了一个点,那么其子树一定不能选。所以我们可以dfs序处理一下,则选了一个点u我们就将其在线段树上[in[u],out[u]][in[u],out[u]][in[u],out[u]]覆盖,如果有重复覆盖的那么一定是两者只能取其一,可以遍历第一颗树然后用线段

2021-08-11 16:50:13 109

原创 名哥的完全平方数

题目链接题意:给一个长度为n的数组,做q次询问,每次询问区间[l,r]里有多少对数的乘积为完全平方数?如(1,4)是一对,但(1,-4)就不是一对,0也是完全平方数1<=n,q<=3e5-1e6<=a[i]<=1e6考虑两个数什么时候才能组成完全平方数,那么首先肯定要同号,其次其所有的质因数上面的幂次加起来一定得是偶数,所以我们将a[i]所有偶数次幂的质因数除掉,并把奇数次的化为1,那么如果两个数可以组成完全平方数那么要满足处理完后两个数完全相同。其外对于没有修改的询问,并

2021-08-10 09:28:09 174

原创 数列互质(莫队)

数列互质题目链接题意:给定长度为n的数列,m次询问,每次询问给定三个数l,r,k,询问在区间[l,r]内有多少个数的次数与k是互质的1<=n,m<=500001<=l[i],r[i].k[i]<=n询问区间数的次数,可以想到用莫队维护,用siz[x]统计数x出现的次数,cnt[x]统计出现次数为x的数有几个。这些在add,del函数中都可以O(1)实现,因为要统计有多少数与k互质,所以如果我们将出现次数从1到n枚举那么时间复杂度是O(mnlogn),妥妥T。对此我们是否可

2021-08-08 16:13:27 269

原创 牛客多校6 J Defend Your Country

Defend Your Country题目链接题意:给你n个点m条边的无向图,每个点有权值a[i],对答案ans的贡献为a[i]*(-1)^所在连通块内点数,你可以删去任意的边,问你ans最大是多少2≤n≤1e61≤m≤1e6m≥n−1结论:若n为偶数,那么ans=∑a[i]ans=\sum a[i]ans=∑a[i]若n为奇数,那么最多删除一个点n为偶数很好写,n为奇数的时候,ans=∑a[i]−2∗ans1\sum a[i] -2*ans1∑a[i]−2∗ans1,如果ans1这个点不

2021-08-04 16:52:23 144

原创 牛客 VVQ 与线段

VVQ 与线段题目连接题意:给你n个线段,问你所有两个相邻的线段,用它们的并的长度减去交的长度最大是多少很有意思的一道题,两个线段相邻只有两种情况,一个是相交一个是包含。我们先将所有线段按照 l , r 从小到大排序(我们l将first和second用l和r来表示)。下面分类:1.如果是相交,那么ans=a[j].r-a[i].l-(a[i].r-a[j].l)=a[j].r-a[j].l-(a[i].l+a[i].r);2.如果是包含,那么ans=a[j].r-a[j].l-(a[i].r-a

2021-07-18 16:26:44 234

原创 2021-06-14

E. Card Game Again题目链接题意:给你一个序列和k,问你其有多少个子区间,满足乘积是k的倍数n<=1e5网上大多数是维护因子的个数,然后双指针来做,时间复杂度是O(nn)O(n \sqrt n)O(nn​),根号分解因子。当还可以用线段树维护是否是k的倍数,即维护一段区间的乘积即可。若是0则指针l往后移答案加n-r+1,直到不是0为止,否则r不断后移。#include <bits/stdc++.h>using namespace std;typedef lo

2021-06-14 22:35:58 116 1

原创 2021-06-13

51nod1350 斐波那契表示题目链接题意:每一个正整数都可以表示为若干个斐波那契数的和,一个整数可能存在多种不同的表示方法,例如:14 = 13 + 1 = 8 + 5 + 1,其中13 + 1是最短的表示(只用了2个斐波那契数)。定义F(n) = n的最短表示中的数字个数,F(14) = 2,F(100) = 3(100 = 3 + 8 + 89),F(16) = 2(16 = 8 + 8 = 13 + 3)。定义G(n) = F(1) + F(2) + F(3) + … F(n),G(6) =

2021-06-13 11:51:53 227

原创 2021-05-31

珂朵莉与GCD题目链接题意:给你n个元素,m次询问,每次询问[l,r]这个区间所有的子区间的gcd的和%pn<=1e5固定右端点r,如果[1,r-1]的子区间gcd和都求出来了,那么对于r这个点,将其贡献加入到[1,r-1]这个区间里就是[1,r]的所有子区间gcd的和。循环r的时候不要忘记更新右端点为r的询问。我们知道对于右端点r来说,其往左看的不同gcd的个数最多为log2a[i]log_2a[i]log2​a[i]个,因为最多情况是将a[i]看成2的倍数这样分解。所以我们可以对其暴力求

2021-06-03 21:26:51 160

原创 AtCoder Regular Contest 116

D - I Wanna Win The Game题目链接题意:给你n,m,构造n个元素的数组,满足1.n个元素和为m2.n个元素异或和为0。问你有多少个这样的数组?(数的顺序不同也算不同)数据范围:1≤n≤50001≤m≤5000对于异或问题,我们最常用的方法就是将其化为二进制。因为要使最终异或和为0,那么便二进制上每一位的个数要为偶数个,否则一定会出现在该位上最终属于一个1无法异或。下面便成了组合数学的问题了,想一下如果我们已经处理好了前i-1位和为j的情况,那么第i位的情况只要枚举一

2021-04-28 21:25:47 96

原创 AtCoder Regular Contest 117

D - Miracle Tree 树的直径+思维题目链接题意:给你一颗n个点的树,让你构造每个点的权值,满足以下条件1.结点权值a[i]>=1,2.dis(A,B)<=|a[A]-A[B]|,即结点权值之差大于等于A,B之间的距离3.结点最大值尽可能小数据范围:2≤n≤200000如果只存在一条链,那么答案即为n。如果有多条链,那么如果我们处理好了一条链x,那么下一条链y的开头结点的权值一定为x链的最后一个点的权值+y的开头结点与x最后一个结点的长度(即回溯的长度)。我们要让回

2021-04-27 23:15:46 97

原创 AcWing 250. 磁力块 (分块+贪心)

250. 磁力块题目链接题意:给你n个散落在二维平面的磁铁,有(m,p,r)三个属性。m表示重量,p表示磁力,r表示作用半径。A磁铁可以将B磁铁吸引过来,当且仅当pA>=mB  AND  r>=dis(A,B)p_{A}>=m_{B} \ \ AND \ \ r>=dis(A,B)pA​>=mB​  AND  r>=dis(A,B) ,一开始我们在点(x0,y0)(x_{0},y_{0})

2021-04-27 14:30:27 156

原创 AcWing 249. 蒲公英 (分块+预处理+离散化)

249. 蒲公英题目链接题意:给你n个数,m次询问。每次询问给出区间[l,r],回答[l,r]里出现次数最多的数是啥,如果有若干个数出现次数相同,则输出种类编号最小的那个。要求强制在线。数据范围:1≤n≤400001≤m≤500001≤ai≤109分块+前缀和+预处理对于线段树、树状数组这些数据结构,很难维护这样区间没有联系的信息。所有我们考虑暴力美学分块。数据很大,先离散化。预处理sum[i][j]sum[i][j]sum[i][j]数组,表示在前i块中数字j出现的次数,用于下面比较大

2021-04-26 21:39:23 243 2

空空如也

空空如也

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

TA关注的人

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