自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(159)
  • 资源 (2)
  • 问答 (2)
  • 收藏
  • 关注

原创 省赛总结博客

这次省赛结束了,省赛中有一个最大的遗憾就是有些贪心,没有准确的定好目标,B题,M题,C题都想去弄,结果B题不是一个能出的题,想着碰运气,结果wa了两发,M题是一个能出的题,但是M题费了一些时间后,又去去弄C了,结果在C上又耗费了不少时间,还有一个是没有及时的看榜,D题容易,但是较晚才看到,而且M题没有去冷静的思考,注意力分散过大。比赛最关键的还是需要准确的定位题目,并且准确的把握是否应该提交,然后就是及时看榜,找通过率较高,通过较多的人数的题目优先,还有就是提升思维的强度,对一个题目应该能判断他的绕弯有多少

2021-05-10 16:51:24 238

原创 总结博客

涉及到数学的问题还是不行,有不少东西还没见过,导致一些中等的数学题目搞不定,有些学过的数学知识的中等题目也不是能快速的搞出来,有些涉及到数学的题目本身不是很难,大多都卡在了知识面窄,见识少上,有些题目就是这样,这类的题目见过,涉及到的数学知识知道会用,不用费太多的周折就能想明白,但要命的是不知道他,是空白。对于中等的较多类型的题目要多练习,涉及面要广量要多,针对某一个方面的很难的题可以用来锻炼,但不能把每一个方面的难题都作为目标,要重点抓住中等左右的题目,难题可以锻炼,但目标要少。能把中等左右的题的各种类型

2021-04-25 23:43:13 174

原创 近期比赛训练总结情况

经过近期的训练,最主要的问题就是我们之间的配合不好,在题目的取舍上做的不好,在检错上做的不好,缺乏经验,容易在一个问题上耽搁太久,又容易因为一些无脑问题消磨太多时间,有时在理解问题上有偏差,还有就是相互之间的交流少,想法沟通不太好,在一个是缺少比赛经验,在一台机器上调试的默契不够。 然后就是有时后容易操之过急,导致犯错,还有就是我的速度较慢,春雨速度较快,而治川不善于表达,善于独立思考。我需要提升速度,我们之间还要在题目取舍和顺序上多找经验,然后就是和治川多交流。...

2021-04-17 21:19:20 342 2

原创 HDU A simple stone game K倍动态规划减法游戏的一些理解。

两人取一堆n个石子 先手不能全部取完 之后每人取的个数不能超过另一个人上轮取的数*K,给n,K判断先手必胜并求第一步走法。先看k=2斐波拉契数列0 1 1 2 3 5 8 13,有关这个数列首先明确这几个事实1.任意一个整数可以写成斐波那契数列中的不相邻的项的和,2.任何一个整数n都可以写成两项斐波那契数的和3.f(i)=f(i−1)+f(i−2)f(i)=f(i-1)+f(i-2)f(i)=f(i−1)+f(i−2)f(i)=f(i−2)∗2+sf(i)=f(i-2)*2+sf(i)=f

2021-04-14 18:37:44 234

原创 2021年度训练联盟热身训练赛第四场 Rock Paper Scissors(卷积+FFT)

这个题目如果不看fft的板子就是一个高中函数函数变换的题。先留个坑,解释回头再写,latex不好打。FFT模板参考自这里#include<iostream>#include<cstdio>#include<cmath>#include<bits/stdc++.h>//#define int long long using namespace std;const int MAXN=1e6+10;//#define int long lo..

2021-03-29 22:43:00 144

原创 uml 图

#mermaid-svg-JCK27iMZUtDl0xZj .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-JCK27iMZUtDl0xZj .label text{fill:#333}#mermaid-svg-JCK27iMZUtDl0xZj .node rect,#mermaid-svg-JCK27iMZUt

2021-03-27 17:07:15 94

原创 cf 1497 A,B,C

A#include <bits/stdc++.h>#define int long long#define ll long longusing namespace std;template <class cl>void read(cl &x){ x = 0; int f = 0; char ch; ch = getchar(); while (!isdigit(ch)) { f = f | (ch

2021-03-27 17:05:30 139

原创 codeforces 1506 B Partial Replacement(dp)

可以dp一下暴力求解。f(x) 表示到第x个*时的最小的数量。#include <bits/stdc++.h>#define sd(a) scanf("%d", &(a))#define sdd(a) scanf("%lld", &(a))#define pd(a) printf("%d\n", a)#define pdd(a) printf("%lld\n", a)#define endl '\n'#define int long long#define l.

2021-03-26 22:52:37 294

