自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IDEA中servlet输出语句输出乱码

真难搞,搞了一下午如图,问题解决之前,输出的不是"你好",而是乱码,一开始这个问题是在Request对象获取表单内容时出现的,按照网上的改了server.xml,也不行。后来一步步排查发现这个问题是控制台输出的问题,就是写一个输出语句输出字符串还是乱码再接着搞了很久,发现下图框框显示是乱码于是百度了这个框框乱码的解决措施1.修改下图的文件,最后一行添加-Dfile.encoding=UTF-82.先打开tomcat的安装目录编辑 conf 目录下的 logging.properties

2020-11-21 19:05:12 3683 11

原创 部署Servlet到tomcat和IDEA部署Web项目到tomcat

部署Servlet到tomcat1.搭建开发坏境将tomcat安装包中lib目录下的servlet-api.jar配置到环境变量classpath中:2.编写servlet代码(1)编写一个类实现javax.servlet.Servlet接口(2)重写5个方法(核心方法:service())import javax.servlet.Servlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException

2020-11-18 21:23:40 1092

原创 IDEA启动tomcat后访问错误:unable to ping server at localhost:1099解决

大佬解决:点我点我

2020-11-17 15:16:48 1325

原创 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver异常解决

今天试了一下JDBC连接数据库,出现报错java.lang.ClassNotFoundException: com.mysql.jdbc.Driver,添加jar包后也将其Add as Library,但是还是不行,最后排错发现是没有添加到dependencies中,奇奇怪怪,没有脑袋

2020-11-11 16:06:00 261

原创 P2962(折半搜索+状压)

题目挺新奇的一题,用二进制对应位来表示是第几个灯,同时也用二进制来表示对灯的操作,将和这个灯相连的那些灯全部置一,其他置零,那么我们对某个灯进行操作就只需要和这个灯相异或。比如,0号灯和1,3两个灯相连,二进制表示出来就是00…0001011,由于和1相异或状态取反,和0相异或状态不变,我们如果改变了第0个灯的状态,那么1、3也会改变,而把二进制表示的状态和00…0001011相异或就可以得到改变0号灯状态后的状态。此外,这个题直接搜索对所有灯的操作与否复杂度会有2^35,会超时,所以采用折半搜索,先对前

2020-07-12 21:07:56 198

原创 CF1139D step to one(数论+概率dp)

原题地址题意:给一个数m和一个空数组a,每次可以选1~m中任意一个数加入到a中,求最后a数组中所有数的gcd为1时的期望长度;令dp[i] 表示当前数组的gcd为i时,还期望添加dp[i]个数使得所有数的gcd为1;那么初始条件dp[1] = 0;状态转移公式:解释一下,1表示添一个数;求和表示从1~m中选一个数加入数组,期望是dp[gcd(i,j)],选到的概率是1/m。直接做复杂度O(m^2),过不了,所以要优化,观察这个式子,gcd(i,j)肯定会出现重复项,比如,当i=4时,j=6和j=8都

2020-06-12 22:19:51 197

原创 BZOJ4971:记忆中的背包

题目玄学构造题,01背包的逆向构造。首先可以明确模数是没用的, 我们一定可以构造出方案数小于模数的一组数据(因为只有背包体积w已知的条件下,可以构造出方案数为任意值的物品数据)。这玩意儿构造的自由度太高,还有就是数不止一个,且互相之间没啥关系,不好下手。题解的方法是构造这样一组数据:由x个1和若干个w/2(向上取整)的大数,对于这样一组数据,我们必须且只能选一个大数a,对总方案数的贡献是C(x,w-a)(从x中取w-a得方案数);令dp[i][j] 表示i个1,方案数为j所需要的最少的大数物品个数,那么

2020-06-02 15:25:00 186

原创 Codeforces Round #638 (Div. 2)

