自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试JAVA集合常用方法总结

在 Java 中,Queue 是一个接口,而 LinkedList 是 Queue 接口的一个实现类。Stack 是 Java 中的一个类,继承自 Vector,用于实现后进先出(LIFO,Last In First Out)的栈数据结构。JDK1.7之前,HashMap是基于数组和链表实现的,JDK1.8之后,如果链表长度超过8,链表就转为红黑树。基于双向链表实现,不支持随机索引访问,需要O(n)的时间复杂度遍历查找。基于动态数组实现,支持随机索引访问,访问索引的时间复杂度O(1),非线程安全。

2025-02-27 21:17:21 786

原创 [LIS]最长上升子序列

题目 思路 找第二个数组在第一个数组中出现的下标,然后对下标找最长上升子序列 代码 #include<bits/stdc++.h> using namespace std; #define int long long #define lowbit(x) x&(-x) int n; int a[100010],b[100010],dp[100010],bit[100010]; map<int,int> mp; void add(int x,int d){ for(int i

2022-04-15 20:21:16 417

原创 [容斥定理] 牛客15079

题目 题目 代码 #include<bits/stdc++.h> #define int long long using namespace std; int a[100]; signed main(){ int n; a[1]=2; a[2]=5; a[3]=11; a[4]=13; while(cin>>n){ int ans=n; for(int i=1;i<(1<<4);i++){ int cnt=0,temp=1; for(

2021-10-28 11:51:11 160

原创 【组合数学】CF1313D Count the Arrays

题目 题目 思路 首先m>=nm>=nm>=n,有一对数相同,就从mmm中选出n−1n-1n−1个数来,即(n−1m)\binom{n-1}{m}(mn−1​),有n−1n-1n−1个数可能会相等。除开两个相等的,一个顶点的数,还剩n−3n-3n−3个数,可以任意放在iii两边,因此为2n−32^{n-3}2n−3.特判$n=2n=2n=2的情况 代码 #include<bits/stdc++.h> using namespace std; #define int long l

2021-10-21 01:51:56 252

原创 【状压dp】icpc网络赛第二场 K-Meal

题目 nnn个人,一个人有nnn个菜,依次拿菜,每个菜的喜爱值为aija_{ij}aij​,拿走概率为aij∑j=1naij\frac{a_{ij}}{\sum_{j=1}^{n}a_{ij}}∑j=1n​aij​aij​​,求所有菜被拿走的概率 思路 状压 ans[i][j]ans[i][j]ans[i][j]表示拿了iii种菜,拿到其中jjj类型这个菜的概率 f[x]f[x]f[x]表示拿的状态为xxx这种的总概率 代码 在这里插入代码片#include<cstdio> #include&l

2021-10-03 00:29:32 267

原创 cf D Up the Strip

