自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Haskell 安装 Cairo

cabal 文件(无需修改,在 package.yaml 添加依赖后,运行 stack update 会同步更新)提示 gcc 自带的 pkg-config 没有高于 1.2.0 的 cairo 包。, 并配置 Path, 目的是用到 MSYS2 中的 pkg-config.运行 stack-build,编译失败,大概提示未指定 cairo 版本。注意:这里必须重启 VSCode,否则系统环境中的变量不会更新。在 VSCode 的 PowerShell 中运行。运行 stack build,报错。

2023-11-28 21:12:18 170

原创 JSP学习

1.在Eclipse中创建的Web项目:浏览器可以直接访问 WebContent中的文件,例如http://localhost:8888/MyJspProject/index1.jsp其中的index1.jsp就在WebContent目录中;但是WEB-INF中的文件 无法通过客户端(浏览器)直接访问,只能通过请求转发来访问注意:并不是 任何的内部跳转都能访问WEB-INF;原因是 跳转有2种方式:请求转发 、重定向。2.统一字符集编码a.编码分类:设置jsp文件的编码(jsp文件中的

2020-12-25 22:42:57 146 2

原创 swagger2使用@ApiParam为参数填充注解时无法传输正确的参数到url

如图,我在控制类中声明一个函数,作用是根据id查找用户信息。在生成swagger文档时,为了让前端更容易理解,需要添加注解,但在添加ApiParam注解后,却出现了输入参数无法正确传到url的报错。这是不加ApiParam注解的文档。这是添加ApiParam注解的文档。解决方法:在参数列表中,添加@PathVariable注解。...

2020-11-14 19:59:12 2679

原创 Centos7 安装 mysql 8.0

准备工作1.查看是否有安装过mysqlrpm -qa | grep -i mysql2.删除mysqlyum -y remove mysql-* (注意这里区分mysql大小写)一般用rpm -e 的命令删除mysql,这样表面上删除了mysql,可是mysql的一些残余程序仍然存在,并且通过第一步的方式也查找不到残余,而yum命令比较强大,可以完全删除mysql.(ps:用rpm删除后再次安装的时候会提示已经安装了,这就是rpm没删除干净的原因)...

2020-10-27 20:17:59 336 1

原创 个人总结的git常用指令

以VSCODE为例在创建一个项目时,会有一部分文件不需要上传到github,这个时候,在项目中创建文件名为“.gitignore”的文件,文件里包含了项目上传时忽略的文件/文件夹。(例如:.history .vscode)然后开始项目的上传。打开终端 git init //进行初始化这个时候,原文件夹中我们进行忽略的文件就隐藏起来了,command+shirt+.可以显示隐藏文件。回到终端git add . //将我们的项目放置到暂存区里git commit -m 第一上传文件 //把暂

2020-10-08 10:15:07 123

原创 jsp页面可以在浏览器中运行但无法在eclipse内部显示

之前在Eclipse中运行一个最简单的jsp页面时,一直显示页面无法正常显示,但是将路径拷贝到浏览器中就可以运行了。这是因为eclipse使用的是操作系统内置的浏览器,所以需要修改内置浏览器配置command+R -> 输入inetcpl. cpl -> 连接 ->局域网设置 -> 自动检测 勾选上就OK了。...

2020-09-23 17:16:52 1989

原创 Java环境配置

JDK安装及环境变量配置(此教程来自林老师)1、JDK安装及环境变量配置:首先到SUN公司的网站下载JDK(J2SE Development Kit)URL:http://www.oracle.com/technetwork/java/index.html下载并安装,由于安装JDK的过程与一般软件的安装方式一样,这里就不细讲了。安装完JDK后,重点在配置上: JAVA_HOME、CLASSPATH、PATH 这三个环境变量。JavaEE5之后,这三个环境变量没有特别需要的话可以不配置。以下图

2020-09-14 20:38:53 102

原创 杭电多校2020第八场

Isomorphic Strings题意:两个字符串s,t互为cyclical isomorphic,当且仅当s将前x个字符移到末尾后,s与t想等,例如s = abcde, t = deabc,那么s和t互为cyclical isomorphic。给定一个s串,长度为n,k为n的因子,现在将s分成k个等长的字符串s1,s2,…sk,问是否存在一个t串,使得存在一个k,满足s1,s2,…,sk都和t互为cyclical isomorphic。题解:枚举k,将s分割成k串s1,s2,…,sk,设t=s