B题很容易可以判断出最终的结果肯定是某个长度为k的字串不停地循环,问题关键在于如何确定这个子串,即怎么在原序列中找一个长度为k的子序列。任意一个长度为k的子序列肯定不行,因为如果原序列中存在不在这个子序列中的其他数,那么就无法表示,所以我们找原序列中不同的数的个数。如果原序列中不同的数个数大于k肯定不能用循环长度为k的序列表示出来;如果小于等于k那么我们就把这些不同的数当作基础串来循环输出,不足...

2020-05-02 18:04:08 114

原创 「LibreOJ β Round #2」贪心只能过样例(bitset,暴力)

题目今天在看bitset的是时候看到了这道题,暴力写了一下果不其然T了,后来发现我的暴力实在太暴力了,适当剪枝后,我们枚举的对于每个x[i],我们取值是a[i]到b[i],当前能够到达的状态必须是前一轮能得到的状态,每增加一种数,其实增加的只是最大最小范围中的数,所以我们只需要枚举这个范围中的状态是否能由前i-1种数转移过来就行;#include<bits/stdc++.h>#i...

2020-05-01 19:57:54 237

原创 树链剖分

参考(还有图,讲的明白!)树链剖分:即把树分成多条链来进行所需要的操作,比较常见的的是重链剖分。先介绍部分概念重儿子:一个节点的所有儿子中子树最大的那个儿子轻儿子:除了重儿子之外的儿子重边:连接重儿子的边称为重边轻边:连接轻儿子的边重链:由重边组成的树链;如果单个结点也可视为重链,就可以把整棵树剖分成多条重链。我们可以通过一次dfs找出每个结点的重儿子,然后再进行一次dfs把树剖分...

2020-03-17 10:54:05 184

原创 最大流(模板EK,dinic,isap)+最小费用最大流(spfa)

模板题这三种算法基于寻找增广路径来求解最大流,当一个网络图中不存在增广路径时我们就得到了最大流;1.EK://直接使用bfs找最近的增广路径,每找到一条就更新残余网络,然后继续找,直到不存在为止,这个真好懂^ V ^#include<bits/stdc++.h>#include<iostream>#include<algorithm>#includ...

2020-03-03 16:46:18 266

原创 八数码问题(A*搜索+剪枝)

题目新技能!康托展开:个人感觉就是全排列中用哈希,把状态压缩了,例如1~9的全排列,如果直接保存,那么最大就是987654321,如果需要标记这个状态的话,数组是不可行的,采用康托展开就可将范围压缩到1 ~ 9!,这样就可以开数组标记;其实也就是离散化,但是离散化的查找是log的,而康托展开可以O(1)地求得;公式:X = A[0] * (n-1)! + A[1] * (n-2)! + … ...

2020-02-27 16:50:11 420

原创 hdu 6599(回文树+hash)

题目思路:先建好一棵回文树,然后问题就是如何快速判断一个结点代表的回文串是不是题目要求的回文串,暴力判断就是顺着后缀链接找,然后就T了 emmm。而实际上在插入一个结点时,这个代表的回文串我们可以通过它的长度和现在插入到第几个字符这两个信息判断出它的起始位置,起始 l 知道,末尾 r 知道,长度为len,如果要满足题设要求,即[l,l+(len+1)/2]这个区间的子串也应该是回文串,在这里有个...

2020-02-24 17:59:46 214

原创 Manacher算法

Manacher算法是求解一个字符串的最长回文串长度的线性做法;如果暴力求解最长回文串,也就是枚举每个回文串的中心,之后向两边拓展的方法, 复杂度达到了O(nn),而Manacher则将其优化到了O(n);首先,一个字符串的最长回文串可能有奇数个字符,也可能有偶数个,Manacher算法为了统一,进行了预处理,在每个字符的前面和后面都加上了一个从未在原字符串中出现过的字符,从而使得所有回文串长度...

2020-02-18 12:00:28 122

原创 后缀数组

首先学习一下基数排序;//#include<bits/stdc++.h>#include<iostream>#include<cstdio>using namespace std;//基数排序:一种稳定的,非比较的排序方式。分为LSD和MSD两种方式,LSD通过从最低为开始,//将所有数的同一位分配到桶中,并通过合并桶的方式进行一个部分排序,持续这样...

