linux虚拟化简介 为跨平台而生 在计算机发展的早期,各类计算平台、计算设备所提供的接口、调用方式纷繁复杂,没有像今天这样相对统一的标准。由于需要适配不同的平台,需要写很多繁琐的兼容代码,这无形中给开发者带来了很大的不便。甚至,这种混乱出现在 IBM 这一家公司下不同机型的机器上,所以 IBM 的工程师们创造了虚拟化技术,用来帮助程序快速适配不同平台的物理机器。 我们知道程序对计算机资源的调用主...
从几个简单例子谈随机优化技术 1. 关于随机优化(stochastic optimization)随机优化技术常被用来处理协作类问题,它特别擅长处理:受多种变量的影响,存在许多可能解的问题,以及结果因这些变量的组合而产生很大变化的问题。例如:在物理学中,研究分子的运动在生物学中,预测蛋白质的结构在计算机科学中,预测算法的最坏可能运行时间NASA甚至使用优化技术来设计具有正确操作特性的天线,而这...
遗传编程(GA,genetic programming)算法初探,以及用遗传编程自动生成符合题解的正则表达式的实践... 1. 遗传编程简介0x1:什么是遗传编程算法,和传统机器学习算法有什么区别传统上,我们接触的机器学习算法,都是被设计为解决某一个某一类问题的确定性算法。对于这些机器学习算法来说,唯一的灵活性体现在参数搜索空间上,向算法输入样本,算法借助不同的优化手段,对参数进行调整,以此来得到一个对训练样本和测试样本的最佳适配参数组。遗传编程算法完全走了另一外一条路,遗传编程算法的目标是编写...
NNs(Neural Networks,神经网络)和Polynomial Regression(多项式回归)等价性之思考,以及深度模型可解释性原理研究与案例... 1. Main Point0x1:行文框架第二章:我们会分别介绍NNs神经网络和PR多项式回归各自的定义和应用场景。第三章:讨论NNs和PR在数学公式上的等价性,NNs和PR是两个等价的理论方法,只是用了不同的方法解决了同一个问题,这样我们就形成了一个统一的观察视角,不再将深度神经网络看成是一个独立的算法。第四章:讨论通用逼近理论,这是为了将视角提高到一个更高的框架体...
阴谋还是悲剧?- 基于机器学习假设检验视角,看泰坦尼克号事件 1. 引言0x1:故事背景泰坦尼克号(RMS Titanic),又译作铁达尼号,是英国白星航运公司下辖的一艘奥林匹克级邮轮,排水量46000吨,于1909年3月31日在北爱尔兰贝尔法斯特港的哈兰德与沃尔夫造船厂动工建造,1911年5月31日下水,1912年4月2日完工试航。泰坦尼克号是当时世界上体积最庞大、内部设施最豪华的客运轮船,有“永不沉没”的美誉 。然而不幸的是,在它的处女...
浅谈独立特征(independent features)、潜在特征(underlying features)提取、以及它们在网络安全中的应用... 1. 关于特征提取0x1:什么是特征提取特征提取研究的主要问题是,如何在数据集未明确表示结果的前提下,从中提取出重要的潜在特征来。和无监督聚类一样,特征提取算法的目的不是为了预测,而是要尝试对数据进行特征识别,以此得到隐藏在数据背后的深层次意义。回想一下聚类算法的基本概念,聚类算法将数据集中的每一行数据分别分配给了某个组(group)或某个点(point),每一项数据都精确对...
从随机过程的熵率和马尔科夫稳态过程引出的一些思考 - 人生逃不过一场马尔科夫稳态... 1. 引言0x1:人生就是一个马尔科夫稳态每一秒我们都在做各种各样的选择,要吃青菜还是红烧肉、看电影还是看书、跑步还是睡觉,咋一看起来,每一个选择都是随机的,而人生又是由无数个这样的随机选择组成的结果。从这个前提往下推导,似乎可以得出一个结论,即人生是无常的,未来是不可预测的。但事实真的是如此吗?以前的老人流行说一句话,三岁看小,七岁看老。这似乎是一句充满迷信主义色彩的俗语,...
关于信息论中熵、相对熵、条件熵、互信息、典型集的一些思考 1. 绪论0x1:信息论与其他学科之间的关系信息论在统计物理(热力学)、计算机科学(科尔莫戈罗夫复杂度或算法复杂度)、统计推断(奥卡姆剃刀,最简洁的解释最佳)以及概率和统计(关于最优化假设检验与估计的误差指数)等学科中都具有奠基性的贡献。如下图这个小节,我们简要介绍信息论及其关联的思想的来龙去脉,提纲挈领地给出一个总的框架。1. 电子工程(通信理论)香农(shan...
信道容量及信道编码原理学习 1. 引言0x1:什么是通信当我们说“A与B通信”时,我们本质意思是在说A的物理行为使B产生一种需要的物理状态。信息的传输是一个物理过程,因此,必然受到无法控制的周边噪声以及信号处理本身缺陷的影响。如果接受者B与传输者A就所传输的内容是一致的,那么说这次通信是成功的。1. 数据压缩与数据传输的对偶性在数据压缩和数据传输之间存在对偶性:在数据压缩过程中,去除数据中所...
对博弈活动中蕴含的信息论原理的讨论,以及从熵角度看不同词素抽象方式在WEBSHELL文本检测中的效果区别... 1. 从赛马说起0x1:赛马问题场景介绍假设在一场赛马中有m匹马参赛,令第i匹参赛马获胜的概率为pi,如果第i匹马获胜,那么机会收益为oi比1,即在第i匹马上每投资一美元,如果赢了,会得到oi美元的收益,如果输了,那么回报为0。有两种流行的马票:a兑1(a-for-1):开赛前购买的马票,马民赛马前用一美元购买一张机会收益为a美元的马票,一旦马票对应的马在比赛中赢了,...
关于数据压缩、信源编码、赫夫曼码的一些研究,以及由此引出对决策树模型的信息论本质的思考... 1. 关于数据压缩0x1:什么是数据压缩?为什么要进行数据压缩?从信息论的角度来看数据压缩,本质上就是通过寻找一种编码方案,在不损失或者尽量少损失原始信源信号的前提下,将原始信源信号映射到另一个D元码字空间上。在机器学习中,我们经常讨论到的”模型训练“,其本质上就是在寻找一个”信源映射函数“,例如线性回归的回归参数,就是一种信源映射函数,可以将输入空间X,一一映射到Y空间,所...
面试突击(八)——JVM的结构及内存模型,是怎么划分的? 声明:本文图片均来自网络,我只是进行了选择,利用一图胜千言的力量来帮助自己快速的回忆相关的知识点0:再上一张Java代码的转换流程图.java——Java程序员编写,给人看的.class——Java编译器编译,给JVM看的机器码指令——JVM转换,给OS看的1:Java字节码信息加载进JVM后都是怎么存放的,如下图所示,是JVM的内存模型图,注意:JV...
面试突击(四)——面试准备 不打无准备之仗,面试也一样,如果想提高面试的成功率,则需要好好的准备,当然关键在于平时的学习和积累,如果平时努力不够,临时抱佛脚只能解一时急!下面是我认为作为一个java工程师面试大概需要复习和准备的东西。转载于:https://www.cnblogs.com/godtrue/p/11582489.html...
面试突击(七)——JVM如何加载Java字节码信息的? 声明:本文图片均来自网络,我只是进行了选择,利用一图胜千言的力量来帮助自己快速的回忆相关的知识点1:先看一下Java类文件的转换过程,如下所示,Java字节码文件是通过类加载子系统来放入JVM的内存空间的2:字节码文件的生命周期如下所示3:类加载的双亲委派模式如下所示转载于:https://www.cnblo...
面试突击(二)——理解计算机编程技术复杂性的根源 编程到底难在哪里呢?编程语言的语法复杂?业务逻辑复杂?可能都存在吧!不过就我自身的感受是编写多线程高并发相关的代码,以及编写网络通信的代码是比较复杂的,学习过c/c++不过我主要使用java编程,猜测管理系统内存直接和OS打交道的部分也应该是比较复杂的。如果没有多线程高并发编程,也不需要编写多进程之间通信的编程,我想编程可能就会轻松许多了。那问题来了,为啥会有进程、线程的存...
面试突击(六)——JVM如何实现JAVA代码一次编写到处运行的? 声明:本文图片均来自网络,我只是进行了选择,利用一图胜千言的力量来帮助自己快速的回忆相关的知识点JVM是 JAVA Virtual Machine 三个英文单词的首字母缩写,翻译成中文就是Java虚拟机,这个东西是用c++语言编写的一款软件,目的在于实现Java代码的一次编写到处运行,通过这个东西可以屏蔽计算机硬件的差异性,当然,为了解放JAVA程序员的生产力,他还做了许多的其...
面试突击(一)——理解计算机基石 学习计算机也有些时间了,慢慢的理解了一些原来不太理解的东西,今年输入了一些东西但是输出的很少,发现自己越学习越感觉自己什么都不会,我不是天才不能无师自通也不算聪明什么东西一学就会,其实慢慢的发现自己比较的愚钝,许多东西都学习的比较慢,而且有些东西要花许久的时间才能学习的明白。但是也不能不学习,人生如逆水行舟不进则退,那咋办?我感觉没什么好法子,一点一滴的学下去呗!坚持学下...
面试突击(五)——Java常用集合 为了勾起回忆,我画了一个常用集合类的结构关系图,话不多说,详见下图:实际开发中ArrayList/HashMap/HashSet是三种最常用的集合工具类,通过其结构关系图也能清晰的了解他们的特性,所以,这里也将他们完整结构关系图贴出来,以便回忆!1:ArrayList2:HashMap3:HashSet转载于:https://ww...
面试突击(三)——理解计算机网络编程技术的复杂性 如果网络编程像调用本地方法一样就好了,这样编程就会变得简单了起来,那网络编程的痛点在哪里呢?按照我的理解,总结为如下几点:转载于:https://www.cnblogs.com/godtrue/p/11503410.html...
通过sqlHelper访问数据库,查询数据 使用最简单的方式进行对数据库访问,并且查询返回需要的数据;如下步骤:一、web.config 配置<connectionStrings> <add name="ABConnection" connectionString="Data Source=.;Initial Catalog=xx_Db;User ID=xx;Password=789xxxxxx...
Angualr6+ 将数据转换整合PDF文档导出或在线预览 前言:需要将自己的数据单或是图片等转换成PDF格式,可以在线预览与下载;所需pdfmakes和ng2-pdf-viewer;并且解决pdfmakes中文与中文符号乱码问题;一、安装Pdfmakes命令行:npm install pdfmake --save二、在所用的.ts文件中导入引用:import * as pdfMake from 'pdfmake/build/pd...
OAuth2.0与1.0的对比与实例化描述分享 前言:云计算引出了大量的开放平台,各种第三方应用建立在开放平台之上,出于安全性的要求便出现了oauth协议,2007年发布了Oauth1.0协议,2.0的草案与2011年发布。定义:OAuth: OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容。1、2.0的用...
WXML 在前端页面中规定时间格式方法分享 前言:原本输出时间例如2019-08-14T11:11:23.9700000,格式化成2019-08-14 11:11:23; 原本小程序有一个util.js文件,里面是有格式化时间的方法的。但是不能被.wxml所调用 而有的时候,将数据直接在获取js里面修改会造成一定的麻烦,所以这个时候需要工具文件。一、创建时间格式化文件.wxsvarformatTime...
sqlite相关命令笔记 1、sqlite sql修改/交换列名引用:https://blog.csdn.net/qq_37059136/article/details/80886110①修改原来表的名字alter table HOUSE_DETAILS rename to HOUSE_DETAILS_BAK;②新建修改列名之后的表create table if not exists `HOU...
记录战斗记录你,详解妖尾战斗录像系统 妖尾历经几年开发,终于在今年6月底顺利上线,至今运营两个多月,笔者从2017年初参与开发,主要负责妖尾战斗系统开发,一路解决了一些技术问题,踩了一些坑,感觉有不少点是值得记录和分享的,希望能借几篇文字,系统性总结MMORPG战斗系统的开发经验。本文主要介绍战斗录像系统,战斗录像基本是所有MMORPG游戏的标配系统,它同时也能成为开发调试利器,在整个开发阶段扮演重要角色。...
MAC 系统环境配置记录 安装mysqlbrew install mysqlWe've installed your MySQL database without a root password. To secure it run: mysql_secure_installationMySQL is configured to only allow co...
PHP 根据sql添加Dao, Module层 添加Dao层<?php$tables = <<<EOF-- 资讯 - 分类表DROP TABLE IF EXISTS `category`;CREATE TABLE `category` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '分类主键id'...
CI使用原生sql /** * 清除记录 */public function clear_apply_row() { $trial_id = $this->input->get('trial_id', ture); $phone = $this->get_clear_phone_line(); $this->load...
分支合并到主干, 多个版本 #!/bin/sh -e# svn log -r 2484:2444 | grep 'r' | cut -d '|' -f1 | cut -d 'r' -f2 | sort -n > /tmp/version.txt## 开发目录maindir="/usr/local/var/www/A/qmmy"# 主干目录trunkdir="/usr/loc...
流程图 http://www.woshipm.com/pmd/868722.htmlhttp://www.woshipm.com/zhichang/2329530.html转载于:https://www.cnblogs.com/bandbandme/p/11244508.html
离线安装docker,并导入docker镜像 将docker离线安装包导入到系统中,解压并进入文件夹,使用下述命令进行安装:rpm -ivh *.rpm --nodeps --force 安装完成功使用,docker info 查看docker版本信息。在一台可连网的机器上,把你想要的镜像文件pull下来,使用docker进行打包,打包成tar文件。docker save -o 文件名.tar 镜像名...
@Value注入static属性 1. 给参数注入,执行set方法public class SendMessageCenter { private static String message; private static String page; @Value("${great-plat.messageCenter}") public void setMessage(String mes...
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set 的解决办法 Linux新建用户 ,sudo报错:sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set 解决办法:重置一下sudo的属性chown root:root /usr/bin/sudochmod 4755 /usr/bin/sudo 然后就ok了。转载于...
yml 文件中使用环境变量 Spring Boot 中可以用 spring.profiles.active 参数来指定系统环境,让系统加载不同的配置文件。 可以在程序启动的时候加上参数来指定需要的配置java -Dspring.profiles.active="dev" -jar user.jar 当然我们也可以事先设置好系统的环境变量expoer SERVER...
setclasspath.bat(2) 一、阅读说明1 术语说明1.1 下述内容使用“服务器”均代表Tomcat 7.0.75Web服务器1.2 下述内容使用%SERVER_PATH%表示服务器根目录二、setclasspath.bat文件源码1 setclasspath.bat文件位置setclasspath.bat文件位置:%SERVER_PATH%\bin\setclasspath.bat2 ...
一道有意思的思维题2 --- 排序、枚举 这道题是又一次在和学弟吃饭的路上听学弟讲的,感觉挺不错的^_^,这样仿佛经常听学弟讲题能收获不少呀,可能明年笔试有望了,哈哈~ Problem: 平面上给了有n个人,位置由(x,y)元组给定,平面上还有m扇门,位置由(x,y)给定。现在约定每扇门只能进一个人,且人只能向左和下移动(向x-1和y-1移动),请问最多有多少人进门? Solution:...
CUDA 与 OpenGL 的互操作 CUDA 与 OpenGL 的互操作一般是使用CUDA生成数据,然后在OpenGL中渲染数据对应的图形。这两者的结合有两种方式: 1、使用OpenGL中的PBO(像素缓冲区对象)。CUDA生成像素数据,OpenGL直接渲染即可。 2、使用OpenGL中的FBO(顶点缓冲区对象)。CUDA生成顶点数据,OpenGL渲染。 这两种方法的核心都是将OpenG...
一道有意思的思维题 --- 排序、枚举 这道题是在与学弟吃饭的路上听学弟讲的,感觉挺有意思的,需要不少的思维(可能我长时间没有刷题了,有点笨了~) 特此记录一下: Problem: 有n个(x,y)元组,求从中取出k个元组,使得这k个元组的x之和乘以其中最小的y值的值最大 ( sum(x)*min(y) in k个元组 ) Solution: 将n个元组按照y值从小到大排...
在C++工程上添加CUDA编译环境 1、直接在新建工程的时候选择CUDA,这样的工程既能编译C++也能编译CU2、在已有的C++工程上添加CUDA编译环境 右键工程-->生成依赖项-->生成自定义-->勾选CUDA 9.0 这时右键工程属性,发现多了两个关于CUDA的属性 点击CUDA C/C++下的Common,将默认的32-bit(--machine 32)...
CUDA -- 规约求矩阵的行和 求矩阵每行的和? 可以把每行放入一个不同线程块,这样行与行之间进行粗粒度的并行。而对于每行,其对应的线程块中分配n个线程(对应行宽),使用共享存储器,让每个线程从显存中读取一个数至shared memory中,然后使用规约算法计算和。代码如下:#include "cuda_runtime.h" //CUDA运行时API#include "device...
最长上升子序列(LIS: Longest Increasing Subsequence) 示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是[2,3,7,101],它的长度是 4。从网上找的一段代码(我由java改为了C++版本),原作者言简意赅,讲解的很清楚。我一般算法题都会自己看了思路再写一遍,但这个算法代码真的很简单,思想却非常棒,所以不再自己写一遍了。class Solution {publi...
CUDA -- 内存分配 CUDA可以认为是一个由软件和硬件构成的并行计算系统,其依赖于GPU的并行计算单元,CUDA有类C的API,方便程序编写。其依赖于CPU和GPU的异构体系,通过在CPU上串行执行环境初始化、内存分配、数据传输,然后在GPU上执行并行计算。内存分配 1、一维int *dev_ans = 0;cudaMalloc((void**)&dev_ans, d...
立方体贴图 立方体贴图,也称CubeMap。其实就是一张包含六个面的纹理贴图,一般情况下是加载六张贴图构成cubemap。 加载代码如下:void WKS::CubeMap::LoadCubeMap(std::vector<std::string> faces) { glGenTextures(1, &this->textureID);...
实例化渲染 实例化渲染适用于使用同一个模型渲染多次的情景,比如草地,一堆岩石等。 1、先看一个渲染方形100次的例子: 其顶点着色器会有少许适应实例化渲染的变化#version 330 corelayout (location = 0) in vec2 aPos;layout (location = 1) in vec3 aColor;ou...
几何着色器 一般我们只使用了顶点和片段着色器,这也是基本和必须的两个着色器,而几何着色器是一个可选的着色器,其位于顶点和片段着色器之间。 几何着色器接收来自顶点着色器的一个片元的一组顶点,然后可以对其进行变换,可以输出新的不同类型的片元,也可以增加顶点数,其功能非常强大。 一般写法如下:#version 330 corelayout (points) in;la...
面剔除 需要先将所有的面顶点按逆时针存储,这样从摄像机出发看不见的面的顶点环绕顺序就变成了顺时针了,利用这个特点可以找到背面了,进行剔除。需要知道的几个函数:1、开启面剔除 glEnable(GL_CULL_FACE);2、设置剔除正面还是背面,或正面和背面都剔除 glCullFace(GL_BACK); //(参数: GL_FRONT,GL_FRONT_AND...
windows API下的模板缓冲(stencil buffer) 在windows API搭建的OpenGL窗口中使用模板缓冲,需要在像素格式描述表中设置stencil buffer位宽为8,这样窗口会自动生成stencil buffer,然后可以在opengl环境下使用模板缓冲了。 一个渲染物体轮廓的示例,绿色为小长方体的边框 void Display() { glEnable(GL_DEPTH_...
Uniform Buffer Uniform Buffer 是一个很有用的缓存,可以将大量的需要传递至多个着色器的矩阵、向量数据等存储在uniform buffer中。这是一个公共的缓存,所以当多个着色器需要传递相同的数据时,可以使用uniform buffer,减少代码量,应该也可以较少CUP传递至GPU的数据量。 大体思路是: 各个着色器中定义uniform块,在OpenGL中定义uniform缓...
帧缓冲 帧缓冲,显卡渲染出的图像会保存在默认的帧缓冲之中,其包括的附件有颜色、深度、模板缓冲。 我们可以创建自己的帧缓冲。glGenFramebuffers(1, &this->framebuffer);glBindFramebuffer(GL_FRAMEBUFFER, this->framebuffer); 我们需要为其附加一些附件(如...
混合渲染 颜色向量有四个分量RGBA,之前只是用了RGB颜色分量,从来没有使用过A-alpha透明度,今天看了一下资料,简单总结一下。1、在frag着色器中使用discard,对透明度小于0.1的片段进行丢弃#version 330 coreout vec4 color;uniform sampler2D texture1;in vec3 FragPos...
堆排序 数据结构课上学过冒泡排序、选择排序、合并排序、快速排序等等,但就是没有堆排序。以前一看到堆,就觉得是个代码很复杂的算法,而且已经有这么多同等速度的排序算法了,没必要看堆排序了。但是最近看面试题发现有大量的关于堆的知识题,所以还是得看看,看了一下发现挺简单的,而且有其他排序算法没有的优点:支持插入删除,获取极值。代码如下:#include <iostream&g...
AtCoder Grand Contest 018题解 传送门\(A\)根据裴蜀定理显然要\(k|\gcd(a_1,...,a_n)\),顺便注意不能造出大于\(\max(a_1,...,a_n)\)的数int n,g,k,x,mx;int main(){ scanf("%d%d",&n,&k); fp(i,1,n)scanf("%d",&x),g=__gcd(g,x),cmax(mx,x);...
AtCoder Grand Contest 016题解 传送门\(A\)直接枚举最终的字母然后模拟就行了……就这数据范围还是别学我写的这种做法了……const int N=105;char s[N];int las[26],mx[26],n,res;int main(){ scanf("%s",s+1),n=strlen(s+1),res=n; fp(i,1,n)s[i]-='a'; fp(i,1,n)cm...
AtCoder Grand Contest 015题解 传送门\(A\)找到能达到的最大的和最小的,那么中间任意一个都可以被表示出来typedef long long ll;int n,a,b;ll res;int main(){ scanf("%d%d%d",&n,&a,&b); if(a>b||n==1&&a!=b)return puts("0"),0; re...
AtCoder Grand Contest 017题解 传送门\(A\)直接转移就是了typedef long long ll;const int N=55;ll f[N][2];int a[N],n,p;int main(){ scanf("%d%d",&n,&p); fp(i,1,n)scanf("%d",&a[i]),a[i]&=1; f[0][0]=1; fp...
AtCoder Grand Contest 014题解 传送门\(A\)首先大力猜测一下答案不会很大,所以次数大于\(10^6\)输出\(-1\)就行了不过我并不会证上界,据说是因为如果\(a=b=c\)且都是偶数肯定\(-1\),否则设\(a\leq b\leq c\),则最大最小值的差为\(c-a\),一次操作之后变成了\({c-a\over 2}\),所以操作次数就是\(\log\)级别的了typedef long long l...
Comet OJ - Contest #11题解 传送门\(A\)咕咕咕const int N=1e6+5;char s[N],t[N];int n,res;inline bool cmp(const int &x,const int &y){return x>y;}int main(){ scanf("%s",s+1),n=strlen(s+1); fp(i,1,n)t[i]=s[i]...
Mujin Programming Challenge 2017题解 传送门\(A\)似乎并不难啊然而还是没想出来……首先我们发现对于一个数\(k\),它能第一个走到当且仅当对于每一个\(i<k\)满足\(x_i\geq 2i-1\),这样我们就可以把所有的\(i\)移到\(2i-1\)然后让\(k\)直接一路过去了。而如果对于每个\(k\)都有这个性质,答案就是\(n!\)所以从左往右扫,记录当前栈中的元素个数,设当前的\(k\)在栈中的第...
CodefChef September Challenge 2019 题解 传送门\(CHEFK1\)首先连出一个环和所有的自环,剩下的每次按\(n\)个一连就可以了//quming#include<bits/stdc++.h>#define R register#define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)#define fd(i,a,b) for(R int i=(a),I...
CODE FESTIVAL 2016 Final 题解 传送门\(A\)什么玩意儿……const char c[]={"snuke"};char s[15];int n,m;int main(){ scanf("%d%d",&n,&m); fp(i,1,n)fp(j,1,m){ scanf("%s",s); bool flag=1; fp(k,0,4)i...
AtCoder Grand Contest 038 题解 传送门这场表现的宛如一个\(zz\)\(A\)先直接把前\(b\)行全写成\(1\),再把前\(a\)列取反就行const int N=1005;char mp[N][N];int n,m,a,b;int main(){ scanf("%d%d%d%d",&n,&m,&a,&b); fp(i,1,b)fp(j,1,m)mp[i]...
AtCoder Grand Contest 008题解 传送门\(A\)分类讨论就行了然而我竟然有一种讨论不动的感觉int x,y;inline int min(R int x,R int y){return x<y?x:y;}inline int min(R int a,R int b,R int c,R int d){ return min(min(a,b),min(c,d));}inline int cal...
AtCoder Grand Contest 013题解 传送门\(A\)先把相同的缩一起,然后贪心就可以了//quming#include<bits/stdc++.h>#define R register#define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)#define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)#...
CODE FESTIVAL 2016 Grand Final 题解 传送门越学觉得自己越蠢……这场除了\(A\)之外一道都不会……\(A\)贪心从左往右扫,能匹配就匹配就好了//quming#include<bits/stdc++.h>#define R register#define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)#define fd(i,a,b) for(R in...
CODE FESTIVAL 2016 qual C题解 传送门\(A\)什么玩意儿……const int N=105;char s[N];int n,f1,f2;int main(){ scanf("%s",s+1),n=strlen(s+1); fp(i,1,n)if(s[i]=='C')f1=1; else if(f1&&s[i]=='F')f2=1; puts(f2?"Y...
CODE FESTIVAL 2016 qual A题解 传送门不知道为什么\(AGC\)系列的题里突然多了这些……那就做吧……\(A\)什么玩意儿……upd:因为没看到最后要加换行居然没有\(1A\)好气哦……const int N=15;char s[N];int main(){ scanf("%s",s+1); fp(i,1,4)putchar(s[i]); putchar(' '); fp(...
CODE FESTIVAL 2016 qual B题解 传送门\(A\)什么玩意儿……const char t[]={"0CODEFESTIVAL2016"};char s[25];int res;int main(){ scanf("%s",s+1); fp(i,1,16)res+=s[i]!=t[i]; printf("%d",res); return 0;}\(B\)什么玩意儿……c...
AtCoder Grand Contest 010题解 传送门\(A\)判一下奇数的个数就行了const int N=1e5+5;int a[N],n,res;int main(){ scanf("%d",&n); fp(i,1,n)scanf("%d",&a[i]),res^=(a[i]&1); puts(res?"NO":"YES"); return 0;}\(B\)...
AtCoder Grand Contest 009 题解 传送门为啥这场题目少一点啊……\(A\)易知增加的数前面肯定比后面大,那么我们倒着做,然后维护一下最小要加多少就可以了typedef long long ll;const int N=1e5+5;int a[N],b[N],n;ll sum;int main(){ scanf("%d",&n); fp(i,1,n)scanf("%d%d",&...
AtCoder Grand Contest 011题解 传送门\(A\)直接按时间排序之后贪心就可以了const int N=1e5+5;int a[N],q[N],c,k,h,t,n,res;inline int min(R int x,R int y){return x<y?x:y;}int main(){ scanf("%d%d%d",&n,&c,&k); fp(i,1,n)sc...
AtCoder Grand Contest 006 题解 传送门\(A\)咕咕const int N=105;char s[N],t[N];int n;inline bool eq(R int k){fp(i,1,k)if(s[n-k+i]!=t[i])return false;return true;}int main(){ scanf("%d%s%s",&n,s+1,t+1); fd(k,n,0)if(e...
AtCoder Grand Contest 007题解 传送门\(A\)咕咕咕//quming#include<bits/stdc++.h>#define R register#define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)#define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)#define go(u) f...
Comet OJ - Contest #9 & X Round 3题解 传送门\(A\)咕咕typedef long long ll;int a1,a2,n,d;ll res;int main(){ scanf("%d%d%d",&a1,&a2,&n); d=a2-a1; res=1ll*(a1+a1+1ll*(n-1)*d)*n>>1; printf("%lld",res);...
AtCoder Grand Contest 037题解 传送门\(A\)直接把每个字母作为一个字符串,如果某个串和它前面的相同,那么就把这个字母和它后面那个字母接起来。然而我并不会证明这个贪心的正确性//quming#include<bits/stdc++.h>#define R register#define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)#define ...
AtCoder Grand Contest 004题解 传送门\(A\)咕咕int a,b,c;int main(){ scanf("%d%d%d",&a,&b,&c); if((a&1^1)|(b&1^1)|(c&1^1))return puts("0"),0; printf("%lld",min(1ll*a*b,min(1ll*a*c,1ll*b*c)))...
AtCoder Grand Contest 005题解 传送门\(A\)咕咕const int N=5e5+5;char s[N];int res,n,sum;int main(){ scanf("%s",s+1),res=n=strlen(s+1); fp(i,1,n)if(s[i]=='S')++sum; else if(sum)--sum,res-=2; printf("%d",re...
分析一次double强转float的翻车原因 背景人逢喜事精神爽,总算熬到下班撩~~正准备和同事打个招呼回家,被同事拖住问了.????♂️: 你们组做的那块代码,把double类型数据成float有问题啊????.????♀️: 嗯?不对是正常啊,float精度是没有double高,但float能保存到小数点后好多位,对我们来说完全够用了!????♂️: 不是啊,这不是小数点多少位的问题,而是现在整型数据,转出来也有问题啊,你看.????♀...
事务隔离级别中的可重复读能防幻读吗? 前言每次谈到数据库的事务隔离级别,大家一定会看到这张表.其中,可重复读这个隔离级别,有效地防止了脏读和不可重复读,但仍然可能发生幻读,可能发生幻读就表示可重复读这个隔离级别防不住幻读吗?我不管从数据库方面的教科书还是一些网络教程上,经常看到RR级别是可以重复读的,但是无法解决幻读,只有可串行化(Serializable)才能解决幻读,这个说法是否正确呢?在这篇文章中,我将重点围...
聊一聊数据库中的锁 背景数据库中有一张叫后宫佳丽的表,每天都有几百万新的小姐姐插到表中,光阴荏苒,夜以继日,日久生情,时间长了,表中就有了几十亿的小姐姐数据,看到几十亿的小姐姐,每到晚上,我可愁死了,这么多小姐姐,我翻张牌呢?办法当然是精兵简政,删除那些age>18的,给年轻的小姐姐们留位置...于是我在数据库中添加了一个定时执行的小程序,每到周日,就自动运行如下的脚本delete from ...
深入剖析PHP7内核源码(一)- PHP架构与生命周期 PHP7 为什么这么快?全新的zval 更节约的空间,栈上分配内存zend_string 存储字符串的Hash值,数组查询的时候不需要进行Hash计算在HashTable桶内直接存数据,减少了内存的申请次数,提升了cache命中率和内存访问速度zend_parse_parameters改为了宏实现,性能提升5%增加opcode指令 call_user_function,is_...
Rsync快速入门实例(转) 三种主要数据传输方式单主机本地目录间数据传输(类似cp)Local: rsync [OPTION...] SRC... [DEST]借助rcp,ssh等通道来传输数据(类似scp)Access via remote shell: Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST] Push...
深入剖析PHP7内核源码(二)- PHP变量容器 简介PHP的变量使用起来非常方便,其基本结构是底层实现的zval,PHP7采用了全新的zval,由此带来了非常大的性能提升,本文重点分析PHP7的zval的改变。PHP5时代的ZVALtypedef struct _zval_struct { zvalue_value value; // (长度16字节,具体看下面的分析) zend_uint refcount__g...
c语言中int long float double 等类型所占字节及输出表示(转) 16位编译器char :1个字节char*(即指针变量): 2个字节short int : 2个字节int: 2个字节unsigned int : 2个字节float: 4个字节double: 8个字节long: 4个字节long long: 8个字节unsigned long: 4个字节32位编译器(看这里就行了,与16位机,64位机比较,粗体type为不同的,其...
python文件操作-1.将PDF转成Excel # https://www.jianshu.com/p/f33233e4c712import pdfplumber # 为了操作PDFfrom openpyxl import Workbookwb = Workbook() # 创建文件对象ws = wb.active # 获取第一个sheetpath="C:/Users/Lenovo/Desktop/中国建...
python-1.Centos7安装Python3.6和Scrapy的方法 由于centos7原本就安装了Python2,而且这个Python2不能被删除,因为有很多系统命令,比如yum都要用到[root@iZm5efjrz9szlsq1a0ai3gZ ~]# pythonPython 2.7.5 (default, Jun 20 2019, 20:27:34) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on...
Mongodb操作3-可视化工具使用 1.无密码登录1.创建连接输入ip后 先测试在链接2.有密码登录 设置密码1.选择主数据库>>>use admin # 第一步 选择主数据switched to db admin2.设置用户名和密码第二步 创建用户名 wwwwwww 密码 111...
Mongodb操作2-windows系统安装数据库 1.下载mongodb本人提供的是64位的下载地址百度云盘连接 :链接:https://pan.baidu.com/s/1fp6aB5rvLa9dD4q4YysIXQ提取码:ekr2 并送上可视化工具:链接:https://pan.baidu.com/s/16M9N9BRghtt1kS0HN3EtNA提取码:lsz42.打开安装包 打开安装包同时创建...
阿里云(ecs服务器)使用3-安装mysql数据库以及远程部署 1.安装1.下载rpm包,下载地址 http://dev.mysql.com/downloads/mysql/,选择Linux-Generic版本2.新建 /usr/local/mysql 文件夹,将4个rpm包上传到该目录 我的mysql安装包以及可视化工具navicat都已经已经上传在云盘,需要的朋友可以直接关注的公众号(出来学pytho...
阿里云(ecs服务器)使用2-安装Mongdb数据库以及远程部署 1.下载mongodb我的mongodb安装包以及可视化工具都已经已经上传在云盘,需要的朋友可以直接关注的公众号(出来学python)去输入mongodb获取,二维码在下方。创建 /opt/mongdb 将压缩包放置到 /opt/mongdb 目录下mkdir -p /opt/mongdbcd /opt/mongdb2.解压安装包解压安装包同时创建/...
阿里云(ecs服务器)使用1-设置安全组 1.进入阿里云的控制台https://ecs.console.aliyun.com/?#/server/region/cn-qingdao,点击管理2.点击左边的 本实例安全组3. 点击加入配置规则4.点击 添加安全规则端口范围 mongoDB端口号 可以是你先设置的任何端口号授权对象 0.0.0.0/0 所有ip均可访...
Mongodb操作1-linux安装数据库 1.下载mongodb百度云盘连接 :链接:https://pan.baidu.com/s/1b-hTS0XHQKpatecFoumLxw提取码:z9ax并送上可视化工具:链接:https://pan.baidu.com/s/16M9N9BRghtt1kS0HN3EtNA提取码:lsz4创建 /opt/mongdb 将压缩包放置到 /opt/mongdb 目录下...
Hook Java API以获得MD5加密前数据 Java实现MD5加密在Java中,我们用MD5对数据进行加密,代码大概是这样的:import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;public class MD5Utils { public static void main(String[] args) {...
修改Android源码实现原生应用双开,应用多开 1. 准备把某系统双开的两个app的信息进行对比1.1 目录的对比1.1.1 data目录对比原应用:/data/user/0/com.luoyesiqiu.crackme/files被复制的应用:/data/user/999/com.luoyesiqiu.crackme/files1.1.2 apk所在目录对比原应用:/data/app/com.luoyesiqi...
python绕不开的 bytes、str 与 unicode 经常被encode、decode搞得晕晕的,特别是玩爬虫的时候,每次都想敷衍了事,最终还是躲不过,还是要耐下心来好好的分析分析 首先,python3两种表示字符序列的类型:bytes 和 str,bytes的实例是包含原始的8位值,str则是包含Unicode字符的,而在python2中同样也有两种表示字符序列的类型:str 和 unicode, str的实例包含原始的8位...
java基础学习_io流之FileInputStream 一。FileInputStream属性:/* File Descriptor - handle to the open file */private final FileDescriptor fd;/*用来标识输入流的状态*/private final String path; //文件的路径信息private FileChannel channel = null;...
Eclipse错误:Syntax error on tokens, delete these tokens问题解决 错误:Syntax error on tokens, delete these tokens出现这样的错误一般是括号、中英文字符、中英文标点、代码前面的空格,尤其是复制粘贴的代码,去掉即可。转载于:https://www.cnblogs.com/shaoxiaohuan/p/11295813.html...
调试过程中发现按f5无法走进jdk源码 debug 模式 ,在fis=new FileInputStream(file); 行打断点 调试过程中发现按f5无法走进jdk源码package com.lzl.spring.test;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundExcep...
什么是分布式事务以及有哪些解决方案? 1、什么是分布式事务?答:指一次大的操作由不同的小操作组成的,这些小的操作分布在不同的服务器上,分布式事务需要保证这些小操作要么全部成功,要么全部失败。从本质上来说,分布式事务就是为了保证不同数据库的数据一致性。2、分布式事务产生的原因?2.1 数据库分库分表 当数据库单表数据达到千万级别,就要考虑分库分表,那么就会从原来的一个数据库变成多个数据库。例如如果一个操作即操作了0...
为什么ConcurrentHashMap的读操作不需要加锁? 我们知道,ConcurrentHashmap(1.8)这个并发集合框架是线程安全的,当你看到源码的get操作时,会发现get操作全程是没有加任何锁的,这也是这篇博文讨论的问题——为什么它不需要加锁呢?ConcurrentHashMap的简介我想有基础的同学知道在jdk1.7中是采用Segment + HashEntry + ReentrantLock的方式进行实现的,而1.8中放弃...
concurrently concurrently 最大的用途,使用在开启多个端口服务。这点在脚手架层面上,可以得到很好的应用,例如:开发时,一个端口起一个 server 实时渲染页面,另一个端口,起一个 server 来 mock 数据。要开两个终端命令。可以通过concurrently 一条命令搞定。但是我们别忘了 concurrently 有一最基本的功能,利用 nodejs 执行 npm script 的命令,这...