自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于iview-admin的动态菜单

基于iview-admin的动态菜单思路定义routers合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入最近公司前台一直在使用...

2021-08-30 11:25:15 8823 36

原创 @ControllerAdvice + @ExceptionHandler 不起作用,springboot异常处理的一些坑

在sringboot中使用@ControllerAdvice处理异常十分轻松,但是在使用的过程中踩到了个坑,浪费了一些时间。也是怪自己没有好好解读springboot的文档!下面是我的@ControllerAdvice声明的全局异常处理类的代码:@ControllerAdvice(basePackages = {"com.dmcn.oa"})@ResponseBody // 这样的话...

2019-04-16 09:43:08 16429 1

原创 APIJSON 自动化接口和文档的快速开发神器

摆脱官方Demo,写出个性的APIJSON嗯!这十几天公司很忙,下来决心搞一搞开源的自动化框架,眼花缭乱的作品一眼就认定了它——APIJSON,是它的灵活吸引了我。网上APIJSON资源并不多,这一期我带大家以我的思路学习APIJSON~~ 我原先也是被官网的案例搞蒙的人哈哈认识APIJSONAPIJSON是一种JSON传输结构协议。客户端可以定义任何JSON结构去向服务端发起请...

2019-03-19 20:34:11 29058 11

原创 moco入门到实践,手把手搭建一套全面的moco本地服务

1. **全新的界面设计** ,将会带来全新的写作体验;

2019-03-03 23:46:20 3277

原创 SSM全局异常处理——两种实用实现方案

最近公司忙完项目,感觉要总结一下。先前做项目时自己不是很门清这块,在网上查阅资料后发现资料也不是很全面,因此自己摸索出来后就想着赶紧给大家分享一下,尽管此技术点很基础,但是希望能够帮到大家。实现的功能:在我们的项目运行过程中,无法完全避免出现一些位置的运行时异常(比如NullPointerException),而恰恰我们并没有对该异常进行处理,那么就会将此异常抛向用户...

2019-02-28 01:34:29 4419 3

原创 使用Update修改不报错但是修改不成功

因为项目中使用自动生成ID,使用的是雪花算法,长度超过了前端js可处理长度,所以当后台id传到前台后会丢失精度,导致无法匹配到要修改的id。这时,会将所有的Long类型转成String再生成json对象传给前台,避免出现精度错误。sql执行后 后台日志说影响行数为0。然后发现是id不存在。这个时候要自己扩展一个消息转换器。

2023-08-01 23:33:47 610

原创 D1. Xor-Subsequence (easy version) DP优化

D1. Xor-Subsequence (easy version)

2022-10-24 20:27:21 283 1

原创 洛谷 Floating point exception: 8 Floating-point exception. 报错

#include using namespace std;const int N = 50010;#define int long longstruct Query{ int id, l, r;} q[N];set st; // 开一个set维护当前区间出现的袜子int cnt[N], block;int n, m, a[N], ans[N], ans2[N], sum;int gcd(int a, int b){ retu...

2022-08-15 23:28:21 2122

原创 POJ 2828 Buy Tickets 两种写法(线段树、树状数组上二分)

POJ 2828 Buy Tickets 两种写法(线段树、树状数组上二分)插队的问题,每个案例给出 n ,代表有 n 个插队的,每个给出 p, v,意思是代号为 v 的人插在了第 p 个人的后面,问最后的队伍的排列。​ 一开始的队列是空的,如果输入i,j:代表代号为 j 的人插在代号为 i 的人的后面,也就是说他前面一定有了 i 个人,而他是第 i + 1 个人。......

2022-08-05 00:23:49 167

原创 c++ string.size()函数小坑坑

  s.size()函数返回值的实际类型是string::size_type,该类型是一个无符号整型数。在表达式中混用unsigned int与int可能产生意想不到的结果。  例如s.size()-3,由于s.size()返回无符号数,故当s.size()

2022-08-03 00:20:52 2038 1