2020-02-16 21:39:45 201

原创 Matrix Matcher(字符串哈希||AC自动机)

题目法一:字符串哈希,注意一下进制数取大一点;用getchar()+%c读入的时候会超时,用%s就不会,我在想%c是不是很慢。。//#include<bits/stdc++.h>#include<queue>#include <cmath>#include<algorithm>#include<iostream>#inclu...

2020-02-13 10:16:12 167

原创 AC自动机

AC自动机:用于解决多模式串的匹配问题。第一次听到还以为是自动A题的玄学,。,与kmp的思想类似,如果暴力来思考的话,对每一个模式串在原串中进行kmp,时间直接炸裂,这时候就需要ac自动机登场啦。例题:hdu2222AC自动机包括三个大部分:建立字典树,求取fail数组,进行匹配;首先还是初始化及预先声明int tree[maxm][N],cnt = 0,root,fail[maxm],...

2020-02-10 11:51:56 142

原创 最近公共祖先(LCA)算法

最近公共祖先:设结点x是u,v的祖先并且x的深度是u,v所有共同祖先中最大的,则称x是u,v的最近公共祖先;LCA的求解算法有三种:1.tarjan算法求解

2020-02-07 11:58:08 749

原创 hdu2767(利用tarjan将图变成强连通图)

题目题意:求解将一个图变成强连通图需要添加的最小边数思路:首先用tarjan将图缩点变成DAG,既然是强连通图,那么每个点都应该能进也能出,所以统计一下出度,入度为0的点的数量,要求边数最少,所以取max(innum,outnum)作为答案;#include<bits/stdc++.h>#include<map>const int maxn = 3e4 + 10;...

2020-02-05 12:36:40 176

原创 Codeforces Round #617 (Div. 3)

C题题意:寻找字符串中最短的一个子串,使得’U’的数量等于’D’的数量并且’L’的数量等于’R’的数量;思路:模拟走的过程,标记前一次到达某个点的操作在数组中的位置pos,如果再次走到这个点,那么表明i到pos这一段都是没用的,这段长度小于答案的长度的话,就更新维护;#include<bits/stdc++.h>#include<map>const int max...

2020-02-05 11:21:21 97

原创 tarjan算法求解强连通分量

参考基本概念:强连通:有向图G中,如果某个结点v1有一条到v2的路径且v2有一条到v1的路径,则称这两个点强连通;强连通图:若有向图G中任意两个点都强连通,则称G是强连通图; 强连通分量:有向图的极大强连通子图称为强连通分量,注意是极大而非最大,这包含了两个意思:1.有向图的强连通分量可以有多个;2.如果选取了某个子图G2且G2强连通,但在图G中还存在一个点v,使得v和G2中任意一个点强连...

2020-02-04 16:38:13 191

原创 poj3228(并查集)

题目一开始题都没读懂,“maximum adjacent distance”把我给整懵了。。。题意:给一个图,图中一些点有黄金,一些点有放黄金的仓库,但有容量限制,问把所有黄金都能装进仓库的路径中权值最大的那条路是多少。思路:这道题可以用并查集,先记录输出黄金的城市个数num,并用sum[i]表示第i个点是输出黄金还是输入黄金,把黄金所有量或者仓库存储量都给并查集的头,在合并的时候,出现了输出...

2020-02-03 10:50:59 148

原创 Educational Codeforces Round 81

C. Obtain The String题意:给两个字符串s,t选择最少的s的子序列拼接成t用多个s去匹配t,看能否把t匹配完,这样暴力跑每个字符会t,所以可以进行一点优化,记录s中每个字符后面出现了哪些字符,然后就可以O(1)地进行转移;#include<bits/stdc++.h>#include<iostream>#include<cstring&gt...

2020-01-30 18:02:11 1308 1

原创 hdu1828,扫描线求矩形边长

