自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 资源 (15)
  • 收藏
  • 关注

原创 Volatile理解

Volatile理解Volatile 通过加入内存屏障和禁止重排序优化来实现1、对volatile变量写操作时,会在写操作后加入一条store屏障命令,将本地内存中的共享变量值刷新到主内存2、对volatile变量读操作时,会在读操作前加入一条load屏障命令,从主内存中读取共享变量示意图:应用场景1、错误场景:使用volatile 修饰一个计数变量如 privatvolatile static int count = 0; 企图通过volatile来实现count+..

2021-05-09 22:27:29 125

原创 Synchronized 理解

Synchronized 理解JMM关于Synchronized的两条规定:1、线程解锁前,必须把共享变量的最新值刷新到主内存;2、线程加锁时,将清空工作内存重共享变量的值,从而使用共享变量时需要从主内存重重新读取最新的值。注意:加锁与解锁是同一把锁。如何理解?要么是锁的同一个对象,要么是锁的同一个类,接着往下看锁对象锁对象有以下两种种情况:Synchronized修饰普通方法,Synchronized作用于方法块test1 和 test2 锁的对象是this,他们是互斥.

2021-05-09 21:39:57 100

原创 Java Atomic总结

Java Atomic总结一、atomic使用concurrent包下的atomic提供我们这么一种轻量级的数据同步的选择。package com.example.concurrent.example.atomiccount;import com.example.concurrent.annoations.NotThreadSafe;import com.example.concurrent.annoations.ThreadSafe;import lombok.extern.s...

2021-05-09 16:04:34 179 1

原创 LeetCode72. 编辑距离

题意:给定两个单词word1 和word2,计算出将word1转换成word2 所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符思路:dp[i][j]:word1的前i个字母转换成word2的前j个的最少步骤因此,转移方程:dp[i][j] = dp[i-1][j-1] word1[i] == word2...

2019-09-10 22:09:44 99

原创 LRU java实现