原创 codeforces 1437 C Chef Monocarp (dp)

翻译成函数表示,f=∑i=1n∣t(x)−a(i)∣f=\sum_{i=1}^{n}|t(x)-a(i)|f=∑i=1n​∣t(x)−a(i)∣,其中x为不确定的值,t(x)>=0,求所有可能fff的最小值。那么,可以看出这个函数有两个变量,一个是t(x),另一个是a(i),其中a(i)已知,t(x)不好说,但是可以看出t(x)的范围在1到2*n之间,进一步缩小范围是amaxa_{max}amax​+n-1。然后,就需要造一个函数序列出来,构成上述函数的递推表示,fff可以说成是这个序列的母函.

2021-03-26 21:47:19 184

原创 有关组合的那点事1 (杨辉三角的三条折线)

有关组合数有几个基础的公式不是很好记,可以这样1.杨辉三角的三条折线。c(n,m)= c(n-1,m-1)+c(n-1,m);5+10=15 第一个折线。void to(){ c[0][0]=1; for(int i=1;i<=10;i++) { c[i][0]=1; for(int j=1;j<=i;j++) { c[i][j]=c[i-1][j]+c[i-

2021-03-26 17:27:23 108

原创 P3768 简单的数学题 洛谷 (杜教筛)

#include <bits/stdc++.h>#define ll long long#define int long long using namespace std;template <class cl>void read(cl &x){ x = 0; int f = 0; char ch; ch = getchar(); while (!isdigit(ch)) { f = f | (ch .

2021-03-24 20:33:14 129

原创 小结

这周主要是把杜教筛的应用搞得比较熟了,还有一个令人欣喜的发现是母函数,有了母函数这个东西,就能把dp和数学密切的结合起来,结合程度要比以往的以容斥反演等为联系要直接的多。这样,我现有的知识体系就能得到更深的联系。遗憾的是这周做的题目少,做题的时间不多,相比于上几周的收获小,没怎么写题解博客。...

2021-03-21 23:28:39 116

原创 sql-front6.1下载

http://mysql-front.freedownloadscenter.com/windows/free/

2021-03-17 19:37:44 562

原创 小结

把dp,数据结构 尝试着和数学挂钩还真不是很容易,dp搞起来虽然没有向以前理解起来那么难懂,但是是一个很大的阻力,需要做题复习慢慢回顾,还有就是数据结构了,不求多,把简单的线段树,树状数组,查分数组这三块和数学挂起来,再有一个是现在理论上比较熟悉的杜娇筛也与数学挂起来,这三个结合点是一个瓶颈,争取突破,把他们混着弄熟了,将是一个很大的提升。...

2021-03-14 23:05:11 103

原创 cf 1475 C 与 2021年度训练联盟热身训练赛第一场 B code names(二分图)

证明是二分图,二分图的最大匹配算法,洛谷p3386.

2021-03-14 22:19:55 119

原创 2021年度训练联盟热身训练赛第二场 E NIH Budget

这个题纪念一下,背包dp,结果写成了二维的,不对,害,改成一维的就对了。害,刚开始居然去想二进制表示结果暴力告吹,纪念一下吧。错误代码,二维的,在这个基础上变成一维的就对了。害,废物到家了,稀里糊涂的写二维。#include <bits/stdc++.h>#define int long long#define endl '\n'#define ioss ios::sync_with_stdio(0), cin.tie(0)using namespace std;template.

2021-03-14 21:05:47 210 1

原创 cf 1501C (复杂度估计)

这个题目最重要的是我们最初的想法的时间复杂度貌似为(2e5)2(2e5)^2(2e5)2,然后,我们就果断的放弃了这个想法,去寻找其他的奇技淫巧,但是,这就恰恰陷入了陷阱,复杂度好似达到了1e10,但是,事实上,如果这个数组的长度为1e4, 那么总共的情况C(1e4,2)=约为5∗1e7种情况C(1e4,2)=约为5*1e7种情况C(1e4,2)=约为5∗1e7种情况。但是两个数的和最大为5*1e6,这就说明了一点,如果数组为1e4,输出结果为NO的情况是不存在的。那么,如果数组的长度达到了2e5,那么.

2021-03-14 10:42:22 131

原创 洛谷 P3312 (莫比乌斯反演+树状数组)

设F(x)=∑d∣xd[d<=a]F(x)=\sum_{d|x}d[d<=a]F(x)=∑d∣x​d[d<=a],那么ans=∑i=1nans=\sum_{i=1}^{n}ans=∑i=1n​∑j=1m\sum_{j=1}^{m}∑j=1m​F(gcd(i,j))F(gcd(i,j))F(gcd(i,j)),那么设g∗1=Fg*1=Fg∗1=F, g=1∗μg=1*\mug=1∗μ,带入上式,可得,∑t=1n\sum_{t=1}^{n}∑t=1n​∑e∣t\sum_{e|t}∑e∣.

2021-03-13 23:49:35 200

原创 2021年度训练联盟热身训练赛第一场 C New Maths

这个题,找清楚两个数相乘的特点,用dfs模拟就可以,但模拟的时候有很多易错的地方。写在代码里面了。#include <bits/stdc++.h>//#define int long long#define ioss ios::sync_with_stdio(0), cin.tie(0)using namespace std;template <class cl>void read(cl &x){ x = 0; int f = 0; c.

2021-03-10 22:07:50 114

原创 本周小结

搞了老长时间的莫比乌斯反演,终于感觉上差不多是那么回事儿了,一些题目能出了,继续多做题进行巩固,还有就是在学习卷积的求法,线性筛,容斥,二项式反演等内容时,很多内容都有着线性dp的思想,特别是卡特兰数以及与prufer序列相关的一些东西让我对线性dp有了更深的了解,因为他们往往都有递推式,可以利用dp,有关卷积的容斥求法和01背包,线性dp的正推与倒推的一些技巧相似,而且有关二项式反演的一些问题有时也会和dp相结合,容斥最为朴素的方法是枚举2n2^n2n项数,但是往往数据过大,一个优化的方向是把项与项整合到

2021-03-07 22:23:08 96

原创 2021年度训练联盟热身训练赛第一场 F Pulling Their Weight

这个题二分重量就好,但是要注意细节 while(l<r) 与while(l<=r) 是有区别的,l==r是有可能的,这个要注意。不能想当然的写成while(l<r)。#include <bits/stdc++.h>#define int long long#define ioss ios::sync_with_stdio(0), cin.tie(0)using namespace std;template <class cl>void read(cl .

2021-03-07 22:15:42 194 1

原创 2021年度训练联盟热身训练赛第一场 E Early Orders

这个题,如果想在暴力的基础上进行优化,发现没有好的办法,但是如果想到用栈来存储结果,那么,一切就变得理所当然了,但是,做题的事实却总是陷在优化暴力上出不来,不愿意去或者是害怕换一种思想。#include <bits/stdc++.h>#define int long long#define ioss ios::sync_with_stdio(0), cin.tie(0)using namespace std;template <class cl>void read(cl.

2021-03-07 22:06:20 108

原创 cf 1494b

这个题,哎,想了一天,先入为主的思想严重,四个边角是关键,除去四个边角影响两个边,剩下的n-2个点是不会相互影响的,这些都容易想到,然后想反过来搞,先假设四边都黑,删去某些点,但是,反着搞没有使得问题简化,然后正着来,希望用一种贪心的思想来做,先考虑填满n-2个点,在考虑边角,按逆时针逐次的考虑,但是这样能不能成功需要运气,贪心策略试了不少,但都有漏洞。那么,改变一下,先考虑边角,再考虑n-2个点,那么,边角只有四个,可以用状态压缩的思想,0表示不填,1表示填,四位二进制数就可以模拟所有情况,这点想到了,.

2021-03-05 23:18:40 105

原创 codeforces 1494 A. ABC String

第一次切入的时候切准了就没事,但是,写的时候有个很难发现的错误找了好久,纪念一下。#include <bits/stdc++.h>//#define int long long#define ioss ios::sync_with_stdio(0), cin.tie(0)using namespace std;template <class cl>void read(cl &x){ x = 0; int f = 0; char ch;

2021-03-03 17:25:40 416 1

原创 cf 1485 A

http://codeforces.com/problemset/problem/1485/A这个题感觉比b,c题还烦。不好想到。#include <bits/stdc++.h>//#define int long long#define ll long longusing namespace std;template <class cl>void read(cl &x){ x = 0; int f = 0; char ch;

2021-03-01 23:02:50 96

原创 codeforces 1485 C floor and mod

如下。再说一句,这里需要注意的是最后的那个把k的范围缩短为x\sqrt{x}x​之前的那个算式,∑k=1y−1\sum_{k=1}^{y-1}∑k=1y−1​max(min(x/k−1,y)−k,0)max(min(x/k-1,y)-k,0)max(min(x/k−1,y)−k,0), 这里如果思考把max(min(x/k−1,y)−k,0)max(min(x/k-1,y)-k,0)max(min(x/k−1,y)−k,0)换成一个简单的式子以利用整除分块会引来更大的麻烦,而且不可取。所以,缩小范.

2021-02-27 23:05:27 100

原创 卷积的求法与配线性筛

如果是已知F(x),求f(x)的话,(就是f(x)是被卷函数,F(x)是卷积)可以利用容斥的方法,也可以利用反演公式,利用反演公式一般起到两个作用,化简方便降低复杂度或者是配出积性函数来线性筛。直接容斥求的原理如下,复杂度为nlogn .但前提是F(x)已知且易求得。代码如下这里是正向推。for (int i=1;i<=MAX;++i) for (int j=i<<1;j<=MAX;j+=i) F[j]-=F[i];或者是利用反演,乘上一个莫比乌斯函数,这样就可

2021-02-24 23:05:41 133

原创 二项式反演中至少与恰好的转换的问题

有关二项式反演的东西中较难理解的是至少与恰好的转换,其余的一些东西都比较好说,先说一个结论,把至少问题转换为恰好来做并不是存在至少与恰好就行的,因为利用二项式反演把至少与恰好转换有时候并不一定是对的,但一般混有排列数的运算与容斥的结合的东西往往是可以二项式反演的,但是没有排列数的计算的东西二项式反演可能是不对的,含有排列数的计算的算式利用二项式反演一般是没问题的。然后举个例子,有m个人,至少要选出n个人,问方案数,那么,如果对此进行二项式反演的话,会发现不对,这些个算式只有组合数,没有排列数的计算。

2021-02-23 23:24:56 501

原创 codeforces 1228E Another Filling the Grid(二维容斥)

这个题目关键是最小的熔池单位应该设为什么,如果设每行每列至少有一个一的一种情况为最小单位A(i),然后求他们的并集的话,那么不同情况之间的交集的大小有一定的规律,但是难以用表达式写出来,如果设某一行或某一列都不为一的情况为最小的熔池单位A(i),那么单位与单位之间的交集很容易用表达式写出来,假设n为2,那么某一行都不为一的情况表示为A1,A2,某一列都不为一的情况为A3,A4,按照熔池原理公式,求他们取反后的交集,用公式拆开后,可以很容易得提取公因子,而且公因子的系数为C(2,1),C(2,0),C(2,.

2021-02-20 23:56:36 584

原创 cf1200d

要覆盖矩阵的所有区域,那么只需要以n-k+1大的矩阵中的所有的点为k*k矩阵的左上角,那么,可以用n-k+1大的矩阵中的每一个点表示从该点开始修改的贡献值,计算出每一个点的贡献值,最后再取最大的值。可以先一行一行的考虑,然后再一列一列的考虑,考虑使得该行成为全白需要那些点作为左上角,然后把这些点的贡献值加一,然后发现需要频繁让一片矩阵区域的点全部加一,那么可以使用二维的差分数组进行o1修改,最后求一个前缀和算出每个点的贡献值。#include <bits/stdc++.h>#define .

2021-02-16 10:28:59 183

原创 洛谷p5495 p6810 (Dirichlet 前缀和与后缀和)

https://www.luogu.com.cn/problem/P5495https://www.luogu.com.cn/problem/P6810#include <bits/stdc++.h>#define int long long#define ioss ios::sync_with_stdio(0), cin.tie(0)using namespace std;template <class cl>void read(cl &x){ x

2021-02-12 00:20:03 206

原创 codeforces 1480 BThe Great Hero

错误代码:#include <bits/stdc++.h>#define int long long#define ll long longusing namespace std;template <class cl>void read(cl &x){ x = 0; int f = 0; char ch; ch = getchar(); while (!isdigit(ch)) { f = f |.

2021-02-08 22:05:33 126

原创 codeforces 1481C. Fence Painting

这个题目需要注意的一点是粉刷工人的粉刷次序是固定的,不能改变,然后做的时候按照粉刷次序可以改变来做,结果就是瞎忙活。粉刷工人的粉刷次序是确定的,这一点抓住,然后就好想了。但是,这个题目代码不好写,需要注意的一点是a,b,c的值是小于n的,而不是小于1e5的,而所有n的和值不超过1e5,这样用空间换时间就可行了,因为数组清零的时候只需要清除到n,而不是1e5,这样数组清零的时候的时间复杂度就很低了。错误代码#include <bits/stdc++.h>#define sd(a) sca.

2021-02-07 22:23:06 181

原创 线性筛

1.线性筛众所周知,线性筛可以筛素数,那么,一个数可以分解成素数的次方相乘的形式,而积性函数无非就是在原有的基础上把原来的素数次方给套上了一个f(),那么筛素数的时候做到了把素数次方相乘的所有情况搞了一遍,那么在原有的基础上套上一个f()也一样,这样就变成了积性函数的结果。对积性函数的考虑可以在原有的素数表上去添加,可以依据筛素数的表把积性函数所具有的一些个特殊情况给考虑完全。对于复杂的积性函数,就是先把下表整出来,再在这个表上套f(),考虑特殊情况,最后再对照着写代码。线性筛的优点再于只筛一次,找准

2021-02-04 01:06:04 226

原创 洛谷P4318 和 计蒜客 A1991 convex hull (模比乌斯与容斥原理)

这个东西如果数据量为1e6的话,那么可以直接线性筛把这个函数的表求出来,然后再两次前缀和,但是,数据量大的吓人,这样肯定是不行,直接硬来不行,考虑用数学简化。

2021-02-04 01:05:19 158

原创 小结

通过最近一段时间的学习,容斥原理,莫比乌斯函数,除法分块这三块的东西慢慢的变得清晰了,而且有关这些个知识点容斥原理是贯穿始终的东西,把它作为一个线索可以串联他们。终于进军杜教筛了,接触了一些有关杜教筛的东西。做了几场的cf,主要做了做一些c,d之类的题目,一个较好的兆头是一些个题目的一大部分工作可以完成了,距离最终的终点较近了。 以前不太喜欢写题解之类的东西,但最近觉得每弄懂一些知识点,每想到一些东西,每搞懂一道题目,都可以写上几篇博客,可以起到比较好的巩固效果。...

2021-02-04 00:15:08 104

原创 牛客练习赛76 F phi and phi 和 codeforces 1200 D. White Lines (差分数组)

这道题推算式好说,有意思的是一个差分处理比较巧妙。上面的东西写出来之后,按着他写代码就很容易了。cf 1200 D 二维差分(待写)

2021-02-02 21:57:16 152

原创 codeforces 1475 G Strange Beauty

题目的意思是给出n个数,把他们排序后,为了使得相邻的两个数之前的数是之后的数的因子,问最少需要删除多少个其中的数。这个题可以先设一个函数,f(x),然后再慢慢的去找f(x)要表示什么东西,显然,删除最少的数等于总数n减去最大的满足条件的那个序列长度,那么f(x)就应该表示长度,然后,这个x显然不能表示成排序后数组的下标,因为发生联系的是数与数之间的倍数关系,那么x表示为这个数列中的任意一个数更容易建立联系,然后就是找有关于这个函数的表达,那么就从最初的头开始找。先假设只有两个数x1,x2,如果序列为1.

2021-01-31 18:36:58 177 1

原创 牛客练习赛76 C.CG的通关秘籍与codeforces 1478D

这个题主要的一点是找到一个关系f(x,y)来实现对总的方案的划分,这种用两个元素之间的关系形成的函数似的东西来划分一个对象的思路用对了比较好使,往往找准之后就能一下子明朗。发现题目有这种势头的可以以此观点为指引方向。那么这个题的势头就很明显,设x1,x2为紧挨着的两个元素,f(x1,x2)表示x1,x2这两个元素之间所能搞出来的贡献点,总共有n-1个这样的f关系,且是相等的,算出其中一个。当x1选定,成顺序就是x1-1个,成逆序就是n-x1个,然后枚举x1,算出所有,然后这两个点固定完,剩下的n-2个.

2021-01-30 19:31:07 108

原创 codeforces 1476 D

可以这样可以很清楚的发现同一个折线上的点的贡献是相同的。由于都是从f1那条线开始走,所以把f1上的点的贡献算出来就行,然后想写dp,结果没写出来,搜索也不慢,复杂度o(2n),哎,菜鸡还是老实写搜索吧。然后,这道题还遇见了一个奇葩的事,在vscode 的上,ios::sync 后自己写的read()和cin混在一起用没事,但是到了codeforces上混着用就不行,而且,signed main()这种写法在codeforces上用c++11以上去交。最后一句废话,想好在写。#include<b.

2021-01-30 12:02:31 190 1

java+ssm+layui 酒店客房预定系统 mysql 数据库

java+ssm+layui 酒店客房预定系统 mysql 数据库 https://gitee.com/l1233/hotel-javassm

2022-08-21

tiny_coco-master.zip

coco数据集2017 mini版,很小,可以用来测试。

2021-10-15

名片管理系统 javaweb 登录注册增删查改与回收站管理 eclipse环境 使用mysql数据库

javaweb 初学者

2021-09-10

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

TA关注的人

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