这道题利用扫描线求取矩形的周长,不包括重叠部分。可以扫两次,竖着扫一次,横着扫一次,扫两次这个我写出bug来了,现在也不知道bug在哪儿QAQ,反手一想算了还是去写扫一次的。画图模拟一下扫描线扫的过程会发现我们横着的周长就是每加入一条扫描线后线段树总长的变化,而竖着的则和我们线段树维护的被覆盖的区间是几段有关,设是x段,那么本次竖着的周长=(下一条扫描线高度 - 这一条扫描线的高度) * x ...

2020-01-28 20:37:45 276 3

原创 hdu4638 Group(莫队)

Problem DescriptionThere are n men ,every man has an ID(1…n).their ID is unique. Whose ID is i and i-1 are friends, Whose ID is i and i+1 are friends. These n men stand in line. Now we select an inte...

2020-01-27 12:00:06 86

原创 Codeforces Round #615 (Div. 3)

这次网页简直是卡爆了,直接心态被卡炸了。,。,。,D题很明显,加入的y可以变成y%x+tx,把所有的y取余x,统计数量,若当前MEX%3的数量不为0,那么一定有一个y可以填充当前的MEX,MEX++,一直重复直到MEX不能被填充。//#include<bits/stdc++.h>#include<queue>#include <cmath>#incl...

2020-01-25 19:13:16 160

原创 poj 3279(状态压缩的搜索)

题目题意:给一个仅由0,1组成nm的矩阵,每次操作可以反转一个单元格(把0变成1,1变成0),同时这个单元格上下左右的所有格子也会反转,求出把整个矩阵都变成0所需的做小操作次数,不可能的话输出-1思路:力扣上有一道很类似的题:转化为全零矩阵的最少反转次数这个唯一的区别就是要记录一下路径;其实我一点没看出来这是个搜索,求抵达某一状态的最小操作数,讲道理广搜是可以做,就是状态的保存不经过处理的...

2020-01-24 10:22:22 1636 2

原创 排位赛补题

我爆零了,佛了,看来方法不太对T_T;做题太容易先入为主了,一错到底。。。。1.light oj 1077:How Many Points? (数论gcd)题意:给定A(x1,y1),B(x2,y2)两个点,求线段AB上有多少个点的x,y坐标都是整数;思路,一看就知道涉及到AB线段的斜率,不妨设其为k = y/x;且这是将k的最简分数,那么就意味着横坐标每移动x,纵坐标就会移动y,而二者都是...

2020-01-21 10:38:28 3080 2

原创 poj3261 Milk Patterns (哈希+二分)

Farmer John has noticed that the quality of milk given by his cows varies from day to day. On further investigation, he discovered that although he can’t predict the quality of milk from one day to th...

2020-01-18 16:36:36 371

原创 HDU6534 Chika and Friendly Pairs(树状数组+离散化+莫队)

Problem DescriptionChika gives you an integer sequence a1,a2,…,an and m tasks. For each task, you need to answer the number of “friendly pairs” in a given interval.friendly pair: for two integers ai...

2020-01-17 22:34:05 326

原创 hdu4348 To the moon(可持久化线段树)

BackgroundTo The Moon is a independent game released in November 2011, it is a role-playing adventure game powered by RPG Maker.The premise of To The Moon is based around a technology that allows us...

2020-01-15 20:06:30 423

原创 Super Mario(主席树+权值线段树)

题目:添加链接描述思路:先把数据离散化,按照权值建立主席树,然后对于一个高度h,我们找的答案是区间中不大于h的数,那么我们求取了mid后,如果h大于mid,那么左子树的数都小于h所以要统计左子树的上的数量,然后继续递归求解右子树,一直下去直到叶节点,返回它的值就ok,还有就是我们查询的高度也是离散化之后的高度。upper_bound找的时候不要找飘了#include<bits/stdc+...

2020-01-14 16:16:00 304

原创 周练补题

