自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 温故知新 - View 的绘制流程

view 绘制流程

2022-09-04 14:44:24 376 1

原创 Android 三种动画 (帧动画 、补间动画、属性动画)

安卓的三种动画

2022-09-04 14:33:35 4285

原创 数据库事务四个特性

ACID特性数据库管理系统中事务(transaction)的四个特性(分析时根据首字母缩写依次解释):原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。(执行单个逻辑功能的一组指令或操作称为事务)详解1. 原子性原子性是指事务是一个不可再分割的工作单元,事务中的操作要么都发生,要么都不发生。可采用“A向B转账”这个例子来说

2020-09-18 15:30:58 1659

原创 LRU算法

#include <iostream>#include <list>#include <map>using namespace std;class LRU { struct node { int key, val; node(int k_ = 0, int v_ = 0) { key = k_; val = v_; } }; public: int cap; // 大小 map<int, list<node&gt.

2020-09-16 10:24:09 214

原创 C++设计模式

https://github.com/liu-jianhao/Cpp-Design-Patterns组件协作模式:Template Method 模板方法动机(Motivation)在软件构建过程中,对于某一项任务,它常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求,或者由于固有的原因(比如框架与应用之间的关系)而无法和任务的整体结构同时实现。 如何在确定稳定操作结构的前提下,来灵活应对各个子步骤的变化或者晚期实现需求?模式定义定义一个操作中的算法的骨架(稳定),而将一些..

2020-09-11 17:06:52 268

原创 八大设计模式原则

1.依赖倒置原则高层模块不依赖底层模块,二者都应该依赖抽象抽象不依赖实现细节,实现细节应该依赖于抽象这一原则与下面的针对接口变成而不是针对实现编程是一个道理,我们设计一个程序,我们应该先想好我们想要抽象什么,它应该具有什么样的能力,而不是先考虑怎么实现,这其中的具体方法,而最后在根据自己写的具体实现,从而汇总出最后的接口是什么。2开放封闭原则:对拓展开放,对更改封闭类模块应该是可 拓展的,但是不可修改的。我们应该定义好接口之后就尽可能保证接口层的稳定,3单一职责原则:一个..

2020-09-11 17:00:34 298

转载 C/C++内存泄漏及检测

“该死系统存在内存泄漏问题”,项目中由于各方面因素,总是有人抱怨存在内存泄漏,系统长时间运行之后,可用内存越来越少,甚至导致了某些服务失败。内存泄漏是最难发现的常见错误之一,因为除非用完内存或调用malloc失败,否则都不会导致任何问题。实际上,使用C/C++这类没有垃圾回收机制的语言时,你很多时间都花在处理如何正确释放内存上。如果程序运行时间足够长,如后台进程运行在服务器上,只要服务器不宕机就一直运行,一个小小的失误也会对程序造成重大的影响,如造成某些关键服务失败。对于内存泄漏,本人深有体会!实习的时

2020-09-02 19:48:56 259

转载 inet_pton()和inet_ntop()函数

1.把ip地址转化为用于网络传输的二进制数值int inet_aton(const char *cp, struct in_addr *inp);inet_aton() 转换网络主机地址ip(如192.168.1.10)为二进制数值,并存储在struct in_addr结构中,即第二个参数*inp,函数返回非0表示cp主机有地有效,返回0表示主机地址无效。(这个转换完后不能用于网络传输,还需要调用htons或htonl函数才能将主机字节顺序转化为网络字节顺序)in_addr_t in...

2020-08-31 17:10:58 162

原创 Socket编程

C++ Socket 编程:https://blog.csdn.net/sinat_35866463/article/details/81019778windows环境下用c++实现socket编程:https://blog.csdn.net/xiaoquantouer/article/details/58001960win7系统两台电脑之间利用Socket实现文件传输---C++实现:https://blog.csdn.net/sinat_33718563/article/details/8036

2020-08-31 11:17:05 125

原创 c++11多线程学习

一.join和detachC++中的thread对象通常来说表达了执行的线程(thread of execution),这是一个操作系统或者平台的概念。当thread::join()函数被调用后,调用它的线程会被block,直到线程的执行被完成。基本上,这是一种可以用来知道一个线程已结束的机制。当thread::join()返回时,操作系统的执行的线程已经完成,C++线程对象可以被销毁。当thread::detach()函数被调用后,执行的线程从线程对象中被分离,已不再被一个线程对象所表达--这

