自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 类加载子系统

类加载子系统类加载机制概述1)加载(Loading)2)链接(linking)验证(Verify)准备(Prepare)解析(Resolve)3)初始化4)加载器的分类**虚拟机自带的加载器**:**用户自定义类加载器:**classerLoader5)双亲委派机制工作原理优势6)沙箱安全机制7)其他类加载机制概述**描述:**虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。懒加载:使用的时候才去进

2020-06-26 21:58:33 169

原创 浅谈决策树

决策树(decision tree)是一种基本的分类与回归方法。其主要优点是模型具有可读性,分类速度快。学习时利用训练数据,根据损失函数最小化的原则建立决策树。预测时,对新的数据利用决策树模型进行分类。决策树通常包括三个步骤:特征选择、决策树的生成、决策树的修剪 其中决策树的生成只考虑局部最优,决策树的修剪则考虑全局最优。决策树的思想来源主要来自于三个算法:ID3算法、C4.5算法以及CART...

2019-03-06 16:29:35 600

原创 朴素贝叶斯原理

最近在看机器学习方面的看法,写写博客增加一下自己的印象。朴素贝叶斯原理介绍后验概率最大化的含义极大似然估计学习与分类算法贝叶斯估计1、朴素贝叶斯原理介绍条件独立性假设等于是说用于分类的特征在类确定的条件下都是条件独立的。这一假设使朴素贝叶斯计算起来更加的简单。但有时会牺牲一定的分类准确率。在介绍贝叶斯之前有几个概念需要弄清楚。XXX:训练数据YYY:假设空间yiy...

2019-03-02 17:33:10 712

原创 HDU 5904(Square Distance)

问题描述 Alex有两个序列a1,a2,...,anaa_1,a_2,...,a_na​1​​,a​2​​,…,a​n​​和b1,b2,…,bmb​1​​,b​2​​,…,b​m​1 ​​ ,a ​2 ​​ ,…,a ​n ​​ 和b_1,b_2,…,b_mb ​1 ​​ ,b ​2 ​​ ,…,b ​m ​​ . 他想找到它们的最长公共递增子序列, 并且

2016-09-24 21:01:32 365

原创 最小表示法

如果一个字符串可以循环,最小表示法就可以将其字典序最小的排列方式表示出来。其算法的复杂度为O(N)的,而且原理与算法实现起来都比KMP简单。是一种很好的算法。算法实现主要是向后移动i、j。从i、j开始枚举k向后比较字符的大小。直到找到i或j的字符比较大则向后移动k+1位。直到枚举到k的大小等于字符串的长度结束比较。i、j较小的一个就是下标最小的字典序最小的排列方式。下面是为什么每次比较失败以后就向后

2016-09-08 21:57:10 664

原创 poj 1663 放苹果

题意: 把MM个同样的苹果放在NN个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用KK表示)5,1,15,1,1和1,5,11,5,1 是同一种分法。Input 第一行是测试数据的数目t(0<=t<=20)t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=101<=M,N<=10。Output 对输入的每组数据MM和NN,用一行输出相应的

2016-09-08 10:28:30 321

原创 CodeForces 456D Elections(字典树+dp)

题意:给nn个字符串。进行kk次游戏。每局开始,字符串为空串,然后两人轮流在末尾追加字符,保证新的字符串为集合中某字符串的前缀,不能操作者输,新一轮由上一句输的人先手。思路:在网上看的题解大多都是这种想法,刚开始看了好长时间,其实理解起来还是挺简单的,将全部的字符串插入以后,dfsdfs将树跑一遍,从深度较深的节点得到是必败点必败点,可控点,不可控点,向上回溯。最后回溯到头结点是就得到了先手的状态。

2016-09-04 15:39:33 359

原创 hdu 5044 Tree(树链剖分)

题意:给一个简单图,在图上进行n此操作,最后按顺序输出点权和边权的值。T组数据,每组数据第一行两个数n,m分别代表树的点数,操作的次数,接下来n-1行每行两个数表示一条边。接下来m行表示m次操作,每次操作有一一个字符串add1,或add2,接下来是三个数u,v,c。add1表示在修改点权u->v的路径上的点加c,add2表示修改边权u->v的路径上的边权加c。解题思路:知道题虽然是比较经典的树链剖分

2016-09-02 16:31:29 266

原创 树链剖分详解

最近一直在看熟练剖分,终于有点理解是怎么回事了,在网上看到这一篇博客还挺好的,就简单的改了改一些细节,树链剖分就是将一棵树按照一种规则分成若干条链,把每一条链看作是一个单位,用数据结构来维护这些链的值。“在一棵树上进行路径的修改、求极值、求和”乍一看只要线段树就能轻松解决,实际上,仅凭线段树是不能搞定它的。我们需要用到一种貌似高级的复杂算法——树链剖分。树链,就是树上的路径。剖分,就是把路径分类为重

