自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Win10+WSL2+Ubuntu22.04 +图形化桌面配置

22.04需要将appxbundle改后缀名为zip,选出x64解压再改后缀名,再按上面文章操作。

2023-12-03 00:16:21 1870 2

原创 微信小程序 自定义组件method中获取data方法

微信小程序 自定义组件method中获取data方法

2023-01-26 21:37:40 850 1

原创 汉明码原理推导

设第i个检测位无错,Pi代表*...1...*,则错误代码对应位必为0同理若第i位检测位有错,错误代码对应位为1将k个检测位对错结果按顺序组合,即可得到错误代码因此可以推导出2^k-1≥n+k,左边是检测位所能表示的范围(k位二进制数),右边是汉明码长度

2022-08-20 00:09:05 282

原创 C# ListBox如何获取选中的内容(搜了很多无效的文章)

不要用SelectedItem

2022-06-20 00:50:01 2445

原创 亚特兰蒂斯(离散化的扫描线)题解笔记

AcWing 247. 亚特兰蒂斯(对代码进行详细解释) - AcWing从扫描线到离散化难免令人有些费解,下面写一些针对离散化映射后build和pushup的思考坐标轴上是一些下标经过排序后从小到大的离散的点,每两个点构成一个线段d[i],线段树实际上存储的是一个个线段,就像没离散化之前的扫描线一样,之后按离散化之前的套路处理即可...

2022-03-27 11:35:13 220

原创 Android应用开发——从设计稿到手机屏幕的UI尺寸转换

Android应用开发——从设计稿到手机屏幕的UI尺寸转换

2022-03-26 13:56:53 2668

原创 线段树简单笔记

一 经典线段树结构:权值为[L,R]的区间和int L,R,sum;操作1 单点修改O(logn)递归找到相应叶子节点,回溯时修改父节点(两个儿子总和)操作2 区间查询O(logn)左右两边递归,递归边界为左右两边都被包含,累加其权值最坏耗时4logn区间修改需要懒标记,蓝桥杯一般考不到,即使考到也是特殊区间修改,用不到函数1 pushup 用子节点信息更新当前节点信息2 build 在一段区间上初始化线段树3 modify 单点修改4 query 区间查询静态链表存储,空

2022-03-20 12:39:28 701

原创 树状数组简单总结(原理见以往帖子)

树状数组:快速(动态)求前缀和在线算法(支持修改)O(logn) 1:给某个位置上的数加上一个增量(修改某个元素)2:求某个前缀和即:单点修改,区间查询(sum(r)-sum(l-1))树状数组只能支持这俩问题,别的问题都得通过转化才能解决比如区间修改,单点查询需要利用差分转化为区间修改记树状数组为C[x],定义:C[x]=(x-lowbit[x],x],即x-lowbit[x]+1~x,奇数为其本身lowbit[x]=x&-x,含义是2^k,k为x...

2022-03-15 00:12:02 480

原创 求至少加上几个字符使之回文

等价于求至少删除几个字符使之回文等价于总长度减去最长回文子序列的长度注意:不能用马拉车算法,马拉车求的是最长回文字串,是连续的,而子序列不必连续

2022-03-11 12:11:38 104

原创 背包九讲练习篇(更新中)

背包问题专栏

2022-03-06 12:21:46 252

原创 java JFrame标题栏大小

123.2*31.2设计时向上取整得124*32

2022-02-08 02:57:25 747

原创 java 匿名子类