2020-08-23 23:01:58 264

原创 创建线程的几种方式

class A { int x;public: void f(int x, char c) { }; int operator()(int N) { return 0; }};void foo(int x){}int main() { A a; thread t1(a, 6); // 传递a的拷贝给子线程 thread t2(ref(a), 6); //传递a的引用给子线程 thread t3(move(a), 6); //a在主线程中将不再有效 thread t4(.

2020-08-23 19:52:53 196

原创 线程私有数据

线程私有数据实现的主要思想是:在分配线程私有数据之前,创建与该数据相关联的健,这个键可以被进程中的所有线程使用,但每个线程把这个键与不同的线程私有数据地址进行关联,需要说明的是每个系统支持有限数量的线程特定数据元素(下面的例子以128个为限制)。那么这个键的实现原理是什么呢?其实系统为每个进程维护了一个称之为Key结构的结构数组,如下图所示:(图1)在上图中Key 结构的“标志”指示这个数据元素是否正在使用。在刚开始时所有的标志初始化为“不在使用”。当一个线程调用pthread_key_crea

2020-08-22 16:31:57 452

原创 pthread多线程学习

基于pthread学习多线程编程

2020-08-22 16:09:29 116

原创 pthread_cond_wait()

intpthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex); 该函数第一个参数为条件变量指针,第二个为互斥量指针。该函数调用前,需本线程加锁互斥量,加锁状态的时间内函数完成线程加入等待队列操作,线程进入等待前函数解锁互斥量。在满足条件离开pthread_cond_wait函数之前重新获得互斥量并加锁,因此,本线程之后需要再次解锁互斥量。pthread_mutex_lock(&mymutex);然后,...

2020-08-22 15:16:14 252

原创 VS2019在win10下配置boost库

第一步:官网下下载:https://www.boost.org/users/history/version_1_73_0.htmlwin10选择boost_1_73_0.zip第二步:解压第三步:编译打开VS命令行选择 已压缩好的boost_1_73_0文件夹运行 bootstrap.bat成功之后运行 刚刚生成的 b2此时运行时间较长。第四步:设置vs内选择工程属性,vc++目录下,包含目录添加boost路径****\boost_1_73_0,库目录添加*****.

2020-07-21 11:47:59 904

原创 python实现键盘输入多个值

