自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Apale_8的博客

不存在的

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

原创 csdn博客导出为markdown格式

背景不想继续在粪坑网站写博客了,于是自己用Vuepress搭了一个静态博客,配合github pages和服务器使用效果还挺不错。但之前写的博客基本全在CSDN,想导出来,人工一篇一篇复制就太累了,于是用go写了个爬虫自动把自己csdn上的所有文章的markdown源码导出并迁移到新站点上。这也应该是我CSDN上的最后一篇博客源码和可执行文件思路个人主页https://blog.csdn.net/Apale_8可以获取博客列表编辑页可以查看markdown源码导出为统一的格式(标题、写作时间、

2022-04-04 18:14:58 1900 2

原创 go一键安装脚本(linux)

wget https://golang.google.cn/dl/go1.17.linux-amd64.tar.gz #安装tar -zxvf go1.17.linux-amd64.tar.gz -C /usr/local/ #解压if [[ -f ".bashrc" ]]; then echo "PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc #将go所在目录添加到环境变量 s

2021-08-28 18:43:52 1211

原创 vscode go关闭超链接跳转

问题:希望在go代码中ctrl左键import的package查看定义,但却跳转到了浏览器的https://pkg.go.dev/xxxx/xxxx中原因:vscode会默认识别超链接,然后在ctrl左键点击超链接时进行跳转go的package就是以超链接的形式引入的解决方法禁用vscode识别超链接的功能 "editor.links": true,...

2021-02-21 19:42:13 2874 1

原创 Gin框架踩坑[参数错误时http状态码始终返回400]

问题背景:希望在post参数错误时返回自定义的提示信息,但http状态码始终返回400if err := c.BindJSON(&xxx); err != nil { fmt.Println("解析参数失败, err: %+v", err) c.JSON(http.StatusOK, "参数错误") return }原因: MustBindWith在参数错误时返回400// BindJSON is a shortcut for c.MustBindWith(obj, bind

2021-01-20 17:18:37 2040 1

原创 正则表达式->NFA->DFA(C++实现)

这学期在学编译原理,上周刚学完词法分析,作业是手动构造DFA并完成词法分析。然而优秀的人当然要以高标准要求自己,于是花了两天实现了输入正则表达式构造NFA和NFA转DFA的算法。算法包括以下几个步骤:正则表达式->后缀表达式用后缀表达式构造NFA用NFA构造DFA最小化DFA(暂未完成)正则表达式->后缀表达式正则表达式的定义算法中实现的正则表达式仅包含()∣∗()|*()∣∗运算符。为了方便实现,显式地增加了连接运算符^, 如abc*d会被修改为a ^ b ^ c * ^d

2020-10-01 18:28:03 7989 4

原创 LeetCode 5.最长回文子串

