循环体中局部变量的小坑
前几晚看《The Go Progromming Language》时,在 匿名函数 的最后一小节中,发现了一个比较有趣的小坑。 大概的场景为:首先创建一些目录,然后对于每一个目录,分别声明一个匿名函数删除目录,样例代码如下:
|
|
大家可以先自行考虑一下,有没有什么问题,效果会是怎样
……图论常见题目及算法
背景
近来都在刷 CCF 的题,准备认证考试。最近几天开始刷其中的第四题,一般而言,CCF 的第四题都是图论题。对于我这样之前没怎么刷题的人来说,图论题看上去就感觉很难,主要是感觉到很陌生,因为在实际的开发过程中比较少用到图这样的数据结构,都是线性的数据结构,连树都比较少用。
但是在刷得比较多的图论题后,发现其实图论题好像也就那么回事,也不是说简单,主要感觉来来去去都是考那几个东西,如果是没有接触过或者不会做的话,可能有点难,但是只要接触过相似的,直接套板子修改就行了(当然也有可能是我还接触的不够多 XD),另外,就是感觉没有什么题是 DFS/BFS 不能破,只是会不会超时,能拿多少的分的问题(对于 CCF 认证只想拿 300 分而言,有几十分就够了),其实很多算法的核心也就是 DFS 与 BFS。
所以在今晚刷完了 CCF 往年所有的第四题后,总结一下最近接触的图论问题及解法。
……CCF201503-4 网络延时
Problem
问题描述
给定一个公司的网络,由 n 台交换机和 m 台终端电脑组成,交换机与交换机、交换机与电脑之间使用网络连接。交换机按层级设置,编号为 1 的交换机为根交换机,层级为 1。其他的交换机都连接到一台比自己上一层的交换机上,其层级为对应交换机的层级加 1。所有的终端电脑都直接连接到交换机上。
当信息在电脑、交换机之间传递时,每一步只能通过自己传递到自己所连接的另一台电脑或交换机。请问,电脑与电脑之间传递消息、或者电脑与交换机之间传递消息、或者交换机与交换机之间传递消息最多需要多少步。
CCF201612-4 压缩编码
Problem
问题描述
给定一段文字,已知单词a1, a2, …, an出现的频率分别t1, t2, …, tn。可以用01串给这些单词编码,即将每个单词与一个01串对应,使得任何一个单词的编码(对应的01串)不是另一个单词编码的前缀,这种编码称为前缀码。
使用前缀码编码一段文字是指将这段文字中的每个单词依次对应到其编码。一段文字经过前缀编码后的长度为:
L=a1 的编码长度 ×t1+a2 的编码长度 ×t2+…+ an 的编码长度×tn。
定义一个前缀编码为字典序编码,指对于1 ≤ i < n,ai的编码(对应的01串)的字典序在ai+1编码之前,即 a1, a2, …, an 的编码是按字典序升序排列的。
例如,文字E A E C D E B C C E C B D B E中, 5个单词A、B、C、D、E出现的频率分别为1, 3, 4, 2, 5,则一种可行的编码方案是A:000, B:001, C:01, D:10, E:11,对应的编码后的01串为1100011011011001010111010011000111,对应的长度 L 为 3×1+3×3+2×4+2×2+2×5=34。
在这个例子中,如果使用哈夫曼(Huffman)编码,对应的编码方案是A:000, B:01, C:10, D:001, E:11,虽然最终文字编码后的总长度只有33,但是这个编码不满足字典序编码的性质,比如C的编码的字典序不在D的编码之前。
在这个例子中,有些人可能会想的另一个字典序编码是A:000, B:001, C:010, D:011, E:1,编码后的文字长度为35。
请找出一个字典序编码,使得文字经过编码后的长度L最小。在输出时,你只需要输出最小的长度L,而不需要输出具体的方案。在上面的例子中,最小的长度L为34。
CCF201412-3 集合竞价
Wildcard Matching
Problem
source: Wildcard Matching
difficulty: hard
Given an input string (s
) and a pattern (p
), implement wildcard pattern matching with support for '?'
and '*'
.
'?' Matches any single character.
'*' Matches any sequence of characters (including the empty sequence).
The matching should cover the entire input string (not partial).
……CCF201604-2 俄罗斯方块
Merge k Sorted Lists
Problem
- Source: Merge K Sorted Lists
- difficulty: hard
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
……Mysql忘了root密码怎么办
引言
在准备做Windows程序设计的大作业时,需要用到 Mysql。打开了 Mysql WorkBench 连接本地数据库时,提示要输入 root 密码,试了几个常用密码无果后,发现自己再次忘记了 Mysql 的 root 密码。但是没有关系,本人已经习惯忘记各种不太常用的账号密码了,驾轻就熟地打开百度搜索相关方法,却发现来来去去都是那同一个方法,而且还因为版本问题与实际情况有些差异,最终还是花费了不少的时间,有点难受,遂写一文记录一下。
……Maximum Product of Word Lengths
Problem
Given a string array words
, find the maximum value of length(words[i]) * length(words[j])
where the two words do not share common letters. You may assume that each word will contain only lower case letters. If no such two words exist, return 0.
Example 1:
Input: ["abcw","baz","foo","bar","xtfn","abcdef"]
Output: 16
Explanation: The two words can be "abcw", "xtfn".
……Linux 文件系统中操作文件导致 NTFS 文件系统中文件丢失
背景
在上周的时候,打算在 Ubuntu 下查看在 Windows 下 QQ 接受到的项目代码,然后顺便就整理了一下目录,新建了一个文件夹,将实验室相关的文件剪切复制到该文件夹。后切换回 Windows,发现文件夹没有建成功,而刚才剪切的文件不见了。
无独有偶,本周一上课纪录模式识别笔记时,顺手归档了一下这门课文件夹下的作业,课件,笔记(在 Windows 下的 Ntfs 分区中),然后周二上课打开 Windows 系统后,发现文件丢失,新建的归档文件夹也不见了,然后昨天修改的 markdown 笔记也损坏无法打开。
……我为什么要开这个博客
正文
心心念念很久的博客终于开通了,距离产生这个想法的大一下学期,已经过去一年半了。在这段时间当中虽然也有过不少的努力和尝试进行博客这个想法的实现,甚至还在大一下学期期末的时候还真的跟着某篇博客用Django倒腾出了一个算是能够用的博客,还部署到了服务器上,上了域名,然而最后死于没有文章产出,真的惭愧。
……