自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Chook_lxk的博客

你前程有在,但须澄心猛省,不可自甘堕落。

  • 博客(179)
  • 收藏
  • 关注

原创 [转]二十多岁的你,迷茫又着急

献给我们这一代焦躁不安困惑迷茫的年轻人,共勉!!20多岁的你,迷茫又着急。 你想要房子想要汽车, 你想要旅行想要享受生活。 你那么年轻却窥觑整个世界, 你那么浮躁却想要看透生活。 你不断催促自己赶快成长,却沉不下心来安静的读一篇文章; 你一次次吹响前进的号角,却总是倒在离出发不远的地方。成长,真有你想象的那样迫切? 一、别急,千万别急 上周在南京出差,深夜拖着疲惫 去跟

2018-01-31 10:50:43 11153 5

原创 3xian之所在【转】

最后一天,漫天飘起了雪花,假装欢送我离去。这次WF之战不太顺利,早期的C题大概花了1秒钟构思,然而由于输出格式多了一个空格直到两个半小时才逃脱Wrong Answer的纠缠。还好lynncui在期间独挡一面过掉D。最终成绩不好,然而没有遗憾,从不遗憾。相比之下,来自全球的队伍让我看到了很强大的实力,每一道题都有人过,包括SJTU欺骗性提交的H都被人干掉了。身为地球人我感到自豪。

2017-05-29 20:08:23 2085

原创 我们这一代人的困惑 --转自于宙TEDx大会上的演讲

于宙:我们这一代人的困惑导读:本文是于宙在TEDx大会上的演讲,这篇文章有点长,不过非常值得你花20分钟把它看完。本周如果只能推荐一篇文章,那么强烈建议你读读这一篇,“一个有故事的大叔说的实在话”。以下是演讲全文:大家下午好,很荣幸能够参加本次TEDx大会,非常感谢东北财经大学TED团队和华臣影城为我们提供这样一个交流的机会。自我介绍

2017-05-20 18:47:27 2129 2

转载 图论500题

=============================以下是最小生成树+并查集======================================【HDU】1213 How Many Tables 基础并查集★1272 小希的迷宫 基础并查集★1325&&poj1308 Is It A Tree? 基础并查集★1856 More is better

2017-04-14 20:00:01 810

原创 后端开发岗面试题

19年秋招整理的笔记,尘封了许久…当时整理也花了挺多的心思。双手奉上,给大家参考。希望大家都能成为offer收割机!!! 多线程知识点1. 进程和线程的区别?子进程和父进程之间有不同的代码和数据空间,多个线程之间共享数据空间。* 一个进程包含多个线程* 资源分配给进程,有多个线程共享资源* 进程是程序执行的最小单位* 进程由于和相互独立,所以通信机制相对复杂,而线程有共享数据块,通信相对方便。2. 不同进程之间怎么实现通信?*.

2021-08-05 00:52:34 4206 2

原创 数据挖掘 -- CART决策树算法

