自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

林苏泽

热爱可抵岁月漫长

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

原创 博客目录

目录数论数论G. Old Floppy Drive(二分+数学)D. Zookeeper and The Infinite Zoo(数位运算,贪心,数论)D. GCD of an ArrayB. Ralph And His Magic Field(组合数学+思维)B. New York Hotel(数学)Two Divisors(CF-Edu89D2)D. Divide and SumHankson的趣味题(蓝桥杯)数字全排列问题 G:

2021-03-17 20:39:18 219

原创 1793. 好子数组的最大分数

一个子数组 (i, j) 的 分数 定义为 min(nums[i], nums[i+1], …解释:最优子数组的左右端点下标是 (1, 5) ,分数为 min(4,3,7,4,5) * (5-1+1) = 3 * 5 = 15。解释:最优子数组的左右端点下标是 (0, 4) ,分数为 min(5,5,4,5,4) * (4-0+1) = 4 * 5 = 20。输入:nums = [5,5,4,5,4,1,1,1], k = 0。输入:nums = [1,4,3,7,4,5], k = 3。

2024-03-19 10:18:21 407 1

原创 力扣-收集足够苹果的最小花园周长[思维+组合数]

思维+组合数

2023-12-25 19:50:28 457 1

原创 机器学习-计算数据之间的距离

计算机视觉:在图像处理和计算机视觉领域中,可以使用曼哈顿距离来比较两个图像之间的相似性或距离,例如在文本检测和OCR(光学字符识别)中使用。路径规划和导航:在特定的城市区域或地图上,可以使用曼哈顿距离来估计两点之间的实际行驶距离或路程,从而确定最短路径或导航方案。电子商务:在购物网站或电子商务平台上,可以使用曼哈顿距离来衡量产品或服务之间的相似性,从而向用户推荐相关的商品或服务。传感器网络:在传感器网络中,可以使用曼哈顿距离来估计物理位置或传感器之间的距离,从而实现位置估计和目标跟踪等任务。

2023-10-18 18:44:14 617 2

原创 机器学习-最小二乘法

因为我们采用的是最小二乘估计,所以这里希望损失函数最小,所以求取函数导数为0的点,就是我们的最优解,因为这里是二次函数,所以导数为0的点就是最值点。最小二乘法其实就是为数据(二维)拟合出一条直线,为(三维)数据拟合出一个面。使得我们找到一条直线使所以的样本点尽可能靠近该直线,即每个样本点到直线的距离最短。的维度为(1,1)所以都是常数,所以转置不转置不影响数值的值。的维度是(1,1)也就是一个常数值。的维度是(n,1),所以。的维度是(1,n),的维度是(n,n),的维度为(1,n),的维度为(n,n),

2023-10-18 09:21:27 488 1

原创 前馈神经网络

初步学习前馈神经网络

2023-07-12 19:03:15 548 1

原创 解决 IDEA2021.2版本中新建Maven项目模板 只有两个问题

问题是这样的。我们先要的应该是这样的,解决方案:首先关闭IDEA中的项目,进到这个页面:点击插件,搜索Maven Archetype Catalogs下载即可,然后重启IDEA,之后新建Maven项目就好了。

2022-04-16 20:48:15 1614

原创 7-3 树的同构 (25 分)

思路:首先我们了解到它是如何是同构的?就是左右孩子可以互换,要不不换,那么唯一不变的是他们都是父亲节点的孩子,那么我们直接标记两个孩子,记录这两个孩子的父亲即可。这样我们用pair存放两个孩子,就是不管他左还有右。只记录他的父亲节点,然后用第二棵树去验证。这里需要特判只有一个节点时。直接判断这个节点是同一个吗就行。#include <bits/stdc++.h>using namespace std;#define pii pair<char,char>map<.

2022-04-11 18:50:54 307

原创 VMware安装Centos虚拟机

VMware安装Centos虚拟机首先安装VMware在这里说一下VMware16有一个个人版不需要注册码,VMware15需要注册码。而且有的电脑VMware15会出故障。然后下载就正常安装,这里推荐在软件管家里下载就行,没有就去官网里下载。其中安装VMware时会重新开机几次不要担心,让你重新开机,允许就行。(他要加载配置然后就是安装Centos系统​ 懂得都懂,不放C盘避免卡顿这个我选的默认下面那个。点击设置:进行系统安装桥接模式在这里,可以设置完系统在来修改安装系

2022-03-06 23:00:43 1039 2

原创 配置Sublime的C语言环境

Windows下载首先就是下载sublime,一般windows的软件仓库里是有sublime的,没有,或者没有软件仓库的没有关系,我们可以去官网下载即可。链接放这吧,也可以直接百度搜SublimeSublime搜索的话看见后面有官网字样。然后我们下载选择Stable版本,也就是稳定版本,也可以选择开发版本(需要一些费用)。这样Windows应该就完成了下载操作。配置首先Ctrl+~(ESC下面那个)粘贴以下代码,回车这里需要等一下import urllib.request,os;

2022-01-18 20:34:21 3416 4

原创 新装Ubuntu 搭建IDEA,java环境

Ubuntu配置JAVA

2021-12-19 12:55:17 1613

原创 IDEA新建项目绑定的MAVEN

2021-12-07 15:40:18 567

原创 CF1301C Ayoub‘s function (容斥+思维)

链接题意:给出长度为n的一个01串,其中有m个1,让我们找出最大点对[l_i,r_i]符合其中至少有一个′1′'1'′1′.求最大能有多少对。分析:首先我们直接找不好找,我们可以通过容斥来换个思路想,我们定义至少有一个1位f(x),全是0为g(x)那么我们要的是f(x)=sum−g(x)f(x)=sum-g(x)f(x)=sum−g(x),sum=n∗(n+1)2sum=\frac{n*(n+1)}{2}sum=2n∗(n+1)​我们要f(x)最大,那么就是让g(x)最小。g(x)如何最小那?

2021-11-23 16:26:49 859

原创 The 2019 ICPC Asia-East Continent Final(重现赛) M value (dfs+思维)

链接题意:给出一个集合A{1,2,3,n},我们可以取其子集,然后将aia_iai​加入score,同时如果存在ik=ji^k=jik=j(i,j是选出子集的元素)那么我们应该让score剪去bjb_jbj​分析:这个其实就是一个考思维的题,就是如果你能把这个复杂度想的差不多,好,你肯定会写出来。这个难也就难道如何分析这个复杂度。首先我们看题,肯定要对每个位置进行讨论看他是不是放入子集中,其次,他放入子集后造成的影响。我们发现2,4,8,16,32,64…这些是一个集合。3,9,27…这是一个

2021-11-16 21:01:55 466

原创 CF1420D Rescue Nibel (贪心+思维)

链接题意:有 nnn 条线段 [li,ri][l_i,r_i][li​,ri​],你需要从中选出 kkk 条令他们的交集不为空,求方案数对 998244353998244353998244353 取模的结果。分析:看完题我们还知道求交集,那么求交集一定是max(li,lj)<=min(ri,rj)max(l_i,l_j)<=min(r_i,r_j)max(li​,lj​)<=min(ri​,rj​)这样交集才不为空,所以我们可以先按左节点排序,右节点排序,排序完我们知道左节点一定会

2021-11-16 19:28:48 301

原创 CF1422C Bargain (DP+思维+数学)

链接题意:给定整数 n(1≤len(n)<105n(1 \leq len(n) < 10^5n(1≤len(n)<105 ,其中 len(n)len(n)len(n)表示 nnn 的位数)) ,现在规定每一轮Vova可以从中取出一段连续的几位数字,剩余数字即为该轮得分.结果可以拥有前导 000 .特别的,如果Vova取出了所有数字,那么该轮得分为 000 .现在请你求出所有不同取法得分之和对 109+710^9+7109+7取模后的值.特别的,如果有多种不同取法得到了同样的数字,得

2021-11-15 09:35:46 195

原创 CF1511D Min Cost String (思维)

链接为了最后的荣光.题意:首先定义如果存在这个s[i]==s[j] && s[i+1]==s[j+1] (i!=j)就会花费1代价,给出字符串长度n和给出你可以选用的字符数量m(从字符a往后数m-1个),让你构造出最小花费的字符串分析:首先是个构造体无疑,其次我们进入正题如何构造出来我们选择构造方式:最优不过不让两个连续的字符在其他地方出现,那么我们可以类似全排列的构造出来,假设是可选字符只有5个那么我们就从a开始,abacadae,然后换b开头bcbdbe,循环到最后我们

2021-11-14 22:46:16 316

原创 Codeforces Round #746 (Div. 2) E. Bored Bakry(math+dp)

链接题意:给定一个 n 个数的数组,要求找一个连续子区间,满足该子区间的区间且大于区间异或和。求该子区间的最大长度。分析:首先分析:当长度为奇数时会发生怎样的状况:如果首位是全1那么区间且在改为上是1,区间异或和也是1,如果不是全1那么区间且一定是0,而区间异或和可能是1也可能是0.所以我们得出长度一定是偶数,然后我们分析,只有全是1的时候区间且才比区间异或优,这时区间且是1,区间异或和是0.当我们从最高位分析时,我们判断到i位需要知道前一位是不是两个相等的情况,如果属于相等的情况我们才能往后看

2021-11-11 20:34:48 243

原创 Codeforces Round #750 (Div. 2)E. Pchelyonok and Segments (数学+DP)

链接君子,修身齐家,治国平天下。题意:Pchelyonok决定给Mila一件礼物。Pchelyonok已经“买”了一个长度为 n 的数组 a,但他觉得送一个数组太普通了。他决定将这个数组中的一些区间送给Mila!Pchelyonok想让他的礼物更漂亮,因此他决定从数组选择 k 个不相交的区间,满足:第一个区间的长度是 k,第二个区间的长度是 k-1,…,第 k 个区间的长度是 1。对任意i<ji \lt ji<j,第 iii 个区间在第 jjj 个区间左边。(即 ri<lj)r

2021-11-11 19:07:14 323

原创 Codeforces Round #695 (Div. 2) C. Three Bag (思维+贪心)

链接题意:这道题的意思其实就是,给你三个背包: 每一次任选两个背包,在这两个背包中分别取出a,ba,ba,b这两个数(不放回),同时用a−ba-ba−b来替换aaa,那么经过数次操作以后,这三个背包中就只剩下一个数字了,请问这个数字的最大值。 输入格式是:第一行分别代表了这三个背包的背包容量,之后的三行分别代表的是这三个背包的全部数字。分析:首先两种方式最优:有一个集合的贡献都是负的,其他的都是正的,这样只用负集合来将整的集合整合也就是(-a-b)这样最后整合到一个负数和一个正数然后在化正有两

2021-11-09 15:16:21 611

原创 Codeforces Round #695 (Div. 2) B. Hills And Valleys (思维)

链接题意:定义山峰(两边低中间高)和山谷(两边高中间低)。问最少这两种的和是多少?需要可以操作一个数。分析:首先我们需要先计算出不改变数会有多少种,和为多少?这个东西是好计算出来的,(就从头跑一遍)然后我们看每个数改变会改变多少,当下标为x的数改变时他只影响中间点为(x)和(x-1),(x+1).那我们我们就需要看改变这个数会变成什么,为了减少数量有两种选择,一种是变成前一个数,一种是变成后面的那个数,我们只需要判断出来即可。然后枚举一下改变的数。但是做的时候也不知道在想神马?// Probl

2021-11-09 14:48:05 130

原创 CF1423K Lonely Numbers (数学+思维)

链接题意:规定如果有两个数a,b,他俩构成的这三个数gcd(a,b),agcd(a,b),bgcd(a,b)gcd(a,b),\frac{a}{gcd(a,b)},\frac{b}{gcd(a,b)}gcd(a,b),gcd(a,b)a​,gcd(a,b)b​能组成三角形,那么a,b都不孤单。给出我们n,让我们找出1-n中有几个数孤单。分析:首先我们看到gcd 想到素数(哈哈哈博主习惯性操作),然后我们分析怎样的数会是孤单的,首先当一个区间结尾也就是x为素数,这个x一定孤单,为什么那,因为他与前面

2021-11-08 20:12:21 264

原创 CF1426E Rock, Paper, Scissors (思维)

链接题意:A和B进行剪刀石头布的游戏,一共进行n局:A能使用a个石头,b个剪刀,c个布B能使用x个石头,y个剪刀,z个布问A最少和最多可以赢多少局?分析:看完题直接写就好了,先分析A最少赢多少:最少赢那就是说A的石头尽量要和B的石头或者布遇见,那么就直接用a-x-z看剩多少石头,如果还剩说明他肯定会遇上B的剪刀,这样A就赢了。同样看剪刀和布就好了再看A最多赢多少,最多赢就是A的石头尽量遇上B的剪刀,那直接取最大值就行了。void solve(){ cin>

2021-11-08 19:36:26 2316

原创 ABC226E - Just one (连通图+思维)

链接题意:给出n个点m条无向边,让你构造出每个节点只有一个出度的图,问有多少种?分析:开始读错题了。读成每个节点可以有大于等于1的出度我们知道正确题意之后,进行解读,要求每个节点只有一个出度得知,在一个连通图中边数一定只能有节点数这么多,这样就有两种选择,所以我们就将问题转化成找合法的连通图,所谓合法就是边与连通图中的节点相等,我选择用并查集维护,并且维护边数点数。/// 欲戴皇冠,必承其重。#include <bits/stdc++.h>using namespace std

2021-11-08 14:10:29 239

原创 ABC 225 E - 7 (排序+思维)

链接题意:给出你n个点,然后他会与(xi−1,yi),(xi,yi−1)(x_i-1,y_i),(x_i,y_i-1)(xi​−1,yi​),(xi​,yi​−1)构成777然后让你连接(0,0)(0,0)(0,0)与这两个个点,其区间内不会有其他点介入,就算合格。我们可以删除一些点,问最多有多少个合格的。分析:题意证不太明白的话手模下样例就好了。(1,1),(1,2),(2,1)(1,1),(1,2),(2,1)(1,1),(1,2),(2,1)可以看到我们对于(1,2)(1,2)(1,2)

2021-11-05 20:08:07 216

原创 2018icpc青岛F . Tournament (构造)

题意:给出n个骑士,进行k次对战,每个骑士只能与另一个骑士对战一次,如果第i回合A对战B,C对战D,那么如果第j回合A对战C(D),那么B一定对战D©。问是否可能构成k场对局。字典序从小到大。分析:我们看最小的字典序,也就是我们想到的最优的不过就是1 2 3 4 5 6 7 8 (然而这个不能用,本人不能跟本人对战)2 1 4 3 6 5 8 7 (那么我们只好选优,肯定12互换,34互换)3 4 1 2 7

2021-11-03 20:08:57 405 1

原创 2018ICPC青岛(D,E)

2021/11/03 19:03:28D . Magic Multiplication题意:给出A,B可以计算出C,计算方式是:A的第一位与B位上的数相乘得到一个数,加入字符串,接着A第二位数,,举个例子就是:23 ×\times× 45=8101215,8=24,10=25,12=34,15=35.然后给出C,然我们求出,A,B,如果有多组符合条件,我们直接输出最小的A即可。分析:首先我们知道这个运算,那么我们就能够得到,如果我们确定了A的第一位,那么就可以通过C前几位确定B的全部位上的数字:

2021-11-03 19:28:23 273

原创 2021CCPC女生赛 C. 连锁商店(思维+状压DP)

链接题意:给出N个节点,给出M条边,我们只能从低节点跳到高节点。然后给出N个节点属于的公司,给出第i个公司第一次到给多少奖金。问从节点1开始,分别到达节点(1~n)最大奖金。分析:其实不难想到我们如果当前节点在x,有(a1,a2,a3…)这些节点可以到达节点x,那么我们选取(a1,a2,a3…)所有的状态转移过来就好了,状态表示我们可以用二进制,也可以用字符串数组等等,只要可以表示状态就行。状态转移有两种状态一种是在之前出现过,不用再加奖金了,把这个状态加入x另一种之前没有出现过,加上奖金并

2021-11-01 17:13:30 1306

原创 ARC 123 D - Inc, Dec - Decomposition (思维构造+DP)

链接题意:给出A序列,让你构造出B,C序列要求满足:Bi+Ci=AiB_i+C_i=A_iBi​+Ci​=Ai​B序列递增C序列递减使得∑∣Bi∣+∣Ci∣\sum |B_i|+|C_i|∑∣Bi​∣+∣Ci​∣最小化分析:我们要让B递增,C递减,∑\sum∑那么我们肯定要 满足Bi=Bi+1B_i=B_{i+1}Bi​=Bi+1​或者Ci=Ci+1C_i=C_{i+1}Ci​=Ci+1​所以一旦我们选择好B1B_1B1​也就确定了整个序列。我们看B,C是相反的单调性,不好分析,我们

2021-10-29 12:10:31 307

原创 ARC C - 1, 2, 3 - Decomposition(思维)

链接题意:给出一个数n,让你求分成最少个数,使得所有数和为n,并且这些数,每个位都为是(1,2,3)分析:首先其实我们只需要明白我们将每一位都分成(1,2,3)那么我们肯定从最高位看,看最少能分成多少个数,如果比原本之前的答案小(就是原本个数这一位置上都是1,不够用),那么说明我们还借位,从前面借1,然后继续判断即可。ll n, m;string str;ll a[N];void solve(){ cin >> n; for(int i = 0; i <

2021-10-27 20:18:53 223 1

原创 D. Frog Traveler (bfs)

链接题意:给出一个井高度为n,每个点有两个属性,第一个属性是他可以往上调(0,a[i]),第二个属性是他调上去会往下滑(b[i]).问最少多少步跳上去 (0)分析:首先我们默认可以直接BFS直接找,但是因为可能跳的比较远的话会超时。所以我们需要剪枝:怎么剪枝那?我们看如果我们当前在n他可以跳到(n~(n-a[i]))所以他跳完之后这些区间就不用在搜索了,所以下次看搜只需要搜(0 ~ (n-a[i]+1))这些,然后我们每次更新最大值即可。const int maxn = 3e5 + 10;

2021-10-25 20:01:05 362

原创 2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)

链接A 分组待补B 二进制队友写的#include "bits/stdc++.h"using namespace std;typedef long long ll;const int maxn = 1e5 + 5;#define debug(x) cout << #x << ":" << x << endl;#define mst(x, a) memset(x, a, sizeof(x))#define rep(i, a, b) fo

2021-10-25 19:43:18 2631 7

原创 Gym 102394 I. Interesting Permutation(DP)

链接题意:给你一个数字n,然后有一个长度为n的数列,这个数列的第 i 项值时某个数列的前 i 项的最大值减去最小值的到的结果,问你用着n个数字能构造出来多少种长度为n的数列。分析:首先我们考虑一下一定没有答案的方案:如果开头不是0,或者结尾不是n-1一定没有答案如果整个序列不是单调递增一定没有答案如果差值小于序列长度-1,一定没有答案(长度为x,差值最小这x个数分别是1,2…x,这样差值为x-1所以差值不会小于序列长度-1)然后我们分析:我们刚拿到这个问题,不知道如何解决,那么我们得找到

2021-10-21 09:38:34 132

原创 CF 1593 F. Red-Black Number (搜索)

链接题意:给出字符串长度n,一个数a,一个数b.然后将字符串拆分成两个数x,y,使得X%a=0,y%b=0分析:我们看数据范围都比较小,我们可以直接枚举每个数的余数,也就是 0~(a-1), 0~{b-1},那么我们就需要拿出两个维度来存放其余数,然后我们对于每一位i多有对应的两个余数,那么在开一维来存放到哪一位了。然后我们如果到达i位,并且连个余数出现过肯定就不用不用往后看了。当然我们还要记录那些位置放了什么。所以再开一维存放状态。string str;ll n,m;ll a,b;ll

2021-10-19 23:25:43 148

原创 ABC 223 A~F (C尺取,D拓扑排序,E思维,F分块)

链接A Exact Price对n取余看是否为0,注意特判0.B String Shifting找最小,最大,我们发现他是有个环形的字符串那么我们可以把n个字符串提取出来,排序即可。C - Doukasen我们从两端往中间走,看那一端先到交界处这段就要向前走下一块,速度会变,到了交界处另一端减去当前时间走的即可(速度不变),所以我们只需要比较走过两端最后一块的时间为多长,取小的即可。长度用double用ll是不对的哦ll n,m; struct node{ double a, b

2021-10-19 20:39:22 279

原创 ARC 128D - Neq Neq(dp+组合数学+思维)

链接题意:给出你一个长度为n的序列,你可以对其操作使得这个序列发生变化,问一共有多少种?对于连续的i-1,i,i+1,这三个数如果满足 ai−1!=aia_{i-1}!=a_{i}ai−1​!=ai​并且ai!=ai+1a_{i}!=a_{i+1}ai​!=ai+1​ 那么我们就可以将aia_iai​删掉。分析:明显看出利用DP来解决组合数学问题。那么我们认为第iii位置,表示到i有dp[i]种方案数。那么他会从那种状态转移过来那?首先dp[i]是继承dp[i-1],这一点是一定的,其次

2021-10-18 19:42:35 276 2

原创 ARC 128 C - Max Dot (DP+思维)

链接题意:给出你n,m,s, 和n个数a[i],让你构造出一个长度为n的一个序列p,使得∑pi∗ai\sum p_i*a_i∑pi​∗ai​最大,并且要满足一下条件0<=p1<=p2<=....<=pn<=m0<=p_1<=p_2<=....<=p_n<=m0<=p1​<=p2​<=....<=pn​<=m(∑pi)=s(\sum p_i)=s(∑pi​)=s分析:首先我们采用三段分割,至于为什么要三段

2021-10-18 15:44:13 323

原创 CF1594F Ideal Farm (思维+数学)

链接题意:给出n,s,kn , s , kn,s,k,求是否所有的长度为nnn且和为sss的正整数序列都有一段和为kkk的区间。分析:可以考虑构造一个序列使得没有和为kkk的区间。转化一下就是前缀和差值没有等于k的构造时,我们肯定想要前缀和越小越好,那么就可以使得前(k-1)个数都为1,那么和为(k-1),在第k个数我们必须选一个大于k的一个数还要最小话,肯定就是k+1。然后后面照样(k-1)个1+1个(k+1).1 2 3 ... k-1 k k+1 k+21 1 1 ...1 k+1 1

2021-10-14 19:56:45 214

原创 ABC 221 E - LEQ (树状数组)

链接题意:给出你一个长度为nnn的序列,然后让你从中找出子串要求第一个数比最后一个小,要求找出的子串求方案数?分析:首先我们肯定是要找两个数符合条件的两个数。确定这两个数之后,其中的方案数就是(2j−i2^{j-i}2j−i)方案, 就是从中间选0,1,2,3,…都选,一共这么多方案数。当我们枚举一个数,然后比他小的数有多少个时,我们肯定想到用树状数组来维护。然后剩下的问题,就是如何维护这个方案数2j−i2^{j-i}2j−i我们看 答案应该是∑2j−i=∑2j2i)\sum2^{j-i}=\su

2021-10-05 17:54:55 196

原创 ABC 221 D - Online games (思维+离散化)

链接题意:给出你n个人工作的区间,第一个是开始时间,第二个是工作多长时间,问有多少时间有多少人在工作。分析:首先我们如果不看数据范围的话我们肯定想用差分来做,但是现在区间是1e91e91e9所以我们不能直接用差分,看是我们知道一共n个人那么最多有2n个节点,我们把这些节点提取出来不就是另一种差分的方式吗?把2n个点离散化,然后我们知道差分的话要有两个端点,左端点是开始时间,右端点应该是结束时间+1,因为正常差分[l,r],我们是在a[l]++,a[r+1]–;所以我们的右端点应该是结束时间+1,注

2021-10-03 20:02:57 284

空空如也

空空如也

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

TA关注的人

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