2016-09-02 16:10:48 374

原创 hdu 5862(离线化+线段树+扫描线)

题意:解题思路:待更新中~~#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <cstdlib>#include <cctype>#include <string>#include <iostream>#include <vector>#include <map>#inc

2016-08-23 22:49:19 382

原创 hdu 5839(空间几何 网络选拔赛)

题意: 在三维空间给出若干个点,在这些点中选取四个点,组成四面体,满足这个四面体中至少有四条边是相等的。并且另两条不相等的边必须不相邻。解题思路: 就是找出两条边,将这两条边作为四面体的对边。枚举第一条边找第二条边。找到一个平面经过第一条边的中点,且与第一条边垂直,第二条直线肯定在次平面内。所以枚举第一条直线的两个点,并且找到上述的平面,再遍历所有的点,找出在此平面上的点。在这些点中任意找两

2016-08-15 11:06:07 450

原创 HDU 5155(dp)

问题描述: 一个盒子由n∗mn*m个格子组成,有一些格子里会有闪闪发光的宝石。 现在有求盒子从左边看过去,每一行都闪烁着光芒,从前面看过去,每一列也都闪烁着光芒。 问:盒子里的宝石有多少种分布情况。 答案有可能很大,所以输出答案对10000000071000000007取模。输入描述: 多组输入数据 每组数据一行,输入两个数nmn m表示盒子的大小,0≤n,m≤500≤n,m≤50输出描

2016-08-13 23:31:50 295

原创 HDU 5152 线段树+欧拉函数

题意: 本题是求对一个长为nn序列进行mm此操作。11、区间加,22、节点l—rl—r,xx值变为2x2^x,3、求l−−rl--r的和。解题思路: 对于操作二,利用公式 当x>=Phi(C)x >= Phi(C), AxA^x =A A ^ (x(x%Phi(C) + Phi(C))(modC)Phi(C)) (mod C) 对于23333332333333这个模数来说,求1818次欧拉函数

2016-08-13 16:30:53 377

原创 HDU 5813(贪心,构造,多校)

题目链接:HDU 5813题意:给一个有向图,nn个点,接下来nn个数表示与第i个点直接或间接相连的点的个数。解题思路:官方给出的题解说的很清楚,刚开始还以为是跟如论有关的东西,还是自己太天真了。直接贪心就好,好水的一道题,比赛时觉得跟图有关被吓到了。赛后才知道原来这么简单。 AC代码:#include <iostream>#include <stdio.h>#include <cmath>

2016-08-10 17:24:04 299

原创 HDU 5810(伯努利实验、多校7、规律)

题意: 有n个小球,m个箱子。把小球放到箱子里。问每个箱子里的小球个数的方差。解题思路: 比赛是想了好长时间也没想出来,感觉是到公式题,但怎么都找不出公式。跟官方题解想的一样但是E(x2)E(x^2)怎么都推不出来。后来还是强行模了几组数据找的规律,卡了好长时间。赛后了解到这就是一到伯努利实验的原形。每次试验的成功概率为1/m1/m,失败的概率为1−i/m1-i/m。进行nn次实验。直接按照伯努利的

2016-08-10 15:16:14 410

原创 HDU 5818 (多校 7) 模拟

题意:对栈的操作,有两个栈aa,bb然后接下来n组操作包括入栈,出栈,合并栈。合并栈按入栈的时间顺序进行排序。官方题解:比较简单巧妙的一个做法是引入一个新的栈CC,每次合并的时候就把AA和BB合并到CC上,然后把AA和BB都清空. pushpush还是按正常做,poppop注意当遇到要pop的栈为空时,因为题目保证不会对空栈进行pop操作,所以这时应直接改为对CC栈进行poppop操作. 这样做因为

2016-08-10 12:03:07 777

原创 hdu 5142 物理三分算法

题意: 在高为hh的位置以速度vv抛出一物体,求在最优角度抛出的最远水平距离。解题思路: 刚开始写题时想过直接求公式,但是后来放弃了,你懂得。解法是直接三分抛出去的角(0,π)(0,π)。求出极大解,但是要注意结束三分的条件刚开始我是小于10−410^-4跳出,但是精度不够,要把条件改为10−710^-7AC。AC代码:#include <iostream>#include <stdio.h>#

2016-08-08 22:16:31 309

原创 HDU 5139 Formula(数据离线处理)

