由字典树想到的

由字典树想到的 字典树 双数组树 AC自动机双数组树 基于数组实现的字典树 public class TrieST<Value> { private static int R = 256; private Node root; public static class Node{ private Object val; private Node[] next = new Node[R]; } public Value g
分类: 其他 发布时间: 12-30 22:44 阅读次数: 0

线程的缓存何时刷新?

前言 曾经有遇到过这样一个问题,有一个共享变量keepRunning=true,线程A中执行while (keepRunning);,线程B中执行keepRunning = false;,在main函数中同时开启A,B线程,然后会发现程序会一直运行且不会退出。说白了这其实就是一个典型的可见性问题,A线程并不知道keepRunning已经被修改过了,故未将修改后的keepRunning变量的值从主内存中读取到线程缓存中来。 举例 上面的问题等价于下面的代码段: /** * @author ma
分类: 其他 发布时间: 12-30 22:44 阅读次数: 0

随机数生成器java实现

/** 设计一个随机数生成器,可以产生给定平均概率的随机证书序列。 即输入一个概率比如:0.9 然后输入要求的概率样本个数比如:1000 输出一个接近所输入的0.9的概率数(要求样本数越大越接近输入的概率) */ import java.util.Date; import java.util.Scanner; public class Random { private int seed; private int multiplier = 2743; private int addOn = 59
分类: 其他 发布时间: 12-30 22:44 阅读次数: 0

Codeforces Round #529 (Div. 3) F.Make It Connected

传送门 题意:   有 n 个顶点,每个顶点有个花费 a[ i ],连接顶点 u,v 需要花费 a[v]+a[u]的代价。   有 m 个特殊边,每条边有三个参数 u,v,w 代表的意思是连接 u,v 的花费可以不是 a[v]+a[u] 而是 w(当然选择小的那个啦)。   求联通所有的顶点需要的最少花费? 题解:   首先,需要建图,改如何建呢?   考虑到贪心的思路,首先不考虑 m 个特殊边,如何用最少的花费联通所有顶点呢?   答案是找到 a[ i ] 最少的顶点 i,其他 n-1 个顶
分类: 其他 发布时间: 12-30 22:44 阅读次数: 0

并查集(Union Find)的基本实现

概念 并查集是一种树形的数据结构,用来处理一些不交集的合并及查询问题。主要有两个操作: find:确定元素属于哪一个子集。 union:将两个子集合并成同一个集合。 所以并查集能够解决网络中节点的连通性问题。 基本实现 package com.yunche.datastructure; /** * @ClassName: UF * @Description: 并查集 * @author: yunche * @date: 2018/12/30 */ public class UF {
分类: 其他 发布时间: 12-30 22:44 阅读次数: 0

MyBatis 返回insert操作主键

应用场景 在向数据库插入数据时,需要保留插入数据的id,以便进行后续的update操作或者将id存入其他表作为外键。但是,在默认情况下,insert操作返回的是一个int值,它并非表示主键id,而是表示当前SQL语句影响的行数。 接下来,我们依次从options注解和SQL两个方面,了解MyBatis如何在使用MySQL和Oracle做insert插入操作时将返回的id绑定到对象中。 Mybatis的@Options注解 mybatis的@Options注解能够拿到对象自增的id的值,能够设置
分类: 其他 发布时间: 12-30 22:44 阅读次数: 0

我的Python分析成长之路3

一 集合 2018-12-30 集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。 创建集合:大括号或 set() 函数可以用来创建集合。注意:想要创建空集合,你必须使用 set() 而不是 {},后者用于创建空字典。大括号也不可以创建元素含有字典与列表的集合。 1 #对于一个集合的操作 2 set1 = {1,2,3,5,6} 3 set1.add(8) #给集合增加一个元素 4 set1.clear() #清空集合 5 set1.copy() #浅copy
分类: 其他 发布时间: 12-30 22:44 阅读次数: 0

SQL Server数据库的DDL操作

SQL Server数据库的DDL操作 概念: DB 数据库 database DBMS 数据库管理系统 database manger System DBS 数据库系统 database System 数据库系统的核心数据库管理系统 DAO 数据库对象所有者 database owner 注意: 一个实例对应一个服务器 命名实例:服务器名/实例名 常见类型和所占字节 char 长度不可变 varchar 长度可变 int 4字节 small int 2字节 big int 8字节 text
分类: 其他 发布时间: 12-30 22:44 阅读次数: 0

类--定义和友元

一、类的定义 1、成员函数 1)定义成员函数   成员函数的声明必须在类的内部,它的定义既可以在类的内部也可以在类的外部。定义在类内部的成员函数是隐式的inline函数。   成员函数通过一个名为this的额外的隐式参数来访问调用它的那个对象。当我们调用一个成员函数时,用请求该函数的对象地址初始化this。因为this的目的总是指向“这个”对象,所以this是一个常量指针,我们不允许改变this中保存的地址。当一个成员调用另外一个成员时,this指针在其中隐式地传递。 2)const成员函数
分类: 其他 发布时间: 12-30 22:44 阅读次数: 0

前端——CSS

CSS CSS是英文Cascading Style Sheets的缩写,称为层叠样式表,用于对页面进行美化。 存在方式有三种:元素内联、页面嵌入和外部导入,比较三种方式的优缺点。 语法:style = "key1:value1;key2:value2;" 在标签中使用 style="xx:xxx;"(任何一个标签都可以使用style属性来编写样式) 在页面中嵌入 < style type="text/css" href="css文件路径" rel="stylesheet"> </style >
分类: 其他 发布时间: 12-30 22:44 阅读次数: 0

python制作词云图

开局10分钟 关于wordcloud库的安装问题在上一篇的博客中已经介绍了,这篇主要和大家分享我学习使用wordcloud库的一些经历。 tips:需要注意的是使用wordcloud库是依赖numpy库和PIL库的,因此需要提前安装好这两个库。 证据如下:打开wordcloud.py 1、wordcloud库 参考资料如下:https://amueller.github.io/word_cloud/generated/wordcloud.WordCloud.html wordcloud模块中有
分类: 其他 发布时间: 12-30 22:44 阅读次数: 0

python3中使用requests库出现的编码问题

最近在使用python完成爬虫任务时遇到了编码问题,查看了很多资料,现总结一些编码的知识。 1、编码解码 1、1 字符和字节 “字节”是一个8位的物理存贮单元。而“字符”则是一个文化相关的符号。 字符是人类能够识别的符号,而这些符号要保存到计算的存储中就需要用计算机能够识别的字节来表示。一个字符往往有多种表示方法,不同的表示方法会使用不同的字节数。这里所说的不同的表示方法就是指字符编码,比如字母A-Z都可以用ASCII码表示(占用一个字节),也可以用UNICODE表示(占两个字节),还可以用U
分类: 其他 发布时间: 12-30 22:44 阅读次数: 0

Python实现果蝇算法

import numpy as np import matplotlib.pyplot as plt #定义需要解的函数(名称为fun1) def fun1(arr): y = 2*arr**2-1 return y #######果蝇算法###### ##初始化果蝇参数 popsize = 30 #果蝇种群规模 maxgen = 100 #果蝇最大迭代次数 R = 1 #果蝇飞行半径 D = 1 #优化变量个数 X = np.zeros([po
分类: 其他 发布时间: 12-30 22:43 阅读次数: 0

epoll使用详解

epoll介绍 epoll的行为与poll(2)相似,监视多个有IO事件的文件描述符。epoll除了提供select/poll那种IO事件的水平触发(Level Triggered)外,还提供了边缘触发(Edge Triggered),这就使得用户空间程序有可能缓存IO状态,减少epoll_wait/epoll_pwait的调用,提高应用程序效率。 epoll_create(2) 创建一个新的epoll实例,并返回一个引用该实例的文件描述符 epoll_ctl(2) 创建epoll实例后,注册
分类: 其他 发布时间: 12-30 22:43 阅读次数: 0

Python中使用Type hinting 和 annotations

Type hints最大的好处就是易于代码维护。当新成员加入,想要贡献代码时,能减少很多时间。 也方便我们在调用汉书时提供了错误的类型传递导致运行时错误的检测。 第一个类型注解示例 我们使用一个简单例子,两个整数相加。 def add(a, b): return a + b 上面的例子,可工作于任意可以进行+操作符的对象。如果我们仅让该函数只能对整型作为参数,然后也只是返回整型结果呢? def add(a: int, b: int) -&gt; int: return a
分类: 其他 发布时间: 12-30 22:42 阅读次数: 0

Canvas中的剪切clip()方法

Canvas中的剪切 接下来我们要聊的不是图像的合成,而是Canvas中的另一个有用的功能:剪切区域。它是Canvas之中由路径所定义的一块区域,浏览器会将所有的绘图操作都限制在本区域内执行。在默认情况下,剪辑区域的大小与Canvas画布大小一致。除非你通过创建路径并调用Canvas绘图环境对象的clip()方法来显式的设定剪辑区域,否则默认的剪辑区域不会影响Canvas之中所绘制的内容。然而,一旦设置好剪辑区域,那么你在Canvas之中绘制的所有内容都将局限在该区域内。这也意味着在剪辑区域以
分类: 其他 发布时间: 12-30 22:42 阅读次数: 0

Unity优化之GC——(二)合理优化Unity的GC

转载请标明出处http://www.cnblogs.com/zblade/   最近有点繁忙,白天干活晚上抽空写点翻译,还要运动,所以翻译工作进行的有点缓慢 =。=   PS: 最近重新回来更新了一遍,文章还是需要反复修改才能写的顺畅,多谢各位的支持 :D   本文续接前面的unity的渲染优化,进一步翻译Unity中的GC优化,英文链接在下:英文地址 介绍:   在游戏运行的时候,数据主要存储在内存中,当游戏的数据在不需要的时候,存储当前数据的内存就可以被回收以再次使用。内存垃圾是指当前废弃
分类: 其他 发布时间: 12-30 22:41 阅读次数: 0

Unity优化之GC——(一)认识堆(heap)&栈(stack)

尽管在.NET framework 下我们并不需要担心内存管理和垃圾回收(GarbageCollection),但是我们还是应该了解它们,以优化我们的应用程序。 同时还需要具备一些基础的内存管理工作机制的知识,这样有助于解释日常程序编写中的变量的行为。 本文将学习和理解堆和栈的基本知识,变量类型以及为什么一些变量能够按照它们自己的方式工作。 在.NET framework环境下,当我们执行代码时,内存中有两个地方用来存储这些代码:堆和栈。 ·Question1:堆和栈有什么不同? 【申请速度】
分类: 其他 发布时间: 12-30 22:41 阅读次数: 0

SpriteRenderer(场景_UI)和Image(Canvas_UI)的区别

Unity3D最初是一个3D游戏引擎,而从4.3开始,系统加入了Sprite组件,Unity也终于有了2D游戏开发的官方解决方案。4.6更是增加了新的UI系统uGUI,使得使用Unity开发2D游戏效率非常高。 那么对于从事2D游戏开发的同学来说,想必都曾经遇到过2D元素渲染的选择问题。大家都知道,Unity可以将导入的图片分割为若干Sprite,然后通过SpriteRenderer组件或者uGUI的Image组件来渲染。一般情况下,两者的显示效果是一致的。那么究竟该使用哪个组件呢? 首先分析
分类: 其他 发布时间: 12-30 22:41 阅读次数: 0

知识积累,概要(杂项)

直接进入正文,简单概括,划重点!!! 堆与栈: 栈存储较小和短暂的数据,堆存储较大和较长的数据。 栈是自行维护的,堆需要考虑垃圾回收。 GC方面: 垃圾回收主要是指堆上的内存分配和回收。 触发机制有3种:1.内存不够,自动触发。2.定时触发(依据平台)。3.GC强制执行 内存分配流程:当需要获取一个足够大的内存块时,检测是否有足够的空闲内存 OFF--》 开始GC,清理废弃内存(引用不再处于激活状态),再次检测 OFF --》扩展内存 GC的隐患:1.堆内存变量或者引用越多,清理越耗时,造成游
分类: 其他 发布时间: 12-30 22:40 阅读次数: 0