裸的马拉车算法。(当然回文自动机也行)class Solution{public: string longestPalindrome(const string &s) { auto p = manacher(s); return s.substr(p.first - p.second >> 1, p.second - 1); } pair<int, int> manacher(const string &

2020-07-12 16:26:39 155 1

原创 LeetCode 4. 寻找两个正序数组的中位数

累了……以后不放C++了。思路假设第一个数组的长度为s1s1s1,第二个数组的长度为s2s2s2在数组1中选一个位置m1m1m1,将数组分割为两部分,左半部分长度为m1m1m1,右半部分长度为s1−m1s1-m1s1−m1在数组2中也选一个位置m2m2m2进行分割,使得m1+m2==s1−m1+s2−m2m1+m2 == s1-m1+s2-m2m1+m2==s1−m1+s2−m2此时如果m1m1m1左侧的数小于等于m2m2m2右侧的数,且m2m2m2左侧的数小于等于m1m1m1右侧的数,则中位数

2020-07-07 21:01:29 235 1

原创 LeetCode 3.无重复字符的最长子串

遍历字符串s,用数组num(哈希表也行)记录已出现的字符,用队列存储以当前字符为尾的无重复字符的最长子串。当当前字符已出现时,要将上次出现的位置之前的所有字符从队列中删去。遍历过程中队列的最大长度就是最终结果。C++class Solution{public: int lengthOfLongestSubstring(string s) { auto num = vector<char>(128, 0); queue<char>

2020-07-06 20:47:10 219 1

原创 LeetCode 2.两数相加

直接模拟竖式加法即可(题目倒过来存放数字,可以说是极其友善了)。class Solution{public: ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) { auto head = new ListNode(0);//ans是带头结点的单链表 auto ans = head; char carry = 0; while (l1 != nullptr &&a

2020-07-06 20:04:20 158 1

原创 LeetCode 1.两数之和

LeetCode 1.两数之和两个想法:1、二分查找记录每个数的下标,按值排序后遍历,二分查找判断是否存在target−atarget-atarget−aC++代码class Solution{public: vector<int> twoSum(vector<int> &nums, int target) { vector<pair<int, int>> p(nums.size()); f

2020-07-06 16:44:43 179 2

原创 TypeScript(JavaScript)实现贪吃蛇小游戏(超详细)

总体思路HTML中用一个canvas显示游戏画面和一个p标签显示当前分数通过JavaScript修改canvasHTML部分非常简约的界面。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>python</title...

2020-01-07 21:48:30 1042

原创 用VSCode写LaTeX

1、安装vscode略2、下载vscode中文插件左侧最下面商店按钮中搜索chinese,install重启vscode后界面变为中文3、安装LaTeX Workshop和LaTeX language support插件商店搜索LaTeX,第一个和第二个装完重启vscode4、解压texlive.iso, 双击install-tl-advanced.bat安装texlive....

2019-11-27 20:41:41 568 1

原创 VSCode 配置C++环境并调成CLion风格

//默认你已经下好了vscode,并且电脑里有mingw1、商店中搜索C++,下载(如下图)2、商店下载Code Runner插件Code Runner插件通过终端编译运行代码,因此需要将g++所在的目录添加到环境变量中cmd下输入g++ -v检测是否添加成功3、新建一个文件夹在文件夹中创建c_cpp_properties.json,将以下代码写入{ "configura...

2019-11-11 11:44:31 4258 3

原创 Qt5 QImage像素操作

这学期学数图,作业需要做界面,于是开始学习Qt。QRgbQt中,QRgb是unsigned int的别名Qt中用一个unsigned int存储像素值,格式为0xFFRRGGBB可以使用qRgb(intr,intg,intb)qRgb(int r, int g, int b)qRgb(intr,intg,intb)函数来方便地构造像素值qDebug() << hex <...

2019-10-05 15:28:59 7252

原创 C++读取bmp格式图片

类的格式按照bmp的文件头、信息头、调色板和数据域写好即可因为图片是按字节读的,所以要强制让编译器不对结构体进行字节对齐,否则会出错因为bmp格式规定存储时每行的像素数要补齐至4的整数倍,所以读入和写出时要加一些对应的操作#include <bits/stdc++.h>using namespace std;typedef unsigned short w;typede...

2019-09-06 00:01:46 4342 1

原创 线性基模板

存个板子typedef long long ll;struct base{ ll a[63]; vector<ll> p; bool flag;//标记答案集合中是否有0 base() { fill(a, a + 63, 0ll); flag = false; } void init()...

2019-07-28 00:44:22 168

原创 C++map(unordered_map) 的小于号

之前打题的时候想从一个map中取出值最大的元素然后顺手就写了 auto mx = max_element(mp.begin(), mp.end());然后怎么调都调不出来样例=_=后来冷静分析了一下map&lt;T1,T2&gt;map&lt;T1, T2&gt;map<T1,T2>中的每个元素都是pair&lt;T1,T2&a...

2019-07-09 19:42:33 523

原创 哈夫曼树的构造、编码和解码

被问了一天哈夫曼树=_=于是迫不得已敲了一个…首先是读字符,统计文章中n种字符每种出现的次数,然后降序排序。然后把出现次数作为权值,建立n个叶子结点。把所有叶子结点插入小根堆中,每次取出两个,用二者权值之和构造新的节点,作为这二者的父亲节点,最后一个点作为根,记录下来。虽然树是自底向上建的,但实际使用的时候只用从根往下跑,所以不必记录父节点。数建完跑dfs就能得到所有叶子结点的huffm...

2019-06-01 20:33:50 1853

原创 LightOJ 1339 Strongest Community

题意查询[L,R][L, R][L,R]中连续出现次数最多的数出现的次数,如[1,1,2,2,2,2,3,3,3][1,1,2,2,2,2,3,3,3][1,1,2,2,2,2,3,3,3]中连续出现次数最多的是2,次数为4思路这题显然可以直接线段树区间合并。用线段树维护区间的前缀中的答案(答案指区间中连续出现次数最多的数出现的次数)、后缀中的答案。设m=L+R&gt;&...

2019-05-18 23:51:48 181

原创 莫队总结

省赛打得跟屎一样=_=,队友有思路了然鹅我们都不会写莫队,调不出来。回来恶补一波莫队。不带修改莫队通过对离线询问的一个玄学排序,使得左右指针移动的次数都相对的少,减少转移的次数排序:左端点不同块的询问,按左端点所属块号升序排; 左端点同块的询问,按右端点升序排奇偶性优化:对于左端点同块的询问,若左端点块号为奇数,按右端点升序排;为偶数则按右端点降序排。 可以减少右端点移动的次数。放一个回...

2019-05-17 14:33:22 198 1

原创 Kefa and Watch CodeForces - 580E

题目链接题意一个1e5的字符串a, 1e5次操作op l r cop\ l\ r\ cop l r c(下标从1开始)opopop == 1:把[l,r][l, r][l,r]的所有字符改成copopop == 2:询问[l,r][l, r][l,r]是否存在长度为c的循环节解法首先有一个结论, 若[l,r−c][l, ...

2019-04-18 23:04:10 270 1

原创 ST表板子

存一个ST表板子可用于维护静态区间最值和gcd以后的代码左花括号不会另起一行。(让两个队友舒服点o(╥﹏╥)o)int dp[maxn][30];void init() { for (int j=1; j<=20; ++j) for (int i=1; i + (1 << j) - 1 <= n; ++i) dp[i][j] = __gcd(dp[i]...

2019-04-17 22:01:36 237 1

原创 URAL - 1989 Subpalindromes(字符串哈希+ 树状数组 or 线段树)

题目链接题意输入一个1e5的串a,1e5次询问每次询问:palindrome? l r 询问[l,r][l ,r][l,r]的子串是否是回文串change x c 把a[x]改成c下标从1开始解法显然, 若一个串与它反转后的串相同,这个串就是回文串(废话 )这里要用到多项式哈希, 将原串和反转后的串的每个字符哈希,用树状数组维护多项式哈希把字符串的第iii个字符哈希:h[i]...

2019-04-15 22:16:40 287

原创 树状数组区间更新板子

存一个树状数组区间更新的板子ll c1[maxn];//c1维护差分数组的前缀和ll c2[maxn], a[maxn];//c2维护c1 * (pos - 1)的前缀和//a[i]的前缀和[1, p]可以由c1[1,2,...,p] * p - c2[1,2,...,p]表示int n;inline int lowbit(int x){ return x & (-x)...

2019-04-15 00:23:49 214

原创 大力出奇迹——字符串哈希

什么是字符串哈希字符串哈希,即把字符串转化为一个basebasebase进制的数字哈希的过程把字符串a看做一个base进制的数字, 则a的每个前缀的哈希值为hash[i]hash[i]hash[i] === (hash[i−1]∗base+a[i])%mod(hash[i-1] * base + a[i]) \% mod(hash[i−1]∗base+a[i])%mod其中,base...

2019-04-14 18:20:32 252 2

原创 2019广工校赛 D-免费送气球 (HDU6464)

直接上平衡树乱搞。也可以离散化后线段树维护子树大小和区间和(平衡树不用离散化)#include &amp;lt;cstdio&amp;gt;#include &amp;lt;algorithm&amp;gt;#include &amp;lt;cstdlib&amp;gt;using namespace std;typedef long long ll;const ll maxn = 200005;const ll mod

2019-03-17 20:21:28 351

原创 Codeforces1092C Tree with Maximum Cost

题目链接:http://codeforces.com/contest/1092/problem/F题意:给出一棵有n个节点的树, 每个节点有一个正整数权值a[i]a[i]a[i],每条边的长度为1,让你找一个点vvv,使得∑i=1na[i]∗dis(i,v)\sum_{i=1}^{n}{a[i] * dis(i,v)}∑i=1n​a[i]∗dis(i,v)的值最大(dis(i,v)是i到v的距离...

2018-12-19 11:29:12 189

原创 HDU4027 (线段树简单题)

vj的题目链接:https://cn.vjudge.net/problem/HDU-4027题目大意:对一个n个数的序列进行两种操作:1、将某个区间的每个数开方。2、查询某个区间中所有数的和解题思路:区间修改、查询的问题显然是用线段树来来维护了。这题是不能用延迟标记来完成区间修改的,因为先求和再开方与先每个数开方再求和的结果是不同的。于是对于一次区间更新的操作,只能将每个点单点更新,但这样的时...

2018-12-13 23:13:14 352

转载 ac自动机[模板]

struct AC_Automaton{ static const int sigmaSize = 26; int next[maxn][sigmaSize]; int fail[maxn]; int end[maxn]; int siz, rt; void init() { siz = 0; rt = n...

2018-11-28 19:20:19 266 1

原创 CodeForces - 404C Restore Graph

Valera had an undirected connected graph without self-loops and multiple edges consisting of n vertices. The graph had an interesting property: there were at most k edges adjacent to each of its verti...

2018-11-19 11:29:47 236

原创 codeforce743D - Chloe and pleasant prizes

题意:一棵nnn个节点的树,每个节点有一个价值(存在负数)。两个人一人选一棵子树,问 在两棵子树没有公共节点的情况下 两人能取到的价值之和的最大值。思路:设dp[u]dp[u]dp[u]是在以uuu为根的树选一棵子树能取到的最大价值。dp[u]dp[u]dp[u]要么是整棵树的权值之和sum[u]sum[u]sum[u],要么是dp[v]dp[v]dp[v]中的最大值(vvv是uuu的孩子)。而...

2018-11-06 22:50:40 228

原创 求树上每两点的距离之和

给定一棵n个节点的树和n-1条边的权值,求每两点间的权值的总和。(n≤1e5)(n \leq 1e5)(n≤1e5)暴力做法求出每两个点的lca(O(nlogn)lca (O(nlogn)lca(O(nlogn)预处理,O(logn)O(logn)O(logn)查询),预处理路径前缀和后O(1)O(1)O(1)求得n2n^2n2数量级的点对,时间复杂度O(n2logn)O(n^2logn...

2018-11-05 17:55:54 1847

原创 节日快乐

大家节日快乐!!!

2018-10-24 17:03:48 456 1

原创 Gym - 101908L 树链剖分裸题

VJ的链接:https://cn.vjudge.net/problem/Gym-101908L题目大意:一棵nnn个点的树上,查询aaa ~ bbb,ccc ~ ddd两段路径公共的点的个数。解题思路:读完题就感觉是LCA的裸题呀…把每个点的值初始化为000,对于每次询问,把aaa ~ bbb这条路径的值+1+1+1,查询ccc ~ ddd的区间和,再把aaa ~ bbb这条路径的值−1...

2018-10-18 17:49:43 399 2

原创 PTA出题生成数据的模板

这学期当助教,得在PTA出题目。用这份模板通过ac代码生成数据。#include &lt;iostream&gt;#include &lt;cstdio&gt;#include &lt;cstring&gt;using namespace std;char n[16];int ans;int main(){ #ifdef LOCAL freopen("F:\\data\\题目...

2018-10-17 18:47:04 1218 2

原创 对二分法思想的体会

二分查找可以在有序的支持随机访问的容器中快速查找某个元素的信息时间复杂度: O(logN)O(logN)O(logN)原始版本:递归实现:int binarySearch(int a[],int val,int l,int r){ if(l &gt; r) return -1; int m = l + r &gt;&gt; 1; if (val == a...

2018-10-14 13:30:25 457 1

原创 快速幂 N很大的时候

前几天网络赛的一个题,找了下规律发现是要输出2n−12^{n-1}2n−1,111 ≤\leq≤ nnn ≤\leq≤ 1020010^{200}10200,答案对1000000007取模,直接快速幂取模也是要超时的。百度了下,于是学到了费马小定理: 假如p是质数,且gcd(a,p)=1,那么 ap−1a^{p-1}ap−1 ≡\equiv≡ 1(mod p)证明见百度百科于是ana^{n}...

2018-09-17 21:48:44 251 5

原创 Jiu Yuan Wants to Ea 2018icpc焦作网络预选赛E

题目链接:https://nanti.jisuanke.com/t/31714 题意 :一棵树,n个点,初值均为0,有四个操作: 1 u v x 把u v路径上所有点乘以x 2 u v x 把u v路径上所有点加上x 3 u v 把u v路径上所有点的值按位取反 4 u v 查询u v路径上所有点的和 答案 % 2642642^{64}后输出分析: 除了3,1 2 4...

2018-09-17 15:53:08 232

原创 ACM-ICPC 2018 徐州赛区网络预赛 J - Maze Designer

题目链接:https://nanti.jisuanke.com/t/31462题意: 在一个N*M的空地上,建墙造一个迷宫,使得迷宫的耗费最小,且迷宫中的任意两点之间只有一条路,题目保证每组数据的迷宫唯一。 输入迷宫中两个点的坐标,输出两点间的距离思路:任意两点间只有一条路,显然是一棵树。在地图上建最大生成树,就可以使得墙的耗费最小。两点间距离就是在树上跑LCA#include &...

2018-09-13 21:00:20 173

原创 树的点分治 bzoj2152

聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已经玩儿腻了这种低智商的游戏。他们的爸爸快被他们的争吵烦死了,所以他发明了一个新游戏:由爸爸在纸上画n个“点”,并用n-1条“边”把这n个“点”恰好连通(其实这就是一棵树)。并且每条“边”上都有一个数。接下来由聪...

2018-09-07 15:23:12 200

空空如也

空空如也

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

TA关注的人

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