题目大意: 给你一个数nn求f(n)f(n)的值, nn为11时:11 nn为22时:12∗21^2*2 nn为33时:13∗22∗31^3*2^2*3 nn为44时:14∗23∗32∗41^4*2^3*3^2*4 nn为55时:15∗24∗33∗42∗51^5*2^4*3^3*4^2*5解题思路: n的范围是10710^7,10510^5 次询问,提前预处理肯定会MLE,

2016-08-08 12:01:14 288

原创 HDU 5806 (dp)

问题描述: 在数学课上,NanoApe 心痒痒又玩起了数列。他在纸上随便写了一个长度为 nn 的数列,他又根据心情写下了一个数 mm。 他想知道这个数列中有多少个区间里的第 kk大的数不小于 mm,当然首先这个区间必须至少要有 kk 个数啦。输入描述 第一行为一个正整数 TT,表示数据组数。 每组数据的第一行为三个整数 nn , mm , kk 第二行为 nn 个整数AiAi,表示这个数列。

2016-08-06 22:41:21 378

原创 HDU 5794 A Simple Chess(多校,dp,容斥)

题意:一匹”马”在棋盘上(11,11)的位置,每次跳跃时横纵坐标都必须增大.棋盘上还有KK个障碍物(保证不在(11,11)处).求跳到(nn,mm)的方案数,对素数PP=110119110119取模.解题思路: 存障碍点的时候要进行筛选,从(00,000)点到(nn,mm)不经过的障碍点不存入,之后对点进行按照xx,yy进行,进行了这个预处理之后后面的dp就很简单了。主要是结合lucas定理,当lu

2016-08-06 22:02:13 354

原创 hdu 5802 (多校6) Windows 10(贪心,模拟)

题意:把p变成q;升的时候每次只能升1,降的时候如果前一次是升或者停,那么下一次降从1开始,否则为前一次的两倍题目思路:对于p>q的时候。考虑减法 如果减完p>q那就一定减,因为倍增,所以减一定比休息一下重置x要划算 如果减完p<=q,我们记录前面一共做的减法论数x,考虑每次减法后都是rest,然后当p#include <iostream>#include <stdio.h>#include

2016-08-06 10:10:37 348 1

原创 HDU 3037 (大数&LUCAS定理)

题目大意:求在n棵树上摘不超过m颗豆子的方案,结果对p取模。解题思路:题目可以转换成  x1+x2+……+xn=m 有多少组解,m在题中可以取0~m。利用插板法可以得出x1+x2+……+xn=m解的个数为C(n+m-1,m);则题目解的个数可以转换成求   sum=C(n+m-1,0)+C(n+m-1,1)+C(n+m-1,2)……+C(n+m-1,m)

2016-08-04 22:23:12 263

原创 HDU 5781 ATM Mechine( 多校5 DP&期望+记忆化搜索)

题意:Alice忘记了自己银行里存了多少钱,只记得在[0,k]之间。每次取钱如果余额足够就出钱,否则警告一次,警告超过w次就会把你抓起来,在不想被警察抓起来的前提下,Alice采取最优策略,求期望取钱多少次能知道自己存了多少钱。官方题解:思路分析:上面等式中左边的一部分是取的数k不超过真实余额的概率,右面部分是取的存款k超过真实余额的概率。后面的+1代表本次操作,所以期望应该+1。

2016-08-03 16:04:44 319

原创 HDU 5792 多校5 World is Exploding(树状数组,离散化,组合数学)

题意:多组输入,每组数据第一行n,代表数列中元素个数,接下来n个数。从这n个数中找出满足下列条件的a,b,c,d四个数求满足条件的个数。题目链接:思路分析:题目 就是让找一对逆序,与一对顺序,并且两对数不能有重复的元素。重复是指位置重复,并不是值一样。找出全部的逆序数,顺序数两个 数相乘再进行去重就得到答案代码实现:用树状数组来统计第i个位置左边小于它的个数

2016-08-03 09:35:23 327

原创 HDU 5102 The K-th Distance(队列模拟,数组模拟邻接表)

题意:T组数据,每组数据第一行两个数n,k。n表示点的个数,接下来n-1行每行两个数,表示两个点的连线,形成简单无环图。在这个图中找到任意两个点的距离有n*(n-1)/2个距离从小到大排序。取前k项的和。官方题解:把所有边(u,v) 以及(v,u)放入一个队列,队列每弹出一个元素(u,v),对于所有与u相邻的点w,如果w!=v,就把(w,u)入队。这样就能一个一个生成前K小的距离。

2016-08-01 22:42:17 270

原创 HDU 5778 (压缩范围枚举暴力跑素数表)

题意:给出一个数x,找出一个数y满足(y-x)的绝对值最小,并且分解y的质因数时,每个数刚好出现两次。求最小的y-x并输出。解题思路:因为x的范围是1e18所以直接暴力跑是不可能的。那就先把x开方数据缩小到1e9,这时z=sqrt(x)的质因数分解每个数只能出现一次,出现两次则不符合条件。让z对小于他的素数的平方取余若有一个为0,则不满足条件,因为z的范围是1e9,所以素数表范围到