Python 2里面读取输入的函数是raw_input(), Python 3的是input(),读入一个值后回车读取输入就退出了,想要一次读取多个输入,可以像下面这样:a, b = raw_input().split()1 2aOut[224]: '1'bOut[225]: '2'上面保存的是字符串,可以用map转化为int型的a, b = map(in...

2020-02-06 15:31:11 4163

原创 matlab图形功能

//

2020-01-28 10:51:07 155

原创 matlab数值计算

第一节 多项式运算一、多项式的表示、求值、求根 1. 表示: matlab中把多项式表达成一个行向量,该向量中的元素是按多项式降幂排列的。 p=[2,3,-1,4,5]表示多项式:显示多项式的数学形式: p1=poly2str(p,'x') 如:p=[1,2,3,4] p1=poly2str(p,'x') 结果:p1 = x^3 + 2 x^2...

2020-01-21 21:58:29 3390

原创 matlab程序设计

一、自定义函数格式:函数句柄 = @(自变量列表)函数表达式例1 定义函数,并计算f(x)在点x=-2,1,2.5,3,5.2的值。f=@(x)x.^2+3*x+5 x=[-2,1,2.5,3,5.2] y1=f(x)二、 m-文件函数(子程序) 格式:function [y1,y2]=ff(x1,x2) …… ...

2020-01-21 21:11:50 949

原创 matlab数组运算与数组化编程

matlab中的运算和操作主要是以数组为对象的, 数组又包括:数值数组、字符数组、元胞数组等。一、数值数组的建立:1. 直接输入法:逗号:用来分开数组中的行元素。(可用空格代替)分号:用来将数组中的行分开。 (可用回车键代替)中括号[ ]:界定数组的首与尾。a=[1,2,3,8,-1], b=[1;2;3;8;-1],A= [2,4,1;0,-2,4;2,4,6]...

2020-01-21 20:56:42 1323

原创 MATLAB学习知识整理 从入门到放弃

简介: Matlab: 美国MathWorks公司出品的商业数学软件。是一种高级技术计算语言和交互式环境。主要用于: 算法开发 数据可视化 数据分析 数值计算一、初识matlab二、matlab数组运算与数组化编程三、matlab图形功能四、m...

2020-01-21 18:16:27 190

原创 初识matlab

简单的数学运算:极限运算: limit(f,x,x0): 计算x→x0时函数f的极限。举例:syms xy1=(1+x+2*sin(x))^(2/x);y2=((1+x)^0.5-2)/(x^2-2*x-3);y3=x^2*sin(1/x)/sqrt(2*x^2-1);f1=limit(y1,0)f2=limit(y2,3)f3=li...

2020-01-21 18:12:04 258

原创 数据挖掘-diana算法

#include<bits/stdc++.h>using namespace std;#define INF 0x3f3f3f3fstruct node { double x, y; int id; node(double x_ = 0, double y_ = 0, int id_ = 0) { x = x_; y = y_; id = id_; }};...

2019-12-02 11:43:36 1873 3

原创 数据挖掘-agnes算法

#include <bits/stdc++.h>using namespace std;#define INF 0x3f3f3f3fvector<double> v[10010];int n, k;double average[10010]; int main() { cin >> n >> k; for(int i = 1; i ...

2019-12-02 11:08:50 782

原创 数据挖掘-knn

#include <bits/stdc++.h>using namespace std;const int N = 1e5 + 10;struct node { int id; double x, y;}a[N], b[N], t;int len, k;int n;double distance(node x, node y) { return sqrt((x.x...

2019-12-02 10:35:02 131

原创 数据挖掘-k平均算法

/*题目内容:实现k平均算法的代码,并且通过样例代码:*/#include <bits/stdc++.h>using namespace std;#define eps 1e-8#define INF 0x3f3f3f3fconst int N = 1e6 + 10;int n, k;pair<double, double> a[N], b[N];v...

2019-12-02 10:23:51 465

原创 Kattis - largesttriangle Largest Triangle 平面最大三角形面积

题目链接:https://vjudge.net/problem/Kattis-largesttriangle题意:任意三点的最大三角形面积题解:首先想到最大的面积应该出现在凸包上,然后就是枚举任意两点,能想到第三点是满足线性的,所以第三点线性来求,复杂度n^2,注意一点就是在多加n个,因为要转一圈#include <iostream>#include <cstdi...

2019-10-31 21:12:05 541

原创 1080 F. Katya and Segments Sets 主席树

题目链接:https://codeforces.com/contest/1080/problem/F题意:有k个线段所属在n个集合中,每次询问a b x y,问是否[a, b]的每个集合中都存在一个线段在[x, y]的范围内题解:按照每个线段的有区间排序,然后按照右区间建立主席树,每个节点保存该位置的最右左区间,然后查询的时候即为对应所有位置的最右左区间的最小值,看是否大于x#inc...

2019-10-31 17:37:21 161

原创 1225 D. Power Products 哈希

题目链接:http://codeforces.com/problemset/problem/1225/D题意:有多少种组合方式,使得两个数相乘 能写成 x^k 的形式题解:首先x^k,x的每个素因子的数目都是k的倍数,那么我们就对于每个数的素因子个数哈希一下,对于每个数求值的时候,找到能使他的每个素因子个数为k的倍数的哪些数。#include <bits/stdc++.h&gt...

2019-10-31 10:49:41 225

原创 ICPC Asia HongKong 2017

南京已成炮灰,徐州加油!A:java二分import java.math.*;import java.util.*;public class Main { public static void main(String [] args){ Scanner cin=new Scanner(System.in); int t,n; BigInteger z,zn,znjyn,...

2019-10-29 21:18:38 128

原创 CodeForces - 374D Inna and Sequence 线段树

题目连接:https://vjudge.net/problem/CodeForces-374D题意:n次操作,先给出m个数,原先有一个空序列,每次操作给出一个数,为1或0都放在后面,为-1时,删除m个位置的数题解:只看n和m是很大的不能直接操作,但是单看每个数的贡献来说,对于每个数,插入和删除只有两次,所以复杂度是nlogn,那就看怎么删除了,删除的时候就看剩下的数够不够删的就可了#...

2019-10-22 16:56:42 122

原创 18南京 Gym - 101981M Mediocre String Problem 扩展kmp+马拉车

题目链接:https://vjudge.net/problem/Gym-101981M题意:求 s的一个子串后面加上t的前缀为回文串并且满足|s| > |t| 的个数题解:因为牵扯到了前缀和子串的问题,大体就能想到要用到扩展kmp,我们把s倒置,那么问题就转化为了,对于s串的每一个位置pos的后缀和t前缀的公共长度* 以pos-1为结尾的回文串个数 的总和,求公共长度就是扩展kmp...

2019-10-19 19:42:00 215

原创 Gym - 102307C Common Subsequence dp

题目链接:https://vjudge.net/problem/Gym-102307C题意:两个字符串的匹配长度能不能达到99%;题解:因为n为1e5,所以不能直接dp[i][j]表示到(i,j)的最长匹配长度了,因为失配的最多1000,因此dp[i][j]表示第一个串 去掉i个,第二个去掉 j 个,匹配的最长长度。#include <bits/stdc++.h>usi...

2019-10-15 20:37:02 264

原创 Gym - 102307E Extreme Image 线段树 扫描线

题目链接:https://vjudge.net/problem/Gym-102307E题意:平面上n个点,给定区域的w和d范围,求区域最大的点数题解:其实和在平面上给定长和宽 是一样的道理,这个只需要对角度排序,然后对于每个点保存[x - d, d] 然后取最大值即可,注意一点是因为他是一圈,所以n个点再加n个放到后面继续求即可,但这个比较坑的是,w是小数,直接比较在case12就错了,因...

2019-10-15 20:02:57 243

原创 Gym - 101955L Machining Disc Rotors 计算几何 圆剩余部分直径

题目链接:https://vjudge.net/problem/Gym-101955L题意:n个圆和 圆(0,0,R) 部分相交,求剩余圆的直径题解:如果剩余部分存在直径的话,那就是2*R,这个怎么判断呢,对于每一个交点,判断他关于(0,0)的对称点是不是在n个圆内,如果都不在的话,那就存在2*R的直径,如果都没有的话,那就是任意两个点的最大距离了#include <bits/...

2019-10-14 14:26:09 198 1

原创 Gym - 102307J Jail Destruction 线段树

题目链接:https://vjudge.net/problem/Gym-102307JThe semester has just begun at Universidad Nacional (UNAL). As usual, a group of vandals enjoys bringing chaos to all students and damaging the university ...

2019-10-12 21:58:37 381

原创 2018徐州 Gym - 102028J Carpets Removal 概率事件+二维差分

题目链接:https://vjudge.net/problem/Gym-102028J题意:去掉两个矩形,让剩下的矩形覆盖的点最少题解:使剩下的点少,那么我们就是去掉的两个矩形覆盖的尽可能多,也就是两个矩形各自占据的格子和只有两个矩形占据的格子,像这种随机数据,去掉的最优的情况很容易就在各自占用很多的情况,或者两者同时覆盖很多的情况,那么我们就按照几种情况排序只处理前几百个矩形就行。...

2019-10-12 21:25:04 248

原创 HDU - 5923 Prediction 多个并查集

题目链接:https://vjudge.net/problem/HDU-5923题解:因为n只有500个,所以我们可以每个点维护一个并查集,所以判断某些点的时候,这些并查集在合起来即可#include <bits/stdc++.h>using namespace std;const int N = 510;struct edge { int x, y;}e[1001...

2019-10-08 20:48:26 114

原创 2017 ICPC Asia Urumqi I. A Possible Tree 带权并查集

题目链接:https://nanti.jisuanke.com/t/40520题解:因为他们都是联通的且只有唯一路径,所以不用管之前怎么连的,直接按照他给的查询,带权并查集判断即可#include <bits/stdc++.h>using namespace std;const int N = 1e5 + 10;int f[N], r[N];int n, m;int...

2019-10-08 20:39:17 110

原创 CodeForces - 1228D Complete Tripartite 图上的哈希

题目链接:https://vjudge.net/problem/CodeForces-1228D题解:我们把每个点哈希,这样就能计算出和每个点连接的其他点的总哈希值,若只有三种哈希值的和,那么就是符合的,当然还有其他很多种做法。#include <bits/stdc++.h>using namespace std;typedef unsigned long long ul...

2019-10-05 13:30:31 231

空空如也

空空如也

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

TA关注的人

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