原创 Codeforces Round #810 (Div. 2) 三题下班

Codeforces Round #810 (Div. 2)给定一个n,找每个i/pi为整数的个数最小的那个排列。例如2143,个数为1,只有2/1得到的是整数。然而特殊情况也恰好是最小为1。

2022-07-25 18:02:05 144

原创 A - Digit Sum of 2x

A - Digit Sum of 2x / Time Limit: 2 sec / Memory Limit: 1024 MBScore : 300 pointsProblem StatementFor a positive integer x, let f(x) be the sum of its digit. For example, f(144)=1+4+4=9 and f(1)=1.You are given a positive integer N. Find the follo

2022-07-22 22:26:38 194

原创 【The 2021 CCPC Guilin】G - Occupy the Cities

【The 2021 CCPC Guilin】G - Occupy the Cities给定一个长度为n的01数列。对于每轮操作,如果一个位置上为1,那么其可以将相邻的最多一个位置上的0变成1。问,将所有0都变成1至少需要多少轮操作?

2022-07-21 22:33:43 294

原创 F - Find 4-cycle 【AtCoder Beginner Contest 260】

F - Find 4-cycle 【AtCoder Beginner Contest 260】给定一个二分图,其包含了S、T两个独立点集(即S、T各自内部间的任意两点之间不存在边),再给出S到T图中的M条无向边(S中的点与T中的点之间的边)。求图中包含的一个四元环,若存在则输出环中包含的顶点,否则输出-1。...

2022-07-21 20:21:21 140

原创 矩阵快速幂求斐波那契数列

矩阵快速幂求斐波那契数列

2022-07-20 22:23:38 122

原创 F - Main Street【 AtCoder Beginner Contest 258】

AtCoder Beginner Contest 258 F - Main Street

2022-07-19 22:17:44 170

原创 CodeCraft-22 and Codeforces Round #795 (Div. 2)

CodeCraft-22 and Codeforces Round #795 (Div. 2)A. Beat The OddsB. Shoe ShufflingC. Sum of SubstringsD. Max GEQ Sum

2022-06-01 23:22:38 294

原创 【扫描线+树状数组或者线段树】Codeforces Round #665 (Div. 2) E - Divide Square

【扫描线+树状数组或者线段树】Codeforces Round #665 (Div. 2) E - Divide Square

2022-05-16 00:36:11 317

原创 树状数组总结