2016-07-31 09:56:14 385

原创 HDU 5088 Revenge of Nim II(尼姆博弈,高斯消元)

题意:先介绍了尼姆博弈,尼姆博弈当给出的序列异或等0时先手输。现在为了让后手赢,在游戏开始前后手可以移除一些堆。必须整堆的移除,不能移除部分,并且不能把全部的堆移出去。问移除之后后手能否赢,可以输出“Yes”,否则输出“No”。解题思路:根据题目可以知道,当移除某些数之后剩下的数异或等0。利用高斯消元,将n个数ai作为行,每个数的二进制位作为列,这里可以构造出一个01矩阵进行高斯消元。

2016-07-30 16:20:12 286

原创 HDU 5087(DP 次最长子序列)

题意:对于给定的长度为n的序列,找出第二长的最长长度解题思路:与之前的求最长子序列有些不同。但是如果最长自序咧为ans,那么次长度只有ans-1,和ans两种情况。由于n的范围比较小[0,1000],所以可以用求最长子序列的N^2的算法来将找最长子串的中间信息存储下来,跟求最长子序列一样开一个数组将以当前数为结尾的子序列的最大长度。再另开一个数组记录以当前数为结尾的最长子序列的取法个数。

2016-07-30 11:24:41 340

原创 HDU 5753 Permutation Bo 排列组合& 期望 多校3

HDU 5753 排列组合题意:对于全排列h,h数组是一个1~n的数,只要对应的位置大于两端,相应的位置的c数组中的书就加进去。 思路:对小于三的数进行特判,把整个序列分为两种情况,中间的和两端的。对中间的任一种情况进行计算就可以。对中间的情况必须放大于2的数才能有满足条件的值,当中间放的值为i时比i小的值有i-1个从i-1个数中选出两个不同的数进行全排列有(i-1)*(i-2

2016-07-27 17:28:18 369

原创 HDU 5754 Life Winner Bo(多校3 各种博弈)

这道题的四中走法相当于四种博弈,其实分开来看并不是很难,只是这道题把他们融合到一块了。很具有代表性。

2016-07-27 17:08:02 324

原创 HDU 5750 快速筛素数法打表

题目大意:x能整除n,x就是n的positive proper divisor,但n本身不算,给你两个数n和d,找出所有小于n的数中,最大positive proper divisor是d个数,T组测试数据。解题思路:很明显对于每个数x,找出其最小素因数m,如果x/m等于d,那么x的最大positive proper divisor就是d,如果这样枚举小于n的每一个数,总共需要 T n √

2016-07-25 10:59:20 1476

原创 HDU 5067 动态规划---旅行商(tsp)问题

用状压dp解决旅行商问题,也可以直接DFS但时间开销比较大

2016-07-23 11:32:47 3334

原创 hdu 5726 (线段树 GCD RMQ)多校第一场1004

题意:T组测试数据,每组数据给你n个数,m次询问每次询问包含两个数字l,r。每次查询[l,r]区间内的数的最大公约数。并输出整个序列中最大公约数与[l,r]最大公约数相等的组数。解题方法:可以通过线段树来记录每段区间内的最大公约数,但是后来统计与[l,r]最大公约数相等的个数时,老是超时。最后也还是在网上查的代码。但是后来看了也有用RMQ来解题的,后来想了想,RMQ比线段树查询起来可能效率

2016-07-19 23:03:07 353

原创 HDU 5059 Help him(字符串 筛选数字 模拟)(atoi sprintf 函数)

两种方法:1、字符串直接模拟,2、运用atoll(),sprintf()函数

2016-07-19 09:09:44 267

原创 HDU 5720 Wool(排序 遍历)

先排序 后遍历缩小范围

2016-07-18 21:45:59 300

原创 hdu 5719 Arrange (dp 递推 排列组合)

找出各种不可能的条件,注意不要漏掉任何一种情况。

2016-07-18 15:11:28 472

原创 int,long,long long类型的数值范围

int ,long ,long long 等各种数据类型的范围

2016-07-18 09:15:23 163569

原创 HDU 5056 Boring count(窗口滑动法或尺缩法)

由于字符串的区分只与字符串的起点和终点有关,所以用到了窗口滑动的思想。

2016-07-17 14:33:21 338

原创 HDU 4987(概率dp)

Little Pony and DiceTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 489    Accepted Submission(s): 139Problem DescriptionTwiligh

2016-07-10 09:00:46 426

原创 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-07-09 16:24:26 203

空空如也

空空如也

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

TA关注的人

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