1. 算法原理CART算法: 为二叉决策树, 能够同时处理离散属性和连续属性,计算所有属性的Gini值,根据最大Gini值进行分裂生成决策树。(离散属性可以用二进制枚举分成两部分, 连续值根据值进行排序后遍历的时候同时更新类别判断值的状态,复杂度降到o(n))2. 代码实现Node.javapackage com.clxk1997.model;/** * @Description 决...

2019-05-08 17:27:28 767 1

原创 数据挖掘 -- C4.5决策树算法

1. 算法原理C4.5算法: 首先根据训练集求出各属性的信息熵info, 然后求出类别信息商infod, infod - info[i]得到每个属性的信息增益gain, 然后计算每个属性的信息分裂度h, gain[i] / h[i]得到属性信息增益率。递归选择信息增益率最高的属性,按照该属性对数据集进行分裂,判断分裂之后的数据集类别是否为’纯’的,如果是则将当前分裂属性作为叶节点,如果不是继续递...

2019-04-23 11:29:41 1089

原创 数据挖掘 -- FP-Tree关联规则算法

1. 算法原理FP-Tree相对于Apriori算法,减少了I/O的次数,原理是先找到原数据的频繁1项集,即项头表。得到后按照项头表的sup值给初始表排序。并且创建树形结构,每个节点存节点名称和出现次数。将初始表迭代放入树中,建树过程完成。挖掘过程是倒序遍历项头表,对于每个s,寻找s在树中到根的路径,组合其余分支的s, 父节点的sup值为所有s节点的sup值之和。得到频繁项集。最终求出最大频繁项...

2019-04-18 09:45:46 1206

原创 数据挖掘 -- Apriori关联规则算法

1. 算法原理Apriori关联规则算法的目的就是找出所有的频繁项集,所以需要定义一个评估标准找出频繁项集,即最小支持度。 首先从原始数据集中找出出现的所有项,对应数据集确定候选1项集,根据候选一项集每项在原始项集中的出现次数计算每一项的sup值。比较sup值 / 原始数据集数 的值与最小支持度,小于则舍去,计算出频繁一项集,然后对频繁一项集两项之间求补集,并按照一项集中求sup的方法求取候选二...

2019-04-15 16:21:32 824 1

原创 Java学习笔记 -- 序列化与反序列化(Protocol buff 与 Java序列化协议的比较)

1. 什么是序列化与反序列化?序列化就是将代码中的对象的某一个状态转化成字节数组的过程,也就是转化成二进制文件的过程。反序列化与之相反。2. 为什么要进行序列化?在将对象存储在文件中或者通过网络进行传输的时候,对象是不能直接存储和传输的,所以要将它序列化为对应的二进制代码。3. 实现序列化的常用方式有哪些?使用Java的序列化协议(实现Serializable接口)使用Goo...

2019-04-13 17:54:31 782

原创 Mina学习 -- 自定义协议包的传输

Protocolmina实战Demo – c/s自定义协议传输Github项目源码为什么要进行自定义协议传输?因为传输过程往往不是一个字符串就可以传输全部信息,并且应用程序和网络通信之间存在对象与二进制之间的转换关系。所以需要结合业务编写自定义协议包进行传输。编写自定义协议的基本步骤通过mina文档可以看到,要实现自定义协议传输需要实现ProtocolCodecFactory接口,而P...

2019-04-11 15:10:30 824

原创 Java学习笔记 -- IO&NIO&AIO学习

1. BIO、NIO、AIO的区别?BIO的特点:面向流、阻塞IO面向流的IO只能一个字节一个字节读取,通过输入流产生一个字节数据,输出流消费一个字节数据,字节处理速度缓慢。并且在调用read()和write()时线程阻塞,直到有数据被读取或全部数据被写入。阻塞期间不能进行任何其他操作。NIO的特点:面向缓冲区、非阻塞IO、同步缓冲区(Buffer): 除boolean外,其余每个基本类型...

2019-04-09 21:34:58 292

原创 Bitmap高效缓存(二) LruCache类实现缓存图片到内存

上一节通过使用BitmapFactory的Options类进行图片的压缩来实现图片加载优化。但是同一资源如果要进行频繁的访问,显然每一次都从网络上下载资源显然是不合理的,所以要用到缓存机制。将网络资源下载后放到本地或内存,之后就可以直接获取本地资源而不用下载资源。方法二 LruCache类实现缓存图片到内存LRU算法是近期最少使用算法,普遍应用在操作系统的内存管理上。当存储空间满了之后,它会删...

2018-12-28 00:34:42 309

原创 Bitmap高效缓存(一) 利用BitmapFactory的Options类压缩位图

安卓开发中,加载图片是一件非常费时费力的事,尤其是对于ListView这种需要加载大量图片并且存活时间短的对象来说,如果不用一些高效加载的方法,对内存的占用是不可估量的,并且很容易出现OOM异常。在对网络图片进行加载时,如果每次都从网络中下载原图资源,不仅花费大量的流量,而且很可能会造成图片加载不及时的现象,影响用户的体验。所以对图片加载的优化是必需的。最近刚开始接触Android开发,在做一个...

2018-12-27 22:38:13 940

原创 添加Android6.0动态权限获取的BaseActivity封装

说明Android6.0新特性中增加了对危险权限的动态获取。如果SDK>=23的安卓系统在对危险权限操作时没有进行权限动态获取,系统将停止运行。对任意一项危险权限的动态获取都包含权限的检查、权限获取及权限返回响应三部分,如果不进行封装,会导致代码冗余严重,不方便使用。所以可以通过对Activity进行封装,增加对权限的动态获取即可。危险权限封装类代码import android...

2018-12-27 18:35:03 581

原创 保持愤怒.

你前程有在,但须澄心猛省,不可自甘堕落。现在已经是大学生活的第三年了,两年的大学生活让我变的麻木与懒惰。虽然还不断的计划着完成一个个目标,但是和大一大二相比,却少了很多冲劲。曾经因为AC一道题之后欢呼,也因为省赛颁奖仪式上老师说的那些话激动落泪。曾经自己抱负满满,不甘落后与失败,而现在这些几乎都消失殆尽了。现在有时候会后悔,浪费的时间太多,而剩下的时间太少。我希望能找回那...

2018-11-03 17:31:34 587

原创 AS被坑过的那些事...(持续更新)

最近刚开始接触Android开发,开始用的Eclipse,因为已经被Google遗弃了,各种不方便,之后下载了Google的亲儿子…Android Studio。在使用的过程中,也存在着这样那样的问题。所以在这里整理一下,希望我踩过的坑可以帮到你们。1.xml没有代码提示了,并且显示Unknown attribute…解决办法:试过各种的解决方案,关闭节电模式,删除imi文件,初始化AS都...

2018-10-20 10:29:04 219

原创 HDU - 4080 Stammering Aliens(字符串hash + 二分)

点击打开题目链接题目大意:给出一个m和一个字符串s,寻找s的最长子串满足:该子串在s中出现不小于m次。如果有多个子串满足,选择最右侧开始的子串。要求输出子串的出现次数和最右侧一个子串的出现位置。思路:容易想到用BKDR哈希函数和二分子串长度来做。 WA了两次,第一次solved函数里ans的初始值设置错了,不应该设置为0,改成-1;第二次二分结果后不应该直接输出t,因为t有-...

2018-07-26 19:49:25 840

原创 HDU - 4821 String(字符串hash+ map判重)

点击打开题目链接题目大意:给出两个整数M和L及一个字符串s,找到s的子串使得满足: 1.子串长度为L*M; 2.子串可以分成M个小子串,每个长度L,且M个子串互不相同; 求满足条件的s的子串的数量。思路:基本思路是先用BKDRhash函数处理字符串。然后字符串从后往前遍历求解hash值,利用map判重的特点,存储子串中每个小子串的hash值,如果等于M则ans++。然后思考怎...

2018-07-26 17:51:34 337

原创 UVA - 1221/HDU - 2413/POJ - 3343 Against Mammoths(二分+二分图匹配)

今天翻看了一下以前写的博客,从最开始第一次集训去年的4月1号开始写,到现在已经过去一年多时间,以前写的博客,现在看来虽然题目很水(虽然现在也很水=.=),但却是看到一个新的知识点就饶有兴趣地写出来的。而现在却缺了当时的那点魄力。大二已经结束了,大三下学期就要复习考研了,还有上学期一学期的时间,时间已经不那么充裕,还有好多知识点没有学到,但这条路是正确的。脚踏实地,学下去,。初心不改。题目...

2018-07-25 20:16:11 265

原创 HDU - 2819 Swap(二分图匹配)

点击打开题目链接题目大意:给一个N*N的01矩阵,可以任意交换两行或者两列,使得对角线上的数字全是1。问交换方法。思路:如果交换可以获得最终解,那么只交换行或者列也可以得到最终解。首先构造二分图,如果g[i][j] = 1,那么就可以加一条i->j的边,即第j列可以与第i列交换使得g[i][i] = 1。如果最大匹配为n,就可以通过交换使得所有的i与j相等,从而获得结果。...

2018-07-24 11:20:05 312

原创 博弈(四) 斐波那契博弈(Fibonacci Nim)

斐波那契博弈(Fibonacci Nim)有一堆n个物品,两个人轮流拿,拿到最后一个的人获胜。拿的规则如下: 1.每个人最少拿一个,第一次先手不能一次全拿完。 2.每次最多可拿对手上一次拿的两倍。 结论: 先手胜利当且仅当物品数n不为Fibonacci数。 证明: 首先需要了解Fibonacci的性质:(2, 3, 5, 8, 13, 21, 34, 55··· ···) 1.f...

2018-07-20 17:28:31 940

原创 博弈(三) 尼姆博弈(Nimm Game)

尼姆博弈(Nimm Game)有3堆任意多的物品(x, y, z)。两个人轮流拿,每次只能从一堆中拿,至少拿一个,至多不限。拿到最后者胜利。 结论: 必败点为 x^y^z = 0。(^为异或) 证明: 如果当前局势为(0,0,0)。先手肯定输。其中0^0^0=0 如果当前局势为(0,n,n)。先手肯定输。因为无论先手怎么拿,后手都可以从另一堆里拿相同多个。最终转化成(0,0,0)的情...

2018-07-19 18:57:17 553

原创 博弈(二) 威佐夫博弈(Wythoff‘s game)

威佐夫博弈(Wythoff’s Game)有两堆物品分别为(an, bn)。两个人轮流取,至少取一个,有两种取法,取到最后一个者胜利。 1.从任意一堆中取任意个 > 1。 2.从两堆中取同样多个。 结论: 对于任意的局势(a, b)(a < b),必败点为(b-a) * (sqrt(5)+1)/2 = a. 证明: 第一个必败点为(0, 0),即谁面对当前局势必输。 ...

2018-07-19 15:39:18 536

原创 博弈(一) 巴什博弈(Bash Game)

巴什博弈(Bash Game)有一堆n个物品,两个人轮流拿,最少拿一个,最多拿k个,拿到最后的人胜利。 结论: 必败点为n % (k+1) = 0。 证明: 如果n = t(k+1):先手拿m个,后手可以拿(k+1-m),剩下物品数为(k+1)(t-1),还是必败点,所以后手总能拿到最后一个。 如果n = t(k+1) + m,先手先拿m个,后手将面临必败点,先手胜利。 例题: ...

2018-07-19 13:53:24 922

原创 CodeForces - 1005D Polycarp and Div 3(dp||贪心)

点击打开题目链接 题目大意: 给出一个数字,将数字进行拆分成多个部分,使得其中有n个部分各位数字之和能被3整除,求解最大值n。 贪心思路: 对每位数字对3求余,则结果只能是0、1、2.如果当前位是0,则对结果贡献为1,如果不为0,则判断连续出现2或者1的数目num,如果num%3为0,则对结果的贡献为num/3,否则可以找到一个与当前数字不相等的数字(前面连续出现的是2,当前为1。或者前面...

2018-07-16 20:52:02 348

原创 2018年团体程序设计天梯赛总结

努力是不会骗人的,如果说努力了还没被看到,只能说明你努力的还不够!2018.3.31 天梯赛。 从3月17日的天梯赛选拔开始,到3月31日正式的天梯赛,期间共进行了四场选拔赛,四场训练赛,一场模拟赛。在这九场比赛中,我的名次可能是波动最大的那个了。原因有两个:一是对中高档题目的训练少,二是心态问题。通过最后一周的专项训练,这些也都得到了改善。 正式的天梯赛在3月31日下午1点到4点...

2018-04-09 19:00:47 4745

原创 算法实现题 1-1 统计数字问题

统计数字问题问题描述: 给出n,遍历1~n,统计每个数字的出现次数,没有前导0(1 <= n <= 1e9)。 思路: 数据范围太大,所以不能暴力。一个n位数,从n个0到n个9一共10^n个数。在这n个数中,0~9出现次数相同(加上前导0),设为f(n). 当n = 1时, f(n) = 1; 当n > 1时,f(n) = 10 * f(n-1) + 10^(n...

2018-03-14 19:25:19 3601 5

原创 UVA - 1614 Hell on the Markets(贪心 + 结论)

点击打开题目链接 题目大意 给定n个数,满足1<=a[i]<=i; 使其中某些数变成倒数使得n个数总和为0;思路: 结论:n个数可以组成1~sum[n]的任意数 证明: 当n = 1时, a[1] = 1 = sum[1] 满足; 假设当n = k时满足; 当n = k + 1时: sum[k+1] = sum[k] + a[k+1]; 因此只需证明能凑出sum...

2018-03-08 15:59:56 356

原创 UVA - 177 Paper Folding(规律 + 模拟)

点击打开题目链接题目大意: 一张纸,不断从右往左对折n次, 原来的大纸会变成一个窄窄的纸条。现在把纸条沿折痕打开,每次打开“一半”, 即把每个痕迹做成一个直角,将最下面的纸水平放置保持不变,展开后沿着纸面平行的方向会形成一个美妙的曲线,输出曲线。思路: n = 1时 路径:ru n = 2时 路径:rulu n = 3时 路径:rululdlu n = 4时 路径:rululdl...

2018-03-06 22:35:21 506

原创 UVA - 506 System Dependencies(STL + 模拟)

点击打开题目链接 组件之间具有依赖关系,模拟实现组建的安装和删除操作。 指令 说明 DEPEND item1 item2 [item3 …] 安装item1需要先安装item2(、item3……) INSTALL item1 安装item1和它的依赖(已安装过的不用安装) REMOVE item1 移除item1及其依赖的全部组件,如果组件被...

2018-02-12 12:38:15 264

原创 UVA - 1599 Ideal Path(双向bfs + 字典序 + 输出路径)

点击打开题目链接 给一个n个点m条边的无向图,每个边标记一种颜色(1~1e9),求一条从1到n的路径,使得经过边尽量少的前提下颜色序列字典序最小。 思路: 1.忽略自环的边,用邻接表建图 2.逆序bfs求出每个顶点到n的最短距离。 3.顺序bfs从顶点1开始按照每次到n最短距离-1来寻找剩余顶点,多个顶点满足时按照最小颜色走,颜色相同时进队列,最小颜色记在ans[]中。 *vis[]保...

2018-02-11 18:57:55 352

原创 UVA - 1572 Self-Assembly(拓扑排序判断成环)

点击打开题目链接 有n种边上带标号的正方形,每种无穷多个,特定标号可以相连,判断是否能够组成无限大空间结构。 标号做点,正方形作边,构建有向图,拓扑排序判断是否成环即可。 代码:#include<bits/stdc++.h>using namespace std;const int maxn = 52;int n;string s;int vis[maxn];...

2018-02-10 18:01:37 311

原创 UVA - 12171 Sculpture(离散化+bfs)

点击打开题目链接 由n个方块组成雕塑,方块直接可以重叠和嵌套,已知每个方块最小顶点坐标值和长宽高,求形成雕塑的体积和表面积。 首先离散化坐标,将1001 * 1001 * 1001的密闭空间分成100 * 100 * 100个小方块。然后对空气块种子填充,求出空气块体积及内表面积。 代码:#include<bits/stdc++.h>using namespace s...

2018-02-09 11:31:20 369

原创 UVA - 221 Urban Elevations(离散化思想)

点击打开题目链接 给出n个建筑物的左下角坐标和长,宽,高等属性。输出正视图中所有能看到的建筑物的标号,要求按照建筑物左下角坐标从小到大输出,x坐标相同时优先输出y小的。 思路: 将所有建筑物按照先x再y排序,然后对x坐标进行离散化处理。 即对所有x坐标排序去重,则相邻两个坐标区间只有一种状态,要么区间完全可见,要么完全不可见,取区间中点然后遍历所有建筑物,就能得出建筑物是否可见。 代码:

2018-02-06 13:39:18 291

原创 UVA - 122 Trees on the level(二叉树的构建+宽度优先遍历)

点击打开题目链接 层序遍历输出二叉树节点值。 存储结构可以是结构体+指针,也可以数组+下标 lrj代码对字符串的处理比较灵活。 代码:#includeusing namespace std;const int maxn = 256 + 5;const int root = 1;vectorint>ve;int l[maxn], r[maxn];int cnt;int

2018-02-05 11:32:21 284

原创 UVA - 210 Concurrency Simulator(双端队列)

点击打开题目链接 用一个双端队列deque存等待队列,一个普通队列存阻止队列,然后进行各项操作的模拟 一开始用的结构体存每个程序,然后队列里面存的也是结构体,T了。然后改用vector存程序,队列存每个程序的标号。 代码:#includeusing namespace std;const int maxn = 1000 + 5;queueint> stop;dequeint

2018-02-04 18:53:13 302

原创 UVA - 12657 Boxes in a Line(双向链表)

点击打开题目链接 数组实现双向链表模拟操作。 lrj代码技巧是采用了一个标记变量,避免了操作4对所有元素指针的修改,并能统一其他操作。 swap用来处理当op=3时l[x]=y的情况,和后面l[y]=x统一。 代码:#includeusing namespace std;typedef long long ll;const int maxn = 100000 + 5;in

2018-02-03 16:29:34 257

原创 UVA - 1596 Bug Hunt(STL)

点击打开题目链接 找第一个bug所在行 bug: 1.数组越界 2.使用未初始化的数组元素 两个map,分别存取数组的大小和某一元素的值。处理嵌套数组时可以递归,也可以从串最后往前迭代遍历。 代码:#includeusing namespace std;typedef long long ll;const ll maxn = 1e15;mapint, int> mp;//

2018-02-02 12:06:57 239

原创 UVA - 509 RAID!(模拟 + 异或)

点击打开题目链接 给出数据块,判断合法性,合法则恢复并输出完整的数据。非法则报告磁盘非法。 合法: 1.任意一列如果没有x则应该满足奇校检或偶校检条件(即1的个数为奇数或者偶数)。 2.某一列如果有x,只允许有一个。 代码:#includeusing namespace std;char mp[8][8000];int d, s, b;char c;int op;in

2018-01-30 12:01:36 614

空空如也

空空如也

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

TA关注的人

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