D:D - Knight Tournament CodeForces - 356A题意:编号1到n的人打架,给出m个区间, 编号位于这个区间中的人打架,再给出这个区间中最后胜利的人,对于每个人,求打败他们的人的编号。思路一:线段树维护一个区间的胜者编号,由于每次只有第一次被打败有效,因此要倒着遍历区间,从这个区间的胜者的编号为中点,分成两个区间分别进行维护。但是我脑子卡,非要正着搞。思路二(...

2020-01-12 20:41:10 270

原创 poj2411,Mondriaan's Dream(状压dp)

题意:计算用给定的1*2的方块填满高为h,宽为w的矩阵的方案数.这题想了个dp[i][j]表示枚举到第i行时且第i行之前的都填满时,第i行的状态为j,但是无奈我想转移的时候卡住了,然后看题解,发现什么兼容模式有点看不懂,后来找到了一篇和我dp数组一样的博客,从中学到了状态转移方式(博主叫银之夏雪,也是参考kuangbin的博客)我思考的时候,把放方块假想为涂颜色,那么每次涂肯定是两格(横着或者...

2020-01-10 11:00:14 229 1

原创 树形dp小结,入门

今天树形dp学习了一下,整个总结,虽然以前就小看过,但差不多忘完了,唯一记得就是:树形dp嘛,就是在树上的dp,这讲得超级形象。对于状态方程,目前做题碰到了两类:一维:直接dp[i],维护一个以i为根时的最优状态。二维:dp[i][j],表示以I为根时,决策是j时的最优状态。这其中也接触了一点树的性质一,树的重心:当去掉树中重心这个点后,所剩的所有子树节点的数量中的最大值s,比去掉树中其...

2020-01-07 21:01:02 182

原创 区间dp(Pangu and Stones)

题意:给n堆石头,标号为1到n,每堆石头有一定的个数,每次可以选择[L,R]中任意一个数那么多堆来合并,每次合并的花费是合并后石头的的总个数,求花费的最小值思路:dp[i][j][p]代表把区间[i,j]的石头分成p堆的最小花费,所以对于i到j这段区间,我们枚举中间的断点k,可以把区间分成 i 到 k 和 k+1 到 j 两个区间,把 i 到 j 分成 p 堆的最小花费,就相当于把 i 到 k ...

2020-01-07 20:30:15 143

原创 拓展kmp(2020新年第一篇博客 学无止境冲啊)

拓展kmp算法可解决以下问题,给定两个字符串s1和s2,可以求出s1的extend数组,其中extend[i]表示s1从第i位开始的子串和s2的最大公共前缀长度,举个例子:可以看到extend[0]=4最长公共前缀是abab...

2020-01-01 17:04:52 163

原创 学习笔记:KMP

kmp用于在一个字符串中寻找一个模式串。kmp讲解其中next数组的求解与用法值得注意。利用next数组求解循环节:假定一个字符串长度为len且len%(len-next[len])=0,那么其最小循环节的长度为len-next[len],而且这个字符串由该循环子串重复len/(len-next[len])构成;如果len%(len-next[len])!=0,说明还要加一些才能成为循环字...

2019-12-30 17:40:20 118

原创 LIS,LCS,LCIS

LIS(最长上升子序列),LCS(最长公共子序列)是动态规划中基础的两个问题,今天连同他们的联合版LCIS一起总结一下。LIS(最长上升子序列):有两种方法,一种DP(n*n),还有一种解法复杂度是贪心+二分(nlogn)法一://dp[i]表示以i结尾的最长上升子序列for(int i=1;i<=n;i++){ dp[i]=1; for(int j=1;j<...

2019-12-18 22:16:08 226

原创 初识状压dp

状压dp就是用一个集合来表示状态的DP,可以优化时间复杂度,而这个集合就是我们的二进制数,每一位二进制有0和1两种状态,可以表示用或者不用 等对立的状态,所以学习状压dp的时候还需要了解位运算的知识比较常用的位运算if(i >> j & 1) {};//判断i的第j位上是不是1i - (1 << j); //在i的二进制表示中第j位是1的条件下,减去i的...

2019-12-16 21:34:34 136

空空如也

空空如也

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

TA关注的人

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