2020-08-17 16:43:03 163

原创 杭电多校2020第五场

Paperfolding题意:一张纸折叠K次,可以横着或竖着折叠,折叠后沿着十字剪开,询问剪开后剩余纸张的期望值。题解:横向折叠和纵向折叠对答案的影响是独立的,设横向折叠了x次,那么最后剪开完,会出现2x 条割线,即会有2x +1张纸,设纵向折叠了y次,同理,会有2y条割线,2y +1张纸,最后,纸张会被切割成 (2x + 1) * (2y +1)张,由于n = x + y,期望值可以表示为:计算过程:根据二项式定理,最终可转换为:AC_CODE:ll powmod(ll a,ll b

2020-08-05 15:29:51 296

原创 杭电多校2020第四场

Deliver the Cake题意:n个地点,m条双向道路,地点的类型分L、R、M三种,到达L点需保持状态L,到达R需保持状态R,到M两种状态都可以,切换状态需要消耗时间x,问s到t点所需最少时间。题解:将M类型的点一分为二,1 ~ N所有类型为M的点设为L点,N+1 ~ 2N所有类型为M的点设为R点,那么在加边的时候有7种情况:(1) u 为 L 并且 v 为 R 或者 u 为 R 并且 v 为 L,那么 u 到 v 的距离为 w + x。(2) u 为 L 并且 v 为 L 或者 u 为

2020-07-31 22:38:33 356

原创 杭电多校2020第三场

Little W and Contest题意:给定n个点,有两种点,权值分别为1和2,初始时,n个点互不相连。接着会加入n−1条边,保证每次加入的边的两个端点事先是不相连通的。接着会加入n−1条边,保证每次加入的边的两个端点事先是不相连通的。要从中选择3个点,满足3个点的权值之和不少于5,且3个点之间互不相连,计算出不同的选择方案的数量。要从中选择3个点,满足3个点的权值之和不少于5,且3个点之间互不相连,计算出不同的选择方案的数量。每加入一条边,都要输出当前连通状态下,不同的选择方案的数量。每加

2020-07-29 16:29:30 189

原创 2020牛客暑期多校训练营(第六场)G Grid Coloring

2020牛客暑期多校训练营(第六场)G题意:给定一个边长为n的正方形,有k种不同颜色的火柴,询问一种合理的摆放位置,使得其满足以下限制:(1) 所有颜色的火柴数目应该相同(2) 图中不存在一个单色循环(3) 某一行或一列至少存在两种颜色。题解:其实这题十分简单,赛中忘记特判n=1导致wa了。先排除没有答案的情况,n=1,k=1,2 * n * (n + 1) % k != 0。解开这题的关键,是想办法构造每一个小正方形对边颜色不等,容易证明符合上面三种限制。考虑四种情况:(1) n &

2020-07-27 18:01:27 360

原创 hdu6787 chess

题目链接题意:有n个位置,可以在第2到n-1上放置传送门,在第i个位置放置传送门可以传送到1~i-1的任意位置,每个位置最多只有一个传送门,从1出发,每次可以前进1-11个位置,问有多少种放置方案可以恰好到达第n个位置。题解:如果有11个以上的传送门连接在一起,那么必然没有办法到达第n个位置,设dp[i][j][k]表示当前考虑到第i个格子,已经用了 j 个传送器,包括 i 号位置有连续k(0~10)个传送器,那么,当k为0时,即i号位置不放置传送器,方案数为 dp[i][j][0] = Sum(d

2020-07-26 22:39:45 148

原创 杭电多校2020第二场

1001-Total Eclipse题意:n座城市,m条路,每个城市有一盏亮度为bi的灯,每次可以选择一个联通块让联通块上所有城市k(k的数量要尽可能大)的灯亮度减1,但灯亮度为0的城市不能算入联通块中,问让全部城市的灯亮度变为0的最小次数是多少。题解:(这题偷偷改过题面也没发通知==,加了k要尽量大这句话)我们可以找某个联通块上亮度最小的城市,一直减直到该城市亮度为0,然后划分为更小的联通块,一直反复即可让所有城市的灯亮度为0。(但是我不会)反过来做就比较简单,先假设所有点都是孤立的,sum

2020-07-24 17:10:48 243

原创 杭电多校2020第一场

1011-Minimum Index题意:遍历字符串,求所有前缀的最小后缀,最后求和。题解:这题使用到Lyndon Word的知识,对于字符串 ????,若 ???? 的最小后缀为其本身,那么称 ???? 为 Lyndon 串(Lyndon Word),任意字符串都可以分解成S=t1t2t3…tk,t表示已经确定的Lyndon串,该分解是唯一的,并且有ti<=ti+1的性质。用三个循环变量 ????,????,???? 维持一个循环不变式:·S[1…????−1]=S1S2⋯S????

2020-07-22 15:47:03 430

原创 Codeforces Round #629 (Div. 3) DEF

D. Carousel题意:给n个数染色,这n个数组成一个环,相邻不同数的颜色必须不同,问最少需要的颜色种类数和具体的染色方案。题解:·如果n个数都是相同的,那么只要选择一种颜色即可。·如果n是偶数且n个数不全相同,那么只要按照121212…染色即可,因为相同的数可以不同颜色。·如果n是奇数且n个数不全相同,那么只要寻找有没有a[k]=a[k+1]即可,如果有,那么,从1到k,k+1到...

2020-03-28 23:34:45 98

原创 2020牛客寒假算法基础集训营1

F.maki和tree题解:满足题意的两种组合,第一种是一端为白色,另一端为黑色,第二种是两端都为白,遍历字符串,枚举黑色的节点,dfs搜索与该节点的白色节点数。设某黑点连接了 k 个白点,第 i 个白点的权值为 f(i) 。这样第一种情况的的数量为第二种的数量为...

2020-02-05 15:20:22 127

原创 单调队列

单调队列它分两种,一种是单调递增的,另外一种是单调递减的。不断地向缓存数组里读入元素,也不时地去掉最老的元素,不定期的询问当前缓存数组里的最小的元素和最大的元素。用单调队列来解决问题,一般都是需要得到当前的某个范围内的最小值或最大值。一道经典的板子题题意:k表示缓存数组的大小,在每k个数中询问最小值与最大值。题解:最小值做法是,用数组模拟单调队列(或者用deque),_index数组表示下标...

2020-02-02 21:47:19 152

原创 Codeforces Global Round 2

Contest LinkA.Ilya and a Colorful Walk题意:有n栋房子,每栋房子都有一种颜色,并且房子的位置为i,问最远的不同颜色的房子的距离是多少。题解:贪心,从最开始和最后面开始找,比较当前第i间和第j间房子颜色是否相等,如果不等,就比较第i间和第j-1间、第i+1间和第j间,如果不等,进行下一次比较,如果进行下一次比较,说明第i,j,i+1,j-1的房子颜色相...

2020-01-28 00:32:45 187

转载 vector push_back() 和 emplace_back()

push_back()函数向容器中加入一个临时对象(右值元素)时, 首先会调用构造函数生成这个对象,然后条用拷贝构造函数将这个对象放入容器中, 最后释放临时对象。但是emplace_back()函数向容器中中加入临时对象, 临时对象原地构造,没有赋值或移动的操作,因此emplace_back()大部分可以取代push_back()。push_back总是允许使用统一的初始化,例如:struc...

2020-01-05 13:54:40 231

原创 [kuangbin带你飞]专题一 简单搜索(大全)

密码:123456A - Dungeon Master题意: 给你一个三维空间,’.‘表示可以通过,’#'表示不能通过,求从起点’S’到终点’E’的最短路径。题解: 裸bfs,每次可以往八个方向移动,303030用dfs会TLE。AC_Code:#include <iostream>#include <cstdio>#include <string....

2019-10-27 00:13:23 551

转载 【数论】 Codeforces Round #538 (Div. 2) C. Trailing Loves (or L'oeufs?)

????题意:给定两个数 n,b,计算 n! 在 b 进制下有多少个0。题解:先插入这位大佬的博客:链接假设x = n!,那么存在唯一的数组d,满足????=????1????????−1+????2????????−2+…+????????*????0 ,如果存在一个数m满足1<=m<=k 且 dm = 0,那么m <= i <= k 范围内所有di 皆为0,即所求答案。因此,该问题可转化为:求最小的m满足dm = 0。...

2019-09-28 11:53:26 110

原创 并查集

A - Wireless Network题意:所有电脑遭到攻击,需逐个修复,每次修复一台电脑,每台电脑的坐标为(xi,yi),当两台电脑A,B都修复好且它们之间的距离小于等于d,A,B联通,或者存在一台电脑 C, A,B,C都修复好且A,C之间的距离小于等于d,B,C距离小于等于d,那么A,B联通。操作符“O”代表修复电脑,操作符“S”代表查询。题解:suc数组记录修理好的电脑的序号,如果...

2019-09-13 16:19:40 89

原创 2019 Multi-University Training Contest 9 Rikka with Coin(思维)

戳题意:Rikka手中有无数个面值为10美分,20美分,50美分,1美元的硬币,现在有n件商品,每件商品的价格为ai元,问Rikka最少需要携带多少个硬币,使得买每一件商品都不用找零(商品与商品之间互不影响)。如果一定得找零则输出-1。题解:如果某件商品的价格膜10不为0,则一定得找零,输出-1.然后,10美分的硬币最多只会用1个,如果需要2颗10美分的硬币,选取1颗10美分和1颗20美...

2019-08-20 16:49:32 120

原创 H - Load Testing(思维)

挺有趣的一道题题意:给你一个序列,问你如何通过增加其中的几个数,使得这个序列先上升后下降,或这一直上升,或者一直下降,求添加数的总和最少是多少?题解:从前往后记录全部数严格单调递增最少需要添加数的前缀和,然后从后往前记录全部数从后往前严格单调递增(从前往后遍历)最少需要添加数的前缀和,最后遍历一遍,比较以每个点为转折点的时候需要花费的最小代价:for(int i=1; i<=n; ...

2019-08-17 13:47:18 301 1

原创 Codeforces Round #579 (Div. 3) 补题

戳题意:给定字符串s1,s2,从s1中删除字串(连续的子序列),删除后s2仍是s1的字串,询问可以删除的字串的最大长度。题解:分别从左到右和从右到左记录s2中字符串在s1中出现的位置,如果删除的字串是在最左或者最右,则必定满足 max(r[0], len1 - l[len2-1] - 1);删除的字串在中间,满足 max(ans, r[i] - l[i-1] - 1); 维护最大值ans...

2019-08-15 11:25:44 77

原创 2019 Multi-University Training Contest 7 Final Exam

戳题意:Cuber QQ复习期末考试,总共有n道不同的题目,每道题目分值可能相同也可能不同,第i题分数为xi分,则Cuber QQ需要xi+1小时复习该知识点才能解决这道题,复习时间少于这道题则无法通过这道题,现在有n门功课,总分是m,保证Cuber QQ完成k道题至少需要多少时间复习。PS:0分的题目需要1小时复习时间,某门科目的分数可能就是m,不一定要复习所有功课。题解:我们可以站在...

2019-08-13 10:07:07 100

原创 ACM 一些小知识

1.常用头文件:#include <iostream>#include <stdio.h>#include <math.h>#include <string.h>#include <time.h>#include <stdlib.h>#include <string>#include <bit...

2019-08-06 23:34:14 158

原创 2019 Multi-University Training Contest 5 - 1007 permutation 2

题目链接题意:给你N个数,范围是 [1 , N], 数与数之间两两不相同,现在要你将这些数排序,使得第一个数为x,第N个数为y,且相邻两个数的差 |aj - ai| <= 2,输出总共有多少种情况。比赛时队友写了个暴力,找到其中一些规律,对于N,x,y,其前x+1个数,后N-y+2个数总是保持不变的,比如20,4,16,那么所有情况肯定是4,2,1,3,5,…,15,17,19,20,...

2019-08-06 11:15:03 126

原创 String【贪心】

题目链接题意:给你一个字符串S,选取长度为k的子序列(不要求连续),子序列需满足输入的26个条件,第i+1行表示字母表中第i个字母最少需要的个数以及最多需要的个数。题解:逐位考虑,每位取的时候需按照字典序顺序,而且必须以下条件:1.取该字符cnt的时候必须确保该字符后面的该字符个数加上已经取该字符cnt的个数总和大于等于所需该字符的最少个数,即:a[cnt][j] + used[cnt...

2019-08-03 14:42:54 63

原创 【2019多校第一场补题 / HDU6582】2019多校第一场E题1005Path——最短路径+网络流

题目链接题意:T组数据,n个点和m条边组成一个有向图,边是单向边,每条边都有权值,需要你删去一些边使得1到n的最短路严格变长,删掉边的费用为边的长度,求最小花费。思路:先跑一遍最短路求出1到其他点的最短距离,然后 倒着dfs 求出最短路的DAG的所有边,重新建图,跑最小割就行了。//套板子#include<bits/stdc++.h>#define ll long long...

2019-08-02 14:40:31 195

原创 Keen On Everything But Triangle

题目链接题意:给你n个数,q次询问,每次询问一个区间 [l, r],任选三边组成三角形,边只能单次使用,求最大周长。题解:算最大周长的思路是将 [l, r]的边进行排序,从大往小取边,如果不能构造出三角形就舍弃最长边,继续判断。但是排序加上q次询问肯定会T,因此我们可以用主席树维护,可以通过查询第k大取边,时间复杂的是logn,慢慢枚举。斐波那契数列是极端不能形成三角形的序列,所以最多47...

2019-08-01 23:43:37 109

转载 vector容器find()、erase()、unique()、insert()的用法小结

定义一个vector 容器vec: vectorvec;1、查找find:vector::iterator it=find(vec.begin(),vec.end(),val);第一个参数是array的起始地址,第二个参数是array的结束地址,第三个参数是需要查找的值,int k=find(vec.begin(),vec.end(),20)-vec.begin();k的值即为正整...

2019-08-01 18:36:41 518

原创 区间dp题解

题目链接题意:有n个人上台演出,每个人ai有一个diaosi值di,他们的不开心值si会随着自己的出场顺序u而变化, si = di * (u - 1),求最小不开心值总和。题解:给的顺序是入栈的顺序。区间dp : dp[i][j]表示第i个人到第j个人的最小不开心总值,sum[i]表示前i个数的和。k表示i ~ j 区间第 i 个人(即 i 到 j 区间第一个人)第 k 个上台表演,...

2019-07-27 15:18:57 139

原创 Codeforces Round #575 (Div. 3) D1,D2

题目链接题意:一个无限长的b字符串为"RGBRGB…", 现在给你一个字符串a,你可以对字符串的任意一个字符进行修改,问最少修改次数使a,b的最长公共字串长度为k。题解:在D1中字符串a长度最长仅为2000,因此可以遍历修改后满足a,b的最长公共字串长度为k的所有情况,维护最小次数sum即可。时间复杂度为O(nk).PS:由于字符串a仅由’R’,‘G’,'B’构成,因此当k=1时sum ...

2019-07-25 13:27:19 94

原创 数学考试

题目链接题意:n个数中选两个长度为k的不连续区间,使两个区间和最大。题解:sum数组记录前缀和,sum1数组记录以i为结尾,区间长度为k的区间和,从第2k开始遍历,maxx1维护从0到i-k间最大的区间和,因为从第i-k到i的区间与0到i-k区间无关,所以可maxx2维护这两个区间总和的最大值。AC代码:////Write by Yuan Xilan on 2019...//#i...

2019-07-23 14:33:49 106

原创 2019 Multi-University Training Contest 1 A题

题目链接题目:每辆车的长度为li,车头距离终点线的长度为si,车本身速度为vi,车不能互相赶超,在追上前车后需与前车共速,已经经过终点线的车仍继续行驶,n表示Tom and Jerry车前总共有n辆车,然后输入的每一纵行依次为每一辆车的特征,如样例一:总共有两辆车,Tom and Jerry车辆li = 2, si = 7, vi = 2,前面的车li = 2, si = 1, vi = 1....

2019-07-23 10:51:44 135

转载 Vim骚操作

转自:http://coolshell.cn/articles/5426.htmlvim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progres...

2019-06-23 21:39:10 407

原创 mac环境下用vim运行C++,Java和Python(hello word)程序

一.用vim写C++程序1.用vim新建一个test.cpp文件vim test.cpp2.输入插入命令i然后写入代码#include <bits/stdc++.h>using namespace std;int main(){ cout << "Hello World\n"; return 0;}然后保存代码先按Esc键,然后输入:x3...

2019-06-21 15:13:10 884 2

原创 洛谷P1540 机器翻译

题目链接题意:计算机有M个内存,每个内存可以存一个单词,如果计算机内存里存储某些单词,则不需要向外界搜索,如果有新的单词,计算机就会把内存中第一个单词删除并添加折这个新的单词,现在要你求总共需要添加多少个,一开始内容为空。思路:开一个vector容器,每次遍历即可,主要想练练vector。代码:////Write by Yuan Xilan on 2019...//#includ...

2019-06-21 13:11:15 129

空空如也

空空如也

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

TA关注的人

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