主要实现此算法:使用链表+hashMap实现如有bug,望指正import java.util.HashMap;import java.util.LinkedList;public class LRUCache { // 链表节点 class Node { Node pre; Node next; int key,...

2019-09-05 15:01:31 154

原创 Java 继承和多态

class Father { public String notStaticVar = "fa_no_static_var"; public static String staticVar = "fa_static_var"; public static void staticFun() { System.out.println("fa_static_method"); } pub...

2019-08-26 14:09:24 107

原创 java try-catch-finally 写返回值问题

首先,明确一点:finally 处理使用System.exit(0)强制关闭线程不会执行外,都会执行。(当然,在try{}块之前出现了其他异常或错误不会执行此finally)其次,如果try-catch或者catch-finally都有return,那么finally块中return语句会覆盖别处的return语句。这是因为方法内部的局部变量和对象的引用(注意这里,对象的数据在堆内存中,其引用...

2019-08-24 22:37:16 249

原创 二叉树的前序、中序、后序遍历非递归实现

思路: 借助栈来实现前序遍历:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */// 前序...

2019-04-20 11:03:39 262

原创 MySql Key和Index 的精简总结

一、综述1.索引(Index)         没有索引,MySQL不得不首先以第一条记录开始并然后读完整个表直到它找出相关的行。所有的MySQL索引(PRIMARY、UNIQUE和INDEX)在B树中存储。字符串是自动地压缩前缀和结尾空间。         索引用于:         快速找出匹配一个WHERE子句的行;          当执行联结时,从其他表检索行;   ...

2018-12-20 15:17:13 273

原创 struts2 基本执行过程

 先看两个配置文件:web.xml 和 struts.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLoca...

2018-09-17 21:31:12 161

原创 linux & windows 编译c/c++文件

结合:https://blog.csdn.net/pjy19960808/article/details/50951227  https://blog.csdn.net/ytx2014214081/article/details/78262196例如:有hello.c hello.cpp hello.h文件在一个目录一、linux指令  一步式指令:gcc hello.c -o ...

2018-09-11 11:32:32 843

原创 Mysql事务

一、Mysql事务事务:事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部不成功。1、Mysql中的事务a、mysql引擎是支持事务的b、mysql默认自动提交事务。每条语句都处在单独的事务中。c、手动控制事务开启事务:start transaction 或 begin提交事务:commit回滚事务:rollback2、JDBC如何控制事务...

2018-07-28 17:13:06 188

原创 排序算法总结

总结一下所学的排序算法。一、冒泡排序从小到大排序,思想:遍历数组,下一个元素比当前元素大就交换,这样经过一轮后,把最大元素排到了最后,经过n-1轮,就把n-1大的元素排到了数组最后,最小值默认就排到了第一个位置。时间复杂度:最坏O(n^2),最好是O(n)(可以用一个标记,第一趟如果没交换,说明数组是有序的),比较次数与原始数组无关。/** * @Title: Bub...

2018-07-16 15:37:39 291

原创 java 方法参数传递,值传递与引用传递

一:值传递    使用该方式传递的参数,参数原始的值不发生变化    适用范围:八种基本数据类型(char,byte,boolean,short,int,long,double,float)和String    *String也是传递的地址,但是String对象一旦被改变,就是生成新的对象二:引用传递     使用该方式传递的参数,在方法内部修改参数的值时,参数原始的值发生改变     适用范围:...

2018-07-04 15:36:47 217

原创 java Map/List/Set 嵌套使用的一点心得

public static void main(String[] args) { // TODO Auto-generated method stub Set<Integer> set=new HashSet<Integer>(); List<Set<Integer>>list=new ArrayList<Set<Intege...

2018-06-20 15:48:56 2613

原创 c/c++ 中的char* ,const char* 和 char* const 总结

举个例子:例1:char* str="abc";//错误写法const char* str="abc";//正确原因:这里字符串“abc”是字符串常量,保存在全局const内存区例2:char a[10]="aaa";char* str=a;//正确例3:const char* str="abc";*(str+1)='d';//错误str="cde";//正确总结:const char* str;...

2018-05-30 15:51:06 21461 5

原创 windows+apache2.4+mysql+php5.6

下载好apahche2.4,php5.6,mysql5.6后一:安装apache将下载好的压缩包解压到c盘apache24下,c:\apache24用管理员身份打开cmd命令窗口,进入到c:\apache24\bin  输入httpd.exe -k install安装  输入httpd.exe -k start启动程序在浏览器输入127.0.0.1 如果出现It's Work! 那

2017-09-13 20:55:19 654

原创 linux 常见的命名

(1)/usr/local/php/sbin/php-fpm 启动php服务 (2)/usr/local/nginx-1.5.1/sbin/nginx -t   /usr/local/nginx-1.5.1/sbin/nginx -s reload  nginx重启(3) crontab -e 定时执行   */1 * * * * curl -o /usr/lo

2017-05-21 21:47:55 233

原创 liunx centos 搭建配置apache2.4+php5.6.30

搞了一天,百度了各种文档,终于安装好了。之前用nginx1.8 + php5.6 开发完了才发现有问题。我的服务器用于微信开发,出现了这么一个问题:推送news消息时,一次推送,推送了2条消息,原因是thinkphp中的一个操作调用了两次。之后,各种修改,甚至用get提交到操作的方式 全在前端页面改成了post提交,但是,后来用微信自带的浏览器推送消息时,又出现问题了。我知道不是代码的问题,是ph

2017-05-21 21:41:42 4280

转载 bootstrap详解-栅格布局

1、栅格系统(布局)Bootstrap内置了一套响应式、移动设备优先的流式栅格系统,随着屏幕设备或视口(viewport)尺寸的增加,系统会自动分为最多12列。我在这里是把Bootstrap中的栅格系统叫做布局。它就是通过一系列的行(row)与列(column)的组合创建页面布局,然后你的内容就可以放入到你创建好的布局当中。下面就简单介绍一下Bootstrap栅格系统的工作原理:

2017-04-11 20:07:32 17345

原创 JAVA 大数

点击打开链接题意:取石子游戏,两堆石子,两人轮流取,每个人可以从一堆或两堆中取任意相同多个石子,每次至少取一个,最后取完石子的胜。(经典的威佐夫博弈)给出两堆石子数量(1解:威佐夫博弈论:当前石子出现奇异局势,先手输,否则后手输。奇异局势(ak,bk)表示,(akak=[k*(1+sqrt(5))/2] ('[ ]',向下取整),bk=ak+k  (k=0,1,2....)

2016-11-06 20:01:58 249

原创 HDU 5115 Dire Wolf (区间DP) 2014 ACM/ICPC 北京站

题意:狼在一行,每只狼有一个伤害A,还有buff加成伤害B,即每只狼会给相邻的狼加伤害,如果杀死中间的只狼,它两边的狼就相邻了。杀死一只狼的时候,会受到这只狼的伤害A和这只狼两边的狼的伤害B的和。求杀掉一排狼的最小代价。解法:设dp[i][j]为消灭i到j只狼的代价,枚举k作为最后一只被杀死的狼,此时会受到a[k]和b[i-1] b[j+1]的伤害 取最小的即可可列出转移方程:dp[i][

2016-09-27 21:08:14 305

原创 POJ 2486 Apple Tree (树形dp)

题意:有一颗苹果树,n个点,n-1条边,每个节点有val[i]个苹果,从根开始走,问最多走k步,能摘得的苹果最大是多少。分析:树形dp+01背包。         ① dp[i][j][0]: 对于第i节点,它走j不回来的状态能得到最大苹果。 ② dp[i][j][1]: 对于第i节点,它走j回来的状态能得到最大苹果。对于①它可以从u点的其他儿子节点回来后,再走v点不回来,只需多花

2016-08-09 15:37:38 304

原创 Codeforces Round #365 (Div. 2) D Mishka and Interesting sum (离线树状数组)

题目链接题意:求区间内出现偶数次的数的异或值。分析:和求一个区间内不同元素个数做法一样。树状数组存的是不同元素的前缀异或和。用map标记数a[i]最近的出现的下标。其实就是先求出这个区间的(异或和),然后异或上这个区间不同数的异或和(即由树状数组求出来的)。#include #include #include #include #include #include #incl

2016-08-06 16:37:53 351

原创 Light OJ 1188 Fast Queries (树状数组离线)

题目链接:http://lightoj.com/volume_showproblem.php?problem=1188题意:查找一个区间内不同数字的个数。分析:离线做法。先按r排序,标记每个数前面出现的位置。处理到位置i时,如果a[i]在前面出现过,那么把前面那个位置在树状数组中清0。然后标记这个数的新位置。然后就是求区间问题了。#include #inc

2016-08-06 15:09:14 384

原创 HDU 1498 50 years, 50 colors

题意:有50种颜色的气球。放在n*n的矩阵中。有k次操作,每次可以清除一列中相同颜色的气球或一行中相同颜色的气球。问哪些气球不能在k操作后被清除。如果没有输出-1。分析:又是行列匹配的问题。我们可以枚举出现过的每种颜色,建二分图。是不是就转化为求最少的行和列把这种颜色覆盖掉。即最小点覆盖问题。等于二分匹配。#include#include#include#include#inc

2016-08-04 16:19:37 259

原创 HDU 1350 Taxi Cab Scheme

题意:给出了N趟要去载人的时刻表,有时间,初始地址(a,b),目标地址(c,d),载人花费的时间为|a-c|+|b-d|。如果一辆出租车载完当前的一趟,如果他可以从当前位置赶到某趟的其实位置,并在出发时间前1分钟,那么这辆车就可以载他。问出租车公司至少要派出多少辆车才能完成这个任务。解:由于时间是不能有交的。一辆车按照一个最优的策略,载完这趟就去下趟,才能使得派出的车辆最少。这就和最小路径覆盖

2016-08-04 15:55:59 233

原创 HDU 1281 棋盘游戏

中问题,就不说题意了。解:典型的行列匹配问题。“车”放在同一行或列肯定不行,那么我们抽象出x集合为行号,y集合为列号,由于X集合中顶点不能连边,Y集合中顶点不能连边。只有X集合与Y集合才能连边,那就是二分图咯。。。我们把能放棋的点(i,j)连条边(i->j)。因为对于某一行,它有m列,但是这一行他最多放一个棋子,所以求得最大二分匹配就是能放的最多棋子的数目。第二个问是求哪些是关键点

2016-08-04 15:22:07 235

原创 HDU 1068 Girls and Boys

题意:给出n组同学间的关系,找出一个点集,满足这个集合任意两个同学都没有关系。显然是最大独立集问题。分析:由于没有区分男女,我们并出清楚哪些人在X集合,哪些人在Y集合。我们把这N个人都放入X集合,同时也把他们放入Y集合。这就相当于合并了两个二分图。第一个二分图:女生在X集合,男生在Y集合。第二个二分图:男生在X集合,女生在Y集合。我们把这个大的二分图求二分最大匹配。根据:最大独立集=|X|

2016-08-04 15:03:52 251

原创 HDU 3440 House Man

题意:在水平坐标上有N个不同高度的房子,有个人他练习跳跃,他从最矮到高跳跃房子,他每次跳跃的水平距离不超过d。他可以水平移动每座房子,但每座房子不能在一个点,房子坐落的点都是正数点。问最矮的房子离最高的房子最大距离。解:差分约束系统,由于人只能从矮的房子跳到高的房子,并且水平跳跃距离最大为的,设此时坐标为Xi,下次跳跃点坐标为Xj的坐标,|Xi-Xj|由于存在绝对值,不等式就变复杂了,

2016-08-04 14:44:31 201

原创 POJ 1386 Play on Words

题意:给N个单词,问能不能把所有的单词串起来。模型就是欧拉回路或者欧拉路径。解:只有26中字母,每种字母作为一个点。每个单词的首字母和尾字母连条单向边。如果是欧拉回路,那么所有点的入度等于出度。如果是欧拉路径,那么只有两个点的入度不等于出度,其一是起始点,出度比入度大1,另一个是结束点,入度比出度大1显然,如果给的图由多个连通图构成,显然不能(并查集维护)。接下来就只需判断是欧

2016-08-04 14:24:36 213

原创 HDU 3018 Ant Trip

题意:每条边过且只过一次,问至少要画几笔才能全部边都经过,孤立的点忽视。解:先用并查集把在一个连通图上的顶点并在一起。对于每个联通图,度为奇数点个数为sum,那么需要sum/2笔画。然后把这个连通图标记。其他连通图所有点的度为偶数,只需一笔画。标记此连通图。#include #include #include #include #include #include #

2016-08-04 14:13:32 249

原创 HDU 2647 Reward

题意:发奖金,最低是888,有n个人,m条边(u,v)。u的奖金必须大于v。问最少发多少奖金。解:我们建反向边(V,U),即(V比U的奖金少),记录入度。从入度为0的点开始top排序就行了。按照bfs的写法,每次top到下一层,只需要在这层的基础上奖金+1就行了。输出-1的情况,显然是中间出现了环,我们只需要记录,度能为0的个数。为n就输出解,否则为-1.#include #includ

2016-08-04 13:47:07 194

原创 POJ 2728 Desert King

题意:最优比例生成树。即一条边有两个权值wi,ui,求一棵∑wi/∑ui 最小(最大)的生成树。输出这个最优比例。解:设答案为ans=∑wi/∑ui ,移相得出∑wi-∑ui*ans==0。但是答案未知,所以,我们就能枚举答案。每次重新建图,我们可以得到每条边新的权值wi-ui*ans,然后求最小生成树。如果最小生成树为0,那么答案就得到了。怎么枚举答案呢?二分答案。暴力枚举答

2016-08-04 13:36:03 209

原创 HDU 3339 In Action

题意:有n个点,每个点有个能量值,0点为基地,现在要从0点派出坦克取占领这些基地,一个坦克只能占领一个地方,每辆坦克单位距离耗油1个单位。要求花费最小单位的油,占领的地方的能量值大于所有地方能量值和的一半。解:先从0点为起点跑一次最短路记录dis,然后就是0,1,背包啦。就是说,如果要占领i点,那么要花费dis[i],得到val[i]的能量值。背包大小取能量值总和,最后,取找到大于背包一半的最

2016-08-04 13:12:55 238

原创 POJ 3522 Slim Span

题意:就是求一个生成树,最大边-最小边 最小。这道题挺简单的,居然没几个人做。解:先对边排序,枚举枚举从哪条边开始,求最小生成树,如果有n-1条边构成生成树

2016-08-04 13:02:40 350

原创 HDU 4725 The Shortest Path in Nya Graph

题意:有n个点,他们属于(1~n)中的某些层,相邻层的费用为c,并且只能相邻层才能相互到达,意思是如果这层没有点,此层的上层的点就不能到达此层的下层点,有m条额外的双向边(u,v)。问(1->n)最短的距离。分析:这道题重在建图。首先应该想到,把层作为一个点(我们用(n-2*n)的点表示层),属于此层的点与它的距离为0,层与层距离为c,额外边直接加就行。建完这个图,我们会发现,在同一层的距

2016-08-04 11:38:28 207

原创 CodeForces 46D Parking Lot (线段树区间合并)

题意:长为len的停车场,一辆车要停下,则必须车尾留b长度的空间且车头与前面的车保持f长度。有n次操作:1,长为val 的车要寻找车位停下,若能停下输出最小的停车点下标,否则输出-1                    2,第val辆车开走了。解:显然是线段树的区间合并。这里有个小技巧,就是树的范围是(-b,len+f-1).这里就保证了第一辆车停在0点,不用特判边界条件。为什么

2016-07-25 22:54:31 280

原创 HDU 5723 Abandoned country (多校1)

题意:先求最小生成树,然后问你在这个最小生成树中任选两个点,问这两个点之间距离的期望。期望:2*(任意两点之间的距离和)/(n*(n-1))分析:现在关键是求任意两点之间的距离和。我们可以考虑,最小生成树的每一条边对其的贡献,即:u->vv的子节点为cnt个(包括它),那么u即u之上的点数为n-cnt。那么根据排列组合,这条边会用到cnt*(n-cnt)次。dfs一次就可以了。

2016-07-23 20:14:33 270

原创 Codeforces Round #364 (Div. 2)E.Connecting Universities

题意:一棵树有n个点,边长都为1,在这n个点中有2*k个大学,这些大学不重复。现在要给这些大学两两牵网线,问需要网线的最大长度。分析:考虑每条边对答案的贡献,每条边对答案的贡献就是他的子树上学校的点的数目和剩下的学校的数目的较小值。具体做法就是,一次dfs,记录下此点的子节点中有多少个学校(包括它自身),那么与它父亲节点相连的边的贡献为min(cnt[id],2*k-cnt[id])(cn...

2016-07-23 20:01:06 288

西电人工智能课件

西电人工智能课件ppt ppt

2018-10-13

西电工程优化课件

西电工程优化课件 王宇平讲解的

2018-10-13

组合数学习题答案

西电组合数学讲义 word文档 姜建国版

2018-10-13

西电组合数学讲义 word文档

西电组合数学讲义 word文档

2018-10-13

hibernate官方文档+chm用户手册+其他中文文档

hibernate官方文档+chm用户手册+其他中文文档。包含3.2.1chm , 3.5.6-final.chm ,官方使用文档等

2018-09-15

西电-面向对象课件(褚华老师所著)

西电-面向对象课件(褚华老师所著),经典讲义,值得拥有

2018-08-14

数据结构与算法经典问题解析-Java语言描述

数据结构与算法经典问题解析-Java语言描述,扫描文档,经典好书值得拥有

2018-08-14

Head First Java(中文版)

Head First Java(中文版) 经典书籍,pdf扫描经典书籍,欢迎下载欢迎下载

2018-08-14

统计学习方法,经典书籍,pdf扫描

统计学习方法 经典书籍,pdf扫描经典书籍,欢迎下载欢迎下载

2018-08-14

SMO-MKL(基于SMO的多核学习算法)

SMO-MKL(基于SMO的多核学习算法),内有可执行程序以及源代码,欢迎下载

2018-08-13

MRMR(最小冗余最大相关)算法

MRMR(最小冗余最大相关)算法以及可执行文件,欢迎下载!!!

2018-08-13

commons-dbutils-1.4 bin+src

commons-dbutils-1.4 jar包和源码文件,查看源码非常方便,欢迎下载

2018-08-13

taglibs所需的jar包

javaEE中的jsp开发,本人一般直接导入这套包就可以使用JSP 的taglib标签啦

2018-08-13

Pathsim dataset

pathsim的数据集,欢迎下载欢迎下载欢迎下载欢迎下载欢迎下载欢迎下载欢迎下载

2018-05-01

你没有的food_info.csv文件

最近在学习python的pandas用,视频是麦子学院人工智能的课程

2018-03-29

空空如也

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

TA关注的人

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