树状数组简介用大的节点表示小的节点的信息,在操作的时候可以通过某种方式快速得到小节点的信息。上图中吧原数组a1~a8划分成了若干大块的c数组来维护。如何分块?这里就引入了二进制,能够体会到其精妙。具体实现c数组存的是某一段区间的和如何构建c数组?又是如何c数组快速求出区间的和呢?lowbit这个操作可以得到数字二进制下最低位1的位置例如lowbit(111)—> 001lowbit(10100) —> 00100int lowbit(int x){ return x

2022-05-14 00:51:49 160

原创 JWT实践总结篇222222222222222222222

JWT实践总结篇(一)我的实践JWT总结JWT的特点从特点中看优点从特点中找缺点同session形式对比session机制缺点结语近期使用token的机制来实现用户鉴权是越来越流行了,最近公司这类的项目也是超多。因此就把以前学过的JWT捡起来,特此贴出博客分享我的总结,也是为了方便温习。我的实践在项目中使用JWT的话,通常我会引用auth0,基于auth0编写一个工具类;工具类普遍编写两个方法,那就是创建JWT token和解码(认证)JWT token。auth0用来生成和校验token,底层一定

2022-05-04 00:05:41 298

原创 codeforces B. pSort

B. pSort做法:判断连通性,并查集、图论并查集#include <iostream>using namespace std;static const int N = 110;int p[N];int seq[N], d[N];int n;void init(){ for (int i = 1; i <= n; i++) p[i] = i;}int find(int x){ if (p[x] != x) p[x]

2022-05-04 00:01:36 137

原创 线段树上二分

线段树上二分

2022-04-26 09:21:35 972 2

原创 codeforces 1263E - Editor 线段树

Editor 线段树把 ( 记为1,把 ) 记为-1所以:1、找最大括号的匹配深度计算最大前缀和就行了2、判断修改当前位置之后是否能够完美匹配括号 需要判断两个条件:(1) 总体前缀和是否为0(2) 判断最小前缀和是不是负的,如果最小前缀和出现负的那么说明左右括号位置反了#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 10;int a[N];int n, q;struct info{

2022-04-24 20:41:32 171

原创 C语言隐式转换的陷阱

C语言隐式转换的陷阱当使用unsigned类型和signed类型进行运算时,有符号的类型会自动转换为unsigned,这在进行条件判断的时候结果会让人匪夷所思。比如下面的例子:int main(void){ unsigned int size = 10; if(size > -1) printf("AAA"); else printf("BB");}看的快了会认为输出AAA,但是这个结果是输出BB,因为-1会自动转换为unsigned,转换后比size=10要大。

2022-04-13 21:41:47 612

原创 AtCoder Beginner Contest 174

F - Range Set Query树状数组+离线处理AtCoder Beginner Contest 174

2022-04-10 23:56:10 552

原创 树状数组+离散化求逆序对

树状数组+离散化求逆序对求逆序对是一个静态的问题,我们需要将静态转化为动态。即一边插入一边统计逆序对的个数。每一次把一个新的a[i]放入的时候,通过树状数组查询出已经存在的数中比它大的数的个数,并且可以肯定这些比它大的数一定是在a[i]前面的,一定构成逆序对。所以树状数组是用来统计每个数出现的次数。两个公式i - query(a[i]) 可以得到比a[i]大的数的个数。query(a[i]) - mp[a[i]] 可以得到比a[i]小的个数。 这里mp[a[i]]表示离散化之后a[i]有几个。代码

2022-04-10 10:01:22 238

原创 树状数组上二分

#include <bits/stdc++.h>using namespace std;const int N = 5e5 + 10;#define int long longint n,q;int c[N], a[N];int query(int x){ int pos = 0, t = 0; // 就是二分的过程 // 先从高位开始取,如果当前这一位可以取,那么就考虑下一位是取1还是0 // 到最后找到的就是最大的那个pos并且对应的&lt

2022-04-06 10:49:23 632 1

原创 C. Jury Meeting (Educational Codeforces Round 113)

C. Jury Meeting题意n个人,个人都有ai个事件要说,当轮到某个人的时候,如果他现在有需要说的事,那就给他的ai减1,如果没有需要说的了,就往下轮,直到所有人都说完了,这过程中不能同一个人说两次思路三种情况1、当最大值的数存在两个的时候,结果为n!,任意排列2、当最大值-1这个数不存在的时候 结果为03、当最大值与最大值-1都存在,符合答案的情况是最大值在至少一个次大值前面怎么计算第三种情况?让全部情况数即n! 减 最大值在最后的情况。最大值和次大值以外的数的顺序无所谓,不需

2022-04-03 14:17:50 344

原创 B. And It‘s Non-Zero

B. And It’s Non-Zero题意给出l~r区间,区间内所有数都存在。问最少删除几个数,保证剩下的所有数按位与后不为0。思路我们寻找每一位上1的个数,找到1个数最多的那一位,把这一位上为0的数都去掉,剩下的所有数在这一位都是1,按位与之后一定不是0。起初使用log和lowbit求每一位上的1的个数,但是发现每次询问都需要重新lowbit,时间复杂度太高,WA3.下边TLE代码:#include <bits/stdc++.h> using namespace std;

2022-03-30 21:02:13 361

原创 D Polynomial division AtCoder Beginner Contest 245

AtCoder Beginner Contest 245 c++模拟长除法

2022-03-29 08:28:18 175

原创 356A - Knight Tournament 【并查集】

356A - Knight Tournament 【并查集】题意题目的意思是说有n个人参加比赛,共有m场比赛,每场比赛给出l,r,x,表示[l,r]区间内的人都被x打败,问最后每个人是被谁打败的,输出那个人的编号,冠军输出0.思路可以看出如果这个人已经输掉了,那么之后他就不会被更新了。最暴力的是不使用并查集,直接暴力枚举每一次的lr肯定是会TLE的。但是使用并查集可以直接跳过一段拥有相同父节点的区间,但是需要额外开一个ans数组记录答案,因为pre[]祖宗数组需要用来合并。要点1、自己不能跟自

2022-03-26 20:26:15 231

原创 C. Make Equal With Mod

C. Make Equal With Mod#include <iostream>#include <cstring>#include <set>#include <algorithm>#include <cmath>#include <map>#include <vector>#include <queue>#include <stack>using namespace std;

2022-03-25 09:15:50 229

原创 A. Good Pairs

A. Good Pairs在数组中找两个数 ai, aj,使得对所有的k(1<=k<=n),|ai-ak|+|ak-aj|=|ai-aj|成立思路有不等式|a-c|+|c-b|≥|a-b|,当且仅当a>c>b时,等号成立。证明:将绝对值去掉,a-c+c-b == a-b,证毕。也可以将a、b、c看做坐标轴上的点。代码#include<bits/stdc++.h> using namespace std; int main() { int t; cin &gt

2022-03-25 08:29:24 386

原创 B - Integral Array

codeforces B - Integral Array

2022-03-18 21:28:31 502

原创 1620E - Replace the Numbers 思维题

当输入操作2时,将i改变为j的操作只对当前操作之前的数起作用所以我们可以选择反向遍历一遍原来的数组新开一个数组p表示当前某个值的更改后的值如原先p[5] = 5, 但是在操作2 5 3之后, p[5] = 3#include <iostream>#include <cstring>#include <set>#include <algorithm>#include <cmath>#include <map>#inc

2022-03-16 20:45:21 436

原创 A. Great Sequence

题意:长度为n的数组,需要数组里所有数成两两一对,满足a * x = p 的关系,求最少需要添加多少个数,才能满足这个条件。思路:整体看来就是将数组内能成对的个数先减掉,剩下的个数就是要添加的数的个数。#include <iostream>#include <cstring>#include <set>#include <algorithm>#include <cmath>#include <map>#include

2022-03-16 19:57:42 471

原创 D. Make Them Equal

D. Make Them Equal【题目大意】你有一个长度为 nn,初始全为 1 的数组 a,和两个长度为 n 的数组 b,c。你可以最多进行 k次如下的操作:选择两个正整数 i,x,使ai变成(ai+ai/x),下取整。最后如果ai = bi,就可以获得ci的收益。要求最大化收益。这题是一个预处理的01背包。难在预处理上。起初我的代码是每次让a*=2,算出每个a的最小操作次数,再使用01背包获得最大收益,但写完发现比如数字31,如果从6开始以2倍增,那么增加到24时,与31相差7, 但这时24除

2022-03-15 14:40:56 486

转载 尺取法的使用

尺取法

2022-03-09 10:38:42 96

原创 D - Vupsen, Pupsen and 0

D - Vupsen, Pupsen and 0

2021-12-30 22:40:26 510

原创 C - Zero XOR

AtCoder Regular Contest 131C - Zero XOR什么时候可以赢?当一个数等于当前所有数异或时。取出这个数,剩下所有数异或就为0.因为:1110101100 异或 = 10001 相同0不同1. 一个数异或0还是本身那么结束游戏有两种情况:1、当N为奇数时,先手总能胜。选手可以在本局直接赢,或者在第k-2局 例如 7 5 3 1局赢2、当N为偶数时,先手必须一把赢,否则对方将面临奇数个饼干,对方一定胜。先手一把赢的条件就是数列中存在一个数与所有数的异或相同。

2021-12-30 21:52:58 2248

空空如也

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

TA关注的人

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