- 博客(100)
- 收藏
- 关注
原创 npm start时报错Error: error:0308010C:digital envelope routines::unsupported
npm start时报错Error: error:0308010C:digital envelope routines::unsupported
2023-02-03 23:21:08
324
3
原创 2019.12.3
格雷码通过样例前三位的格雷码可以发现,靠在这一位格雷码个数前一半的构成答案为000,如果靠在后半段则答案这一位为111。然后模拟舍去一半,看在下一位中是靠前还是靠后。要用到264−12^{64}-1264−1,要用unsignedunsignedunsigned longlonglong longlonglong longlonglong longlonglong 的范围:...
2019-12-03 21:21:28
345
原创 2019.9.22
足球比赛我们可以考虑枚举主队的进球数iii,则客队的进球数为jjj,且j<ij<ij<i时主队获胜,而主队赢iii球的概率为pi∗(1−p)n−ip^{i}*(1-p)^{n-i}pi∗(1−p)n−i,客队赢jjj球的概率为qj∗(1−q)n−jq^{j}*(1-q)^{n-j}qj∗(1−q)n−j则主队进哪iii场球又是任意的,我们可以得到如下柿子:ans=∑i=1...
2019-09-23 08:45:37
194
原创 分块
参考资料:「分块」数列分块入门1 – 9 by hzwer分块入门1~9什么是分块?分块就是将一段序列,分成若干个块,再进行暴力。数列分块入门 1给定一个长度为nnn的序列,有nnn个操作,区间加法和单点询问将序列分成sqrt(n)sqrt(n)sqrt(n)个块对于一段区间修改,分两种情况讨论:如果修改区间在一个块中,则暴力修改a[i]a[i]a[i]的值...
2019-09-22 19:02:26
446
1
原创 动态规划
线性DP:文件排版定义f[i]f[i]f[i]表示将第iii个单词放在当前行的最小难看程度边界f[i]=INF,f[0]=0f[i]=INF,f[0]=0f[i]=INF,f[0]=0状态转移:f[i]=min(f[i],f[j]+c(i,j))f[i]=min(f[i],f[j]+c(i,j))f[i]=min(f[i],f[j]+c(i,j))注意特判一个单词的情...
2019-09-22 19:01:38
398
原创 二分图与网络流
二分图如果一张无向图的nnn(n≥2)(n≥2)(n≥2) 个节点可以分成 A,BA,BA,B 两个非空集合,其中 A⋂BA \bigcap BA⋂B为空,并且在同一集合内的点之间都没有边相连,那么称这张无向图为一张二分图。 A,BA,BA,B分别称为二分图的左部和右部。二分图判定无向图是二分图⇔⇔⇔图中无奇环(长度为奇数的环)使用染色法,一个顶点涂黑色,另一个顶点涂白色,若搜到颜色...
2019-09-22 19:01:21
411
原创 2019.9.17考试
数学老师的报复f[1]=f[2]=1f[1]=f[2]=1f[1]=f[2]=1,f[n]=(Af[n−1]+Bf[n−2])f[n]=(Af[n-1]+Bf[n-2])f[n]=(Af[n−1]+Bf[n−2])%777,n<=2147483648n<=2147483648n<=2147483648矩阵乘法模板题,转置矩阵为#include <bits/std...
2019-09-17 19:35:16
158
原创 2019.9.15考试
Candy提示就告诉我们了,每一位上的数字在每一位都要轮一次,所有最终的和可以比表示为s∗11..111s*11..111s∗11..111的形式所以这个最小的质因子要么是sss的质因子,要么是11..11111..11111..111的质因子,只考虑前半部分就可以得到707070分#include <bits/stdc++.h>using namespace std;...
2019-09-15 16:42:17
158
原创 树链剖分相关
[ZJOI2008]树的统计#include <bits/stdc++.h>using namespace std;#define maxn 30010int AKIOI_maxd,AKIOI_sum,n,m,tot=0,head[maxn],top[maxn],rev[maxn],seg[maxn],f[maxn],w[maxn],dep[maxn],size[maxn],...
2019-09-14 16:20:10
87
原创 Intervals--差分约束
loj 10087题目分析:要使选出的数在每个区间[ai,bi][a_i,b_i][ai,bi]至少有cic_ici个设s[i]s[i]s[i]表示[0,i][0,i][0,i]选出的数的个数则:s[bi]−s[ai−1]>=cis[b_i]-s[a_i-1]>=c_is[bi]−s[ai−1]>=cis[bi]>...
2019-09-05 16:11:45
254
原创 相似基因 -- 动态规划
Luogu 1140题目分析:定义f[i][j]f[i][j]f[i][j]表示AAA串到了iii,BBB串到了jjj的最大相似度边界f[i][j]=−INF.f[0][0]=0f[i][j]=-INF.f[0][0]=0f[i][j]=−INF.f[0][0]=0f[i][0]=f[i−1][0]+w(−)f[i][0]=f[i-1][0]+w(-)f[i][0]=f[i−1]...
2019-09-01 16:54:38
308
原创 2019.8.31考试
A.FFF团题目分析:先TarjanTarjanTarjan缩点再从入度为000的点进行拓扑排序,如果拓扑的一个层次的点大于111,则无法到达,否则可以到达Code:#include <bits/stdc++.h>using namespace std;#define maxn 1010#define maxm 6010int que[maxn],du[max...
2019-08-31 16:02:03
191
原创 「一本通 1.4 例 3」Knight Moves -- 双向bfs
Luogu 10028题目分析:每次选队列中节点数少的扩展,注意清空把x打成y,调了很久x打成y,调了很久x打成y,调了很久Code:#include <bits/stdc++.h>using namespace std;#define maxn 310int ans,T,n,s_x,s_y,t_x,t_y,d[3][maxn][maxn];int dx[]=...
2019-08-30 16:54:48
423
原创 「一本通 1.3 例 3」小木棍--做勤劳的剪枝人
loj 10020题目分析:原来长度lenlenlen,max(a[i])<=len<=sum(a[i]),(summax(a[i])<=len<=sum(a[i]),(summax(a[i])<=len<=sum(a[i]),(sum%len==0)len==0)len==0)如果当前选了a[i],a[i],a[i],...
2019-08-30 10:03:19
292
原创 数的划分--可行性剪枝+上下界剪枝
Luogu 1025题目分析:由于分法不考虑顺序,所以我们按照数列严格不下降的方式分,即a[i]>=a[i−1]a[i]>=a[i-1]a[i]>=a[i−1]那么a[i]的下界为a[i−1]a[i]的下界为a[i-1]a[i]的下界为a[i−1]假如我们已经分好了a[1]−a[i−1]a[1]-a[i-1]a[1]−a[i−1],还剩下要分的m=n−...
2019-08-30 07:52:50
254
原创 垃圾陷阱--01背包
Luogu 1156题目分析:定义f[i][j]表示用前i个垃圾,使高度为j的最大生命值f[i][j]表示用前i个垃圾,使高度为j的最大生命值f[i][j]表示用前i个垃圾,使高度为j的最大生命值边界:f[i][j]=−INF,f[0][0]=10f[i][j]=-INF,f[0][0]=10f[i][j]=−INF,f[0][0]=10转移方程:f[i][j]=max(f...
2019-08-28 15:13:07
178
原创 奶牛会展--01背包+下标负数偏移
Luogu 2340题目分析:设f[i][j]表示用前i个奶牛,智商和为j时,最大的情商和f[i][j]表示用前i个奶牛,智商和为j时,最大的情商和f[i][j]表示用前i个奶牛,智商和为j时,最大的情商和由于j会为负数,需要偏移下标j会为负数,需要偏移下标j会为负数,需要偏移下标边界:f[i][j]=−INF,f[0][T]=0f[i][j]=-INF,f[0][T]=0f[i][j...
2019-08-28 10:29:05
214
原创 烛光晚餐--二维费用背包+下标负数偏移
Luogu 2079题目分析:定义f[i][j][k]表示体积为j,小明的开心度为k时,小红的最大开心度f[i][j][k]表示体积为j,小明的开心度为k时,小红的最大开心度f[i][j][k]表示体积为j,小明的开心度为k时,小红的最大开心度关键是解决k可能为负数的问题,用一个偏移量T,使下标往右偏移k可能为负数的问题,用一个偏移量T,使下标往右偏移k可能为负数的问题,用一个偏移...
2019-08-28 09:54:50
214
原创 最高的牛--差分+map
ACwing题目分析:如果(x,y)能互相看到,则(x,y)的高度都比x和y小,使中间高度都−1,差分实现(x,y)能互相看到,则(x,y)的高度都比x和y小,使中间高度都-1,差分实现(x,y)能互相看到,则(x,y)的高度都比x和y小,使中间高度都−1,差分实现由于给出条件重复,用mapmapmap判重Code:#include <bits/stdc++.h>us...
2019-08-27 21:27:34
294
原创 [SCOI2007]排列--状态压缩DP+余数的性质
Luogu 4163题目分析:这个题要求的排列是不能重复的,所有我们先假定sss的每位数不相等,最后统计答案数去掉重复的就OKOKOK考虑枚举排列的过程:有一个s串:abcs串:abcs串:abc,我们已经排列到了ba,此时的余数为jba,此时的余数为jba,此时的余数为j当我们把ccc加进来时,变成了bacbacbac,相当于就是ba∗10+cba*10+cba∗10+c而...
2019-08-27 17:07:56
145
原创 2019.8.24考试
题解A友好的生物Code:#include <bits/stdc++.h>using namespace std;#define maxn 100010#define maxk 7#define INF 2139062143int n,k,c[maxk],w[maxn];struct node { int a[maxk];}e[maxn];inline v...
2019-08-25 20:36:03
148
原创 牛客练习赛50
比赛主页题解A,模拟题目分析:开个数组记录每个字母第一次出现的块,看是否冲突Code:#include <bits/stdc++.h>using namespace std;#define maxn 110 int n,vis[500];char s[maxn]; void readda_() { scanf("%d",&n); ...
2019-08-24 17:27:44
153
原创 好一个一中腰鼓!-- 线段树动态查询最长01串
Luogu 2253题目分析:tr[nod].ls表示区间最左边的数tr[nod].ls表示区间最左边的数tr[nod].ls表示区间最左边的数tr[nod].rs表示区间最右边的数tr[nod].rs表示区间最右边的数tr[nod].rs表示区间最右边的数tr[nod].L表示从左往右能延伸的最大长度,tr[nod].R为从右往左tr[nod].L表示从左往右能延伸的最大长度,tr[...
2019-08-23 10:14:24
221
原创 「一本通 1.2 练习 3」灯泡 --三分+三角函数
loj 10016题目分析:注意lll初值的设置Code:#include <bits/stdc++.h>using namespace std;#define eps 1e-9int T;double H,h,D;double F_(double x) { return D - x + H - D * ( ( H - h ) / x );}v...
2019-08-23 09:21:32
294
原创 「一本通 1.2 练习 2」扩散 -- 二分答案+曼哈顿距离
loj 10015题目分析:二分时间ttt用并查集维护连通性,求出两点的曼哈顿距离如果<=2∗t<=2*t<=2∗t,因为两点都在扩散Code:#include <bits/stdc++.h>using namespace std;#define maxn 60int n,x[maxn],y[maxn],f[maxn];in...
2019-08-22 21:36:03
377
原创 「一本通 1.2 例 3」曲线 --三分
Luogu 10013题目分析:本题是求最小值,三分时,令lmid=l+(r−l)/3,rmid=r−(r−l)/3,如果f(rmid)>=f(lmid),就舍弃lmid右边那一截,令r=rmidl_{mid}=l+(r-l)/3,r_{mid}=r-(r-l)/3,如果f(r_{mid})>=f(l_{mid}),就舍弃l_{mid}右边那一截,令r=r_{...
2019-08-22 20:46:45
308
原创 「一本通 1.2 例 2」Best Cow Fences --二分答案
loj 10012题目分析:二分平均数,将原数列减去平均数,选sum[i]−min(sum[j])sum[i]-min(sum[j])sum[i]−min(sum[j])是否大于等于0注意答案要用rrr来转intintintCode:#include <bits/stdc++.h>using namespace std;#define maxn 100010#de...
2019-08-22 20:10:51
352
原创 均分纸牌与糖果传递 -- 贪心+数学
均分纸牌题目分析:多了往右边放,少了从右边取Code:#include <bits/stdc++.h>using namespace std;#define maxn 110int n,a[maxn],sum=0,q[maxn];inline int read_() { int x=0,f=1; char c=getchar(); while(c<...
2019-08-22 19:23:09
158
原创 「一本通 1.1 练习 4」家庭作业 -- 贪心+并查集
loj 10008题目分析:将按照w从大到小排序,放的越后越好w从大到小排序,放的越后越好w从大到小排序,放的越后越好维护一个f[i]表示i之前能放的最靠后的位置,用并查集实现f[i]表示i之前能放的最靠后的位置,用并查集实现f[i]表示i之前能放的最靠后的位置,用并查集实现Code:#include <bits/stdc++.h>using namespace st...
2019-08-22 16:05:46
415
原创 「一本通 1.1 练习 3」线段 --贪心
loj 10007题目分析:按照rrr从小到大排序,如果与前一个区间的不重叠,就贪Code:#include <bits/stdc++.h>using namespace std;#define maxn 1000010int n;struct node { int l,r;}e[maxn];inline int read_() { int x=0,f...
2019-08-22 15:22:25
250
原创 「一本通 1.1 练习 2」数列分段 --贪心
loj 10006题目分析:尽可能的多贪Code:#include <bits/stdc++.h>using namespace std;#define maxn 100010int n,a[maxn],m;inline int read_() { int x=0,f=1; char c=getchar(); while(c<'0'||c>'...
2019-08-22 15:13:59
284
原创 「一本通 1.1 练习 1」数列极差 -- 贪心
loj 10005题目分析:List itemCode:#include <bits/stdc++.h>using namespace std;#define maxn 50010int n,a[maxn];long long maxd,mind;struct hep_min { long long x; bool operator < (const...
2019-08-22 12:00:27
245
原创 [USACO09FEB]改造路Revamping Trails -- SPFA+分层图
Luogu 2939题目分析:定义f[u][i]表示到u这个点,免费了i条边的最小花费f[u][i]表示到u这个点,免费了i条边的最小花费f[u][i]表示到u这个点,免费了i条边的最小花费f[v][j]=min(f[v][j],min(f[u][j−1],f[u][j]+w))f[v][j]=min(f[v][j],min(f[u][j-1],f[u][j]+w))f[v][j]=mi...
2019-08-22 10:32:53
152
原创 「一本通 1.1 例 5」智力大冲浪 --贪心
loj 10004题目分析:经典的带限期和罚款的单位时间任务调度问题将www从大到小排序,优先处理罚款多的,将任务尽量安排在期限之前,并且靠后,如果找不到,则放在最后面Code:#include <bits/stdc++.h>using namespace std;#define maxn 510#define re registerint n,m;bool...
2019-08-22 08:55:01
442
原创 「一本通 1.1 例 4」加工生产调度-- 贪心
loj 10003题目分析:经典的流水作业调度问题使用JohnsonJohnsonJohnson算法,设N1为a<b的集合,N2为a>=b的集合,将N1按照a非减序排序,N2按照b非增序排列,则N1作业接N2作业为最优决策N_1为a<b的集合,N_2为a>=b的集合,将N_1按照a非减序排序,N_2按照b非增序排列,则N_1作业接N...
2019-08-21 21:49:44
474
原创 「一本通 1.1 例 3」喷水装置 --贪心
loj 10002题目分析:经典的区间覆盖问题我们需要用勾股定理预处理出一个喷头的左右区间如果一个喷头的r<=(h/2),continuer<=(h/2),continuer<=(h/2),continue,r==(h/2)r==(h/2)r==(h/2)的时候为什么不要呢,因为它只覆盖了一个点按照喷头的lll从小到大排序,每次对于当前的左界,在e[...
2019-08-21 20:41:43
308
原创 「一本通 1.1 例 2」种树 --贪心
loj 10001题目分析:经典的区间选点问题每次将树种到最右边,对答案更优,因为可以覆盖更多的区间将区间按照rrr越小排序,每次查看当前区间种的树是否够,若不够,从后往前种,注意只能在没种的上面种Code:#include <bits/stdc++.h>using namespace std;#define maxn 30010#define maxm 501...
2019-08-21 19:41:49
354
原创 kotori的设备--二分答案
Luogu 3743题目分析:如果机器每秒总的消耗<=p<=p<=p,则输出−1-1−1二分时间,注意r=1010,eps=10−6r=10^{10},eps=10^{-6}r=1010,eps=10−6求出充电宝能充的总能量pdcpdcpdc,对于一个机器能量不够就给它充,最后判断pdcpdcpdc是否小于000Code:#include &l...
2019-08-21 16:02:29
402
原创 [TJOI2007]路标设置 -- 二分答案
Luogu 3853题目分析:如果连个路标间的距离大于xxx,则需要增加dis/xdis/xdis/x个路标,若disdisdis%x==0,−−cntx==0,--cntx==0,−−cntCode:#include <bits/stdc++.h>using namespace std;#define maxn 100010int L,n,m,a[maxn];...
2019-08-21 15:33:03
219
原创 木材加工 --二分答案
Luogu 2440题目分析;注意1cm1cm1cm都凑不出来的情况,r由1变为0r由1变为0r由1变为0,这个时候如果在进入checkcheckcheck函数,a[i]/0a[i]/0a[i]/0就会炸Code:#include <bits/stdc++.h>using namespace std;#define maxn 100010int n,k,a[max...
2019-08-21 11:44:28
623
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人