笔记
浇糖玛奇朵
会了,但完全没有会
展开
-
CryptoPP::SecByteBlock类型转unsigned char
在使用CryptoPP库时,大多key和iv都是CryptoPP::SecByteBlock这种类型,有时候想用key和iv做一些事情,我习惯用unsigned char类型,方便一些。转换方法如下://这里就是举个例子,只有一些必要的代码片段:using namespace std;using namespace CryptoPP;SecByteBlock key;string s = string(key.begin(), key.end());unsigned char out[32原创 2022-05-16 00:35:16 · 437 阅读 · 1 评论 -
Windows API 获取MachineGUID
MachineGUID在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\中。使用WindowsAPI获取,需要用到RegOpenKeyA(),RegQueryValueExA(),和RegCloseKey()这三个函数代码如下:#include <Windows.h>#include <string>#include <iostream>int main(){ std::string sub原创 2022-05-12 20:29:37 · 2664 阅读 · 0 评论 -
C++将函数作为参数
举例:#include <stdio.h>typedef int(*Fun)(int,int);//x+yint add(int x,int y){ return x+y;}//x-yint d(int x,int y){ return x-y;}void print(Fun f){ printf("%d\n",f(5,2));} int main(){ //分别将add和d函数作为参数传给print函数 print(add);原创 2022-04-14 10:26:11 · 894 阅读 · 0 评论 -
使用ShellExecuteW执行exe并传入参数
ShellExecuteW函数用法#include <iostream>#include <Windows.h>#include <string>using namespace std;wchar_t* string_2_LPCWSTR(string orig){ size_t origsize = orig.length() + 1; const size_t newsize = 100; size_t convertedChars = 0; wch原创 2022-04-06 10:14:03 · 2255 阅读 · 0 评论 -
线段树模板+一些自己的理解
#include <bits/stdc++.h>using namespace std;#define rg register#define putln putchar('\n')#define debug(x) cout<<"@ "<<(x)<<endl#define rep(i,a,b) for(rg int i=a;i<=b;++i)#define per(i,a,b) for(rg int i=a;i>=b;--i)typ原创 2021-09-24 20:00:15 · 77 阅读 · 0 评论 -
线段树单点修改,维护区间最大值
以hdoj1754为例:#include <bits/stdc++.h>using namespace std;#define rg register#define putln putchar('\n')#define debug(x) cout<<"@ "<<(x)<<endl#define rep(i,a,b) for(rg int i=a;i<=b;++i)#define per(i,a,b) for(rg int i=a;i>原创 2021-09-23 20:28:23 · 226 阅读 · 0 评论 -
数组离散化
只保留数组之间的大小关系#include <bits/stdc++.h>using namespace std;typedef long long ll;#define rg register#define putln putchar('\n')#define rep(i,a,b) for(rg int i=a;i<=b;++i)#define per(i,a,b) for(rg int i=a;i>=b;--i)const int MXN=1e5+5;int原创 2021-08-10 21:21:41 · 124 阅读 · 0 评论 -
静态RMQ问题:ST表
ST表,用于解决静态区间最值查询问题,预处理O(nlogn),查询O(1)!详解推荐视频:树状数组与ST表用到三个数组a[ ] , lg[ ] , st[ ][ ]数组a[ ],原数组数组lg[ ],lg[i]表示log(i)数组st[ ][ ],st[i][j]表示左端点为i,长度为2^j的一段区间的最值,也就是(i…i+2^j-1)这段区间初始化过程用了dp思想,二重循环,第一层枚举区间长度,第二层枚举左端点。洛谷模板题:ST表代码:#include <bits/stdc++.h原创 2021-08-08 22:01:00 · 121 阅读 · 0 评论 -
利用树状数组求逆序对
逆序对:ai>aj 且 i<j 。说白了就是一个序列中前面比后面大的对,举个例子:序列2 1 4 3 2 , (2 1)就是一个逆序对,(4 3)、(4 2)也是。暴力做法:遍历这个序列,数一下每个元素前面比他大的元素的个数,累加就是最后的结果,举个例子:序列2 1 4 3 2第一个元素 2,前面没有元素,结果 = 0第二个元素 1,前面比他大的是 2,结果 = 1第三个元素 4,前面没有比他大的,结果 = 0第四个元素 3,前面比他大的是 4,结果 = 1第五个元素 2原创 2021-08-01 16:10:53 · 247 阅读 · 0 评论 -
树状数组(三)【区间修改,区间查询】
【区间修改,区间查询】同样利用到了差分数组。求区间和可以是求两个前缀和再相减,比如求l~r的和,可以是s( r)-s(l-1),所以问题就是求前缀和。原数组为a,他的差分数组为x,(a1=x1=0)则a1=x1,a2=x1+x2,… ,an=x1+x2+…+xn那么前缀和s(n)=a1+a2+…+an=(x1)+(x1+x2)+…+(x1+x2+…+xn)=n(x1+x2+…+xn)-(0* x1+1* x2+…+(n-1)* xn)所以维护x1, x2, … ,xn和 (0)*x1, (原创 2021-07-28 09:52:32 · 502 阅读 · 0 评论 -
树状数组(二)【区间修改,单点查询】
【区间修改,单点查询】区间修改考虑一个数组,频繁的进行区间(l~r)修改,这时候我们会利用差分数组,关于差分数组 因为只需要修改 l 和r+1就可以,复杂度O(1),最后求个前缀和即可。树状数组进行区间修改也一样可以用差分数组来实现。我们维护一个差分数组,这个差分数组不需要是原数组的差分数组,可以当做是当前变化量的差分数组。显然在初始阶段,没有对任何区间做任何操作,所以这个差分数组全部是0。这样也是方便单点查询,因为这个差分数组的前缀和就是当前值的变化量。举个例子: 原数组a: 4原创 2021-07-27 14:29:48 · 588 阅读 · 0 评论 -
树状数组(一) 【单点修改,区间查询】
【单点修改,区间查询】这是树状数组的基本用法,修改和查询的复杂度都是O(logn)。个人认为树状数组是巧妙的利用二进制实现了二分,所以他查询的时候很快。单点修改是要把与这个点所有有关的点都进行修改,是一个从下往上的过程,通过一个点+lowbit(这个点)来更新所有管辖这个点的点,直到最上面区间查询时就是求两个前缀和,一相减就是区间和。求前缀和的过程与单点修改的操作相反,是不断通过一个点 - lowbit(这个点) 来覆盖所有小的区间以上是个人理解。树状数组就不放图了,关于lowbit的内容可以看一原创 2021-07-27 14:10:46 · 446 阅读 · 0 评论 -
百度地图爬取poi数据(圆形区域检索)
爬取百度地图poi数据需要用到百度地图的“地点检索”服务,关于“地点检索”和ak的获取请看:百度地图开放平台的服务文档,文档很重要,要仔细看。因为矩形区域检索是高级权限,不能直接用,所以我用的是圆形区域检索,覆盖地图的范围肯定是不够好的。“地点检索”这个服务给的配额上限是2000次/天(如果没充钱的话),并发值是2,所以一天要控制在这个范围内。之前网上也有说过有400条的限制,现在不是400条了,是100左右,所以用圆形区域检索的话注意半径别太大了,要不爬的就太少了。我这半径设的是2000米,设定经纬原创 2021-06-16 09:07:43 · 2705 阅读 · 8 评论 -
百度地图api “BMapGL is not defined“ 错误
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-06-03 20:39:53 · 15715 阅读 · 13 评论 -
判断闰年
满足下列条件之一的是闰年:1.能被4整除但不能被100整除2.能被400整除bool run(int n){ if((n%4==0&&n%100!=0)||(n%400==0)) return true; return false;}原创 2021-03-03 09:11:58 · 98 阅读 · 0 评论 -
对一维差分的一些理解
差分差分就是两个元素的差值差分数组是一个数组中前后两个元素的差值构成的数组。设原数组为a[ ],差分数组为b[ ]则b[0]=a[0],b[i]=a[i]-a[i-1]例: 下标 : 0 1 2 3 4 5 原数组 a[]: 5 3 2 6 8 9差分数组 b[]: 5 -2 -1 4 2 1我们可以发现,通过求差分数组的前缀和就可以得到原数组为什么要用差分当对一个数组的某一部分+或-同一个数时,可以遍历,复杂度O(n)。但如果进行许多次这样原创 2021-02-24 23:33:20 · 204 阅读 · 1 评论 -
巴什博奕
巴什博奕一堆石子,石子的数量为n,两个人轮流拿,每人最少拿1个,最多拿m个第一种情况:最后一个拿完的赢n%(m+1) = 0 后手胜,反之先手胜第二种情况:最后一个拿完的输(n-1)%(m+1)=0 后手胜 ,反之先手胜...原创 2021-01-30 23:16:46 · 181 阅读 · 0 评论