class Normal { public void start() { System.out.println("S"); }}public class text { public static void main(String[] args) { new Normal(){ public void func(){ System.out.println("do without name"); }; public void func1(){ Syste.

2022-01-30 20:35:55 1719

原创 抛出异常和ifelse在模块化设计上的区别

我们知道,在功能上,一段短代码try catch 和if else并没有太大区别,取得的效果基本相同。那么,为什么还要花费心思设计异常呢?首先:对于短篇代码来说,靠if else解决意外错误不具备可移植性,遇到相似问题需要重新编码。而自定义异常的可复用性高。其次:对于长篇代码来说,异常能起到终止线程并向上传递的作用,相当于分层架构,降低代码的耦合度。...

2022-01-29 21:54:14 498

原创 以洛谷P1091 合唱队形初探动态规划DP

目录一 题目描述二 题目拆解三 子问题求解Q1:如何求dpup[i]——删除元素数最小的递增子序列Q2:如何求dpdown[i]——删除元素数最小的递减子序列四 AC代码一 题目描述P1091 [NOIP2004 提高组] 合唱队形 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)入门果然耗时间,一道简单的DP却花了我两三个小时 ...

2022-01-17 01:11:43 328

原创 c#继承类构造函数实际意义

c#的教材一般人看不懂,看懂也难以领会其深意,所以有很多合理的事情因教材的错误引导被人为掩盖比如构造函数从最上层的父类向下依次向扩充类执行,教材是用打印类名来演示的,确实很直观,但是很反人类。因为这只能演示做法,却不能解释原因。事实上 类的继承是为了简化代码,提高复用率,比如我定义一个动物类为抽象类,灵长类继承动物类,人类继承灵长类然后动物类有个变量叫界,构造函数初始化为动物界灵长类有个变量叫目,构造函数初始化为灵长目人类有个变量叫属,构造函数初始化为人属至此,继承的优势已经体现地淋漓尽致:你只

2021-10-30 20:42:24 113

原创 数组的映像地址

今天对着这个概念和人讨论了好久,后来才想明白[j1,j2,…,jn]的映像地址即它与[0,0,…,0]的距离加上原点的地址,我们最根本的是它到原点的距离但是这跟几何还不一样,不能直接连线,我们采用分量法解题先求[j1,0,0,…,0]到[0,0, …,0]的距离,易得其值为b2·b3·…·bn·j1,即降维累乘其他维度同理最后累加结束想明白用分量法就很简单,可惜我一开始从整体入的手...

2021-10-29 10:37:09 116

转载 在函数中修改指针需要传入二级指针

参考文献如果忘记这一点写链表将寸步难行

2021-10-17 23:36:51 122

原创 并查集判断成环 HDU 1272

加入边前判断两个节点是否根节点相同,如果相同那么成环,如果不同合并他们比如1-2,1-3,2-3,加入2-3时2和3已经同属一个并查集了,成环例题 HDU 1272

2021-09-09 16:08:54 268

原创 中国剩余定理例题 POJ1006

中国剩余定理模板的返回值是最小值,最小值加上公倍数就是通解,求最小的大于day的通解即为所求中国剩余定理#include<cstdio>//http://poj.org/problem?id=1006#include<iostream>using namespace std;typedef long long ll;ll exgcd(ll a,ll b,ll &x,ll &y) { //扩展欧几里得算法 ax+by=c 求解a,b if(!b) {

2021-09-09 15:09:19 275

原创 HDU 3790 最短路径最小花费

迪杰斯特拉总结相比于普通迪杰斯特拉,我们要做的变动是:优先队列排序 friend bool operator < (const node &f1, const node &f2) { if(f1.w!=f2.w) return f1.w > f2.w; else return f1.p>f2.p; }迪杰斯特拉节点更新if (dis[end] > dis[start] + edge[i].w) { dis[end] =

2021-09-09 13:22:49 179

转载 C++ 给两直线上四个点求交点

理论代码来源Point getIntersectPoint(Line a, Line b) { double a1 = a.s.y - a.e.y, b1 = a.e.x - a.s.x, c1 = a.s.x * a.e.y - a.e.x * a.s.y; double a2 = b.s.y - b.e.y, b2 = b.e.x - b.s.x, c2 = b.s.x * b.e.y - b.e.x * b.s.y; return Point((c1*b2-c2*b1)/(a2*

2021-09-06 03:17:45 1117

原创 POJ 3608 凸包最小间距

下面有很多没用到的函数,所以请从主函数开始看计算几何详解请参考我的博客计算几何基础#include<cstdio> //计算几何基础 代码 https://blog.csdn.net/qq_44691917/article/details/104686146 #include<iostream>//理论https://www.luogu.com.cn/blog/wjyyy/geometry1 #include<cmath>//自己写的总结 https://m

2021-09-04 22:37:47 114

原创 HDU 5251

这题老早就想A了,就因为这个才想学旋转卡壳,但是折磨了我好久,今天终于过了哈哈哈凸包及旋转卡壳请参考我的这篇博客https://mp.csdn.net/mp_blog/creation/editor/120031148这题跟模板不同的是题目要求输出整数,而且是四舍五入的!一开始没注意到吃了大亏,不过不吃那亏也注意不到我模板写错了……因祸得福哈哈模板和原理都在上篇博客中讲述的很清楚了,下面是模板的运用AC代码#include<cstdio> //计算几何基础 代码 htt

2021-09-04 06:20:56 152

原创 计算几何基础(施工未完)

目录总模板点和向量部分点和线部分总模板#include<cstdio> //计算几何基础 代码 https://blog.csdn.net/qq_44691917/article/details/104686146 #include<iostream>//理论https://www.luogu.com.cn/blog/wjyyy/geometry1 #include<cmath>using namespace std;#define Vect

2021-09-01 02:48:54 588 1

转载 结构体初始化:构造函数 二义性

struct Node{ int r,c,dist; Node(){} Node(int r,int c):r(r),c(c){} Node(int r,int c,int dist):r(r),c(c),dist(dist){}};第三行是为了能够不经初始化就能定义结构体变量

2021-08-31 18:36:07 184

原创 POJ 2182 普通权值线段树求第k小

模板写错了,研究了一个多小时,哭死int kth(int root,int start,int end,int k) {//查询第k小值是多少 if(start==end) return start; int mid=(start+end)>>1,s1=tree[lson],s2=tree[rson]; if(k<=s1) return kth(lson,start,mid,k);//向左子树搜索 else return kth(rson,mid+1,end,k-

2021-08-31 03:10:32 358

原创 求组合数的各种方法 (Lacus等) (理论待更新,目前只有模板)

理论待更新,今天更完Lacus定理注意!如果m%p>n%p,那么C(n%p,m%p,p)=0 也就是下标小于上标 结果也就是0了 这一点务必要注意#include<cstdio>//求单个组合数 卢卡斯定理 n<=1e18 m<=1e18 p为素数但比较小! p<=1e4 注意!如果m%p>n%p,那么C(n%p,m%p,p)=0 也就是下标小于上标 结果也就是0了 这一点务必要注意 #include<string.h>//易错:计算时.

2021-08-30 06:13:15 267

转载 莫比乌斯反演

https://blog.csdn.net/tomandjake_/article/details/81083703上面这篇文章讲得很好下面我对模板做一些分析int mu[maxn], vis[maxn];int primes[maxn], cnt;void get_mu() { memset(vis, 0, sizeof(vis)); memset(mu, 0, sizeof(mu)); cnt = 0; mu[1] = 1; for (int i = 2; i <= ma

2021-08-29 03:40:25 83

原创 扩展欧几里得 逆元 逆元打表

参考文献逆元打表扩展欧几里得+求单个逆元原理详阅,不再赘述typedef long long ll;ll exgcd(ll a,ll b,ll &x,ll &y){//扩展欧几里得算法 ax+by=c 求解a,b if(!b){ x=1,y=0; return a; } ll ans=exgcd(b,a%b,x,y); ll temp=x; x=y; y=temp-a/b*y; re

2021-08-29 02:38:33 128

转载 中国剩余定理(孙子定理)

参考文献感谢武大佬的PPT和精彩讲解模板(有一处错误)扩展欧几里得算法题意:人自出生起就有体力,情感和智力三个生理周期,分别为23,28和33天。一个周期内有一天为峰值,在这一天,人在对应的方面(体力,情感或智力)表现最好。通常这三个周期的峰值不会是同一天。现在给出三个日期,分别对应于体力,情感,智力出现峰值的日期。然后再给出一个起始日期,要求从这一天开始,算出最少再过多少天后三个峰值同时出现。分析: 首先我们要知道,任意两个峰值之间一定相距整数倍的周期。假设一年的第N天达到峰值,则

2021-08-29 01:53:57 800

原创 二分乘法a*b%m 解决a*b远超int

二分乘法主要是解决乘法的结果远超int范围,但需要的结果有取余的乘法运算对于a*b%m来说,如果b为奇数,ans+a,把b变为偶数如果b为偶数,我们令b减半,a翻倍类似快速幂的思想ll multi(ll a,ll b,ll m){//a*b%m 解决乘法的结果远超int范围,但需要的结果有取余的乘法运算 ll ans=0; a%=m; while(b){ if(b&1)//b为奇数时变偶数 ans=(ans+a)%m,

2021-08-29 00:48:34 277

原创 素数筛 欧拉函数

参考文献特别鸣谢武大佬的PPT素数筛素数及其相关定理一、素数定义 ​基本概念素数又称质数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。 ​易错点1不是质数,写题要注意出题人出0,1卡你,质数大于1唯一分解定理一个数n肯定能被分解成 n=p1^a1 * p2^a2 . . .*pn^an(p是素因子,a是素因子的个数)因为一个数肯定是由合数和质数构成的,合数又可以分解成质数和合数,最后递归下去就会变成质数的乘积最后化成了质数相乘的形式二、素数的

2021-08-27 19:39:37 577

原创 递归时间复杂度分析——递推方程

https://blog.csdn.net/u013340360/article/details/81030820比较简单,不需要结合各方资料综合分析,就直接放链接吧

2021-08-27 04:16:35 398

原创 博弈论基础

博弈论这个环节特别好玩,游戏嘛(不会的话做题就不好玩了,当年打比赛比赛结束后两三分钟才推出来,一看答案想撕草稿纸) 本篇文章含有大量逻辑证明,做题用不到,不想看的可以略过直接看结论和模板参考文献特别鸣谢孙大佬的PPT和精彩讲解威佐夫博弈尼姆博弈SG函数斐波那契博弈区间最值查询ST表详解预处理查询巴什博弈问题模型只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取...

2021-08-26 23:04:04 873

原创 卡特兰数 卡塔兰数 概念 代码实现 模型分析全集

特别鸣谢参考1参考2参考3概念情境导入一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列?可以形象化地转化为括号问题,更好理解,进栈是(,出栈是),下面为n=3的全部序列首先,我们设 f(n)=序列个数为n的出栈序列种数。 同时假定,从开始到栈第一次出到空为止,这段过程中第一个出栈的序数是k。特别地,如果栈直到整个过程结束时才空,则k=n。 首次出空之前第一个出栈的序数k将1 ~ n的序列分成两个序列:其中一个是1 ~ k-1,序列个数为k-1;另

2021-08-25 23:52:42 351

原创 组合数学 排列 容斥 卡特兰数

特别鸣谢徐哥的PPT和精彩讲解不可重复排列从n个物品中不可重复的取出m个物品n:待排列数组的长度cur:已经排列的元素个数A[]:存储排列后的元素vis[]:标记数组当前元素选择完之后记得恢复变量可重复排列从n个物品中可重复的取出m个物品last表示上一个选择,vis_P表示pick,当前元素挑选数量,vis_A表示当前元素挑选上限求全排列函数(基本不用)next_permutation和prev_permutation()...

2021-08-25 04:54:38 606 1

原创 基排序 C++实现 LSD 递增递减 两种思想 MSD略

https://blog.csdn.net/qq845579063/article/details/51447772

2021-08-22 22:18:53 106

原创 HDU 7087解题思路 优先队列 或者化为二进制后按位相减

https://acm.hdu.edu.cn/showproblem.php?pid=7087这题本质就是只有大的分条可以减去小的对象,不能相反,每个分条都要减不大于它的最大的对象才可以!第二句话是易错点!然后就看你怎么实现了有大佬用二进制按位相减,我贴一下,标准答案是堆优化,我觉得优先队列也没问题化为二进制后按位相减(一位大佬的思路)遇到2的n次幂都可以往这边想一下都是整数,用数组模拟二进制减法减去不大于它的最大的对象,那就先找位数相同的,这样搜索起来比较快样例2解

2021-08-21 22:48:07 86

原创 AC自动机模板

https://www.cnblogs.com/hyfhaha/p/10802604.html易错点多组数据初始化时,cnt要初始化为1,用完之后要对trie的son数组清0,其他可以不清0但是son必须清0,这个会影响拓扑和fail!如果RE,一定是trie开小了,这样cnt++才会访问越界,而不是s,T之类的开小了#include<cstdio>//https://www.cnblogs.com/hyfhaha/p/10802604.html#include<io.

2021-08-21 18:08:37 84

原创 后缀数组 注释详细

特别鸣谢党哥的PPT和精彩讲解概念介绍 后缀 后缀数组可以解决大部分的字符串问题,如查找子串,最长重复子串,最长公共子串等。后缀是指从某个位置 i 开始到整个串末尾结束的一个特殊子串。字符串r的从第i个字符开始的后缀表示为Suffix(i),也就是Suffix(i)=S[i…len(S)-1]。比如 abcdefg 的suffix(5)就是fg。 后缀树 例S=“vamamadn”(因树的建立比较麻烦,用数组替代) 后缀数组 后缀数组(SA[i]存放排名第i大的

2021-08-21 04:02:16 507 1

空空如也

空空如也

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

TA关注的人

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