题目 添加链接描述 代码 D1D_1D1​ nsqrtnnsqrtnnsqrtn做法:整除分块: using namespace std; const int INF = 0x3f3f3f3f; int dp[200010]; signed main(){ ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); int n,m; cin>>n>>m; int pre=0; dp[n]=1; for(int i=n;i>

2021-08-25 21:11:20 147

原创 [唯一分解定理]洛谷P1072

题目 添加链接描述 刚看以为是傻逼题,找了两个小时bug我是傻逼 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map> #include<qu

2021-08-09 01:47:32 270

原创 [dp]P2789 直线交点数

题目 题目 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map> #include<queue> #include<stack&g

2021-08-08 22:26:13 215

原创 [大数区间素数]洛谷P1835素数密度

题目 题目 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map> #include<queue> #include<stack&g

2021-08-08 22:25:03 244

原创 【SG函数板子】hdu1848

题目 题目 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map> #include<queue> #include<stack&g

2021-08-08 15:44:09 232

原创 [扫描线] 牛客第六场H Hopping Rabbit

题目 链接 思路 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map> #include<queue> #include<stac

2021-08-07 01:25:36 116

原创 hdu7029 median

题目 长为nnn的数组,把他们分成mmm份,给出每一份的中位数mjm_jmj​,请求这养的分法能不能实现,可以不用连续分 思路 对中位数进行排序,计算每一段连续的非中位数。 然后对每一段中位数进行判断,如果这一段减去前面的中位数个数之后的差能和前面的非中位数和后面的非中位数抵消,就合法。全部合法输出YESYESYES 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib>

2021-08-06 16:45:04 195

原创 [构造] 牛客2021暑假第六场C

思路 枚举两个点i,ji,ji,j,通过k=(2∗n−i−j)%nk=(2*n-i-j)\%nk=(2∗n−i−j)%n计算出kkk 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string>

2021-08-06 16:40:39 108

原创 [二分图最小点集覆盖] poj3041

题目 题目 n∗nn*nn∗n的矩阵,有kkk个子,每次可以消灭一行或者一列求把他们都消灭完的最少次数。 思路 把kkk个子的行和列连边,找二分图最大匹配 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<

2021-08-04 20:39:13 145

原创 [二分图最大权值匹配KM模板] 牛客2021暑假第五场J

题目 题目 思路 把时间和物品进行二分图最大匹配,因为答案求的最小值,所以是负值情况下的最大值 代码 #include<bits/stdc++.h> #define int long long using namespace std; const int INF = 0x3f3f3f3f3f3f3f3f; const int N = 310; int x,y,z,v; int w[N][N];//边权 int la[N], lb[N];//左、右部点的顶标 bool va[N], vb[N];/

2021-07-31 22:58:31 282 2

原创 [构造] cf

题目 题目 思路 长度为n和n+1n和n+1n和n+1相同的字符满足 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map> #include<

2021-07-30 21:47:41 109

原创 hdu6992 Lawn of the Dead

题目 题目 代码 基本和萍姐姐的 一模一样 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map> #include<queue> #inclu

2021-07-30 21:44:45 190

原创 [动态开点]2021牛客暑期4Tree Xor

题目 题目 思路 指路博客:添加链接描述 感谢xf不厌其烦地回答我的问题 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map> #include&l

2021-07-29 21:46:28 182

原创 [生成函数]2021牛客第四场 B Sample Game

题目 有一个随机数生成器,每次生成iii的概率为pip_ipi​,如果现在生成的数不小于之前生成的所有数,继续随机,反之,记上分数为n2n^2n2,nnn为已经生成的数的个数 思路 设最长答案长度是lenlenlen, 设生成函数,设它的系数是len>ilen>ilen>i的概率P(len>i)P(len>i)P(len>i),得:f(x)=∑i=0∞P(len>i)xif(x)=\sum_{i=0}^{\infin}P(len>i)x^if(x)=∑i=0∞

2021-07-27 03:01:56 242 1

原创 [最小生成树] 牛客第三场B-Black and white

题目 不想写了呜呜 这篇博客写的相当的好大家快来看这篇->博客 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map> #include<

2021-07-25 16:42:00 150

原创 [完全图三元环] 牛客暑假训练营第三场-J Counting Triangles

题目 题目 一个完全图,有两种不同的边,求相同三条边的三元环个数 思路 正难反易,完全图一共有n∗(n−1)∗(n−2)6\frac{n*(n-1)*(n-2)}{6}6n∗(n−1)∗(n−2)​个三元环,求出颜色不同的环的个数。遍历点,计算这个点连不同边的个数,两个个数相乘除222就是不同环的个数 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include

2021-07-25 14:13:03 381

原创 [int128] hdu 6970 I love permutation

题目 题目 给一个奇质数ppp,一个数aaa,序列bi=a∗i%pb_i=a*i\%pbi​=a∗i%p (1≤i≤p−1)(1\le{i}\le{p-1} )(1≤i≤p−1),求出序列bbb中逆序对个数%2\%2%2的结果 思路 本篇博客复刻 参考这篇->dalao博客 1,2,3....,p−1{1,2,3....,p-1}1,2,3....,p−1是ppp的完全剩余系, a,2a,3a,....(p−1)aa,2a,3a,....(p-1)aa,2a,3a,....(p−1)a也是ppp的完

2021-07-25 01:23:11 287

原创 [01背包+分组背包] hdu6968

题目 题目 有nnn个科目,mmm本书,学习一本书可以让这门课期末分数增加sss分,但是需要ddd天来学习。 现在一共有ttt天,最多能够挂ppp门课,求最高分 思路 先对每门科目进行010101背包,dp[i][j]dp[i][j]dp[i][j]表示第iii门课使用jjj天获得的分数,然后对每门科目的结果进行分组背包,ans[i][j][p]ans[i][j][p]ans[i][j][p]表示到第iii门课一共学习了jjj天,挂了ppp门,最后得出结果 代码 #include<cstdio>

2021-07-24 23:51:42 141

原创 [莫队]hdu6959zoto

题目 题目 有一个序列,长度为nnn,序列为(i,fx[i])(i,fx[i])(i,fx[i]),mmm次询问,询问以(x1,y1)(x1,y1)(x1,y1)作为左下坐标,(x2,y2)(x2,y2)(x2,y2)作为右上坐标形成的矩形内有几个序列内的点 思路 莫队,依照垂直xxx轴的最左端和左右端来分块,用树状数组来维护当前存在的点的数量 代码 #include<cstdio> #include<cstring> #include<cmath> #include&l

2021-07-21 23:12:29 209

原创 [01字典树] hdu6955 Xor sum

题目 找出最短的连续子序列,满足异或和不小于k 题目 思路 01字典树可以求数列间任意两数的异或最大值,将两个数换成前缀异或就可以求连续区间的最大异或值。 用l、rl、rl、r表示当前的区间,如果这个区间存在异或最大值>=k>=k>=k,就从rrr开始左移,寻找最近的满足条件的lll 代码 #include<bits/stdc++.h> using namespace std; #define ll long long const int maxn =3e6+5; int ti

2021-07-21 15:58:02 313

原创 [FFT]2021牛客暑假训练营 Hash Function

题目 添加链接描述 思路 刚学 先照着打了一遍,明天来补~ 代码 #include<bits/stdc++.h> using namespace std; typedef complex<double> CP; const int lim = 1<<21; double PI = acos(-1.0); CP a[lim],b[lim]; bool vis[lim]; const int P = 500001; void FFT(CP *x,int lim,int inv

2021-07-21 01:13:22 127

原创 [思维]cf 1546B. AquaMoon and Stolen String

题目 题目链接 思路 把前n个字符每个位置上字母出现的次数分别保存下来,再把后n-1个字符串每个位置上的字母出现次数减去,最后1~m都剩下了一个字母,即答案 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include&lt

2021-07-12 11:02:58 246

原创 [cf]思维1542B - Plus and Multiply

题目 题目 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map> #include<queue> #include<stack&g

2021-07-11 21:59:46 237

原创 [cf]F2. Guess the K-th Zero (Hard version)

题目 题目的询问比easy多,每次问出来之后都要把0变成1。 思路 用线段树记录一下l到rl到rl到r的sumsumsum。 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #inc

2021-05-07 00:28:52 220

原创 [cf]F1. Guess the K-th Zero (Easy version)

题目 交互题,输入"? l r"返回这个区间和,要在20次内找到第kkk个0 思路 对rrr二分,找到第一个让r−ans=kr-ans=kr−ans=k的位置 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include&l

2021-05-06 22:06:22 365

原创 【莫队】 CF D. Cut and Stick

题目 题目链接 思路 用莫队维护l—rl—rl—r区间众数, 找到规律如下: 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map> #includ

2021-04-21 00:19:30 171

原创 [莫队算法] 板子 P2709 小B的询问

理解 莫队算法就是通过改变询问的顺序来减少时间复杂度。 把数组分成了sqrt(n)sqrt(n)sqrt(n)块,根据块来处理问题。 板子 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string>

2021-04-20 17:21:22 124

原创 【二分图】牛客训练联盟 F.Group Project

题目 题目链接 题目大意: 一班和二班的同学可能会看不顺眼,同班的同学一定不会看不顺眼。现在要给他们分组,每两个为一组,看不顺眼的不能在一组,最多能分成多少组? 思路 哎 又看错题了 对不起队友 肯定是一个班的先分到一起 如果一班的人数xxx,二班的人数yyy都是单数,那么如果x∗y=mx*y=mx∗y=m就构成一个二分图,两个单的人不能在一起组队。 求班上的人数: 可以利用二分图染色求~ 代码 #include<cstdio> #include<cstring> #include&

2021-04-18 19:08:24 123

原创 【种族并查集+01背包回溯】

题目 题目 代码 #include<iostream> #include<queue> #include<vector> #include<map> #include<cstdio> #include<algorithm> #include<string> #include<sstream> #include<list> #include<cstring> #include<stac

2021-04-16 00:49:31 180

原创 [主席树|静态区间第k大]luogu3834

题目 题目 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map> #include<queue> #include<stack&g

2021-04-15 00:58:59 108

原创 [带权并查集] 食物链

题目 题目 题目 sum=0sum=0sum=0代表xxx与fxfxfx为同类 sum=1sum=1sum=1代表xxx吃fxfxfx sum=2sum=2sum=2代表fxfxfx吃xxx 思路 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostrea

2021-04-14 13:51:07 78

原创 [带权并查集]How Many Answers Are Wrong

题目 题目链接 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map> #include<queue> #include<stack

2021-04-14 00:43:30 107

原创 【线段树】Traveling Merchant

题目 有nnn个城市,它们在卖同一种物品。每个城市这个物品的起始价v[i]v[i]v[i],星期一和星期天加个为v[i]v[i]v[i],星期二和星期六价格为v[i]+d[i]v[i]+d[i]v[i]+d[i],星期三和星期五价格为v[i]+2∗d[i]v[i]+2*d[i]v[i]+2∗d[i],星期四为v[i]+3∗d[i]v[i]+3*d[i]v[i]+3∗d[i]。有一个人从sss城按顺序走到ttt城,在过程中进行了一次买卖,求最多能赚多少。 思路 创建七个线段树,分别是反推回去的城市111是星期

2021-04-01 14:39:10 147

原创 【dp】codeforces C. Planar Reflections

题目 题目链接 思路 dp[i][j]dp[i][j]dp[i][j]表示层数为iii衰变年龄为jjj的答案数 转移方程式为: dp[i][j]=d[i−1][j]+dp[n−i][j−1]dp[i][j]=d[i-1][j]+dp[n-i][j-1]dp[i][j]=d[i−1][j]+dp[n−i][j−1] dp[i][j]dp[i][j]dp[i][j]的答案数可以由在穿过这层后,还剩i−1i-1i−1层,衰变年龄为jjj的答案数和往回走,还剩n−in-in−i层,衰变年龄为j−1j-1j−1粒子答

2021-03-30 19:05:12 192

原创 【找规律】codeforces 710 F

题目 题目链接 思路 可以由(r−c)(r-c)(r−c)做差发现,差为0、10、10、1的可以合成一组,差为2、32、32、3的可以合成一组,以此类推。跨一个组ans+1ans+1ans+1,并且同组内(r+c)(r+c)(r+c)和为偶数到偶数点的距离为(r2−r1)(r2-r1)(r2−r1) 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include&

2021-03-27 00:11:33 152

空空如也

空空如也

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

TA关注的人

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