1.5k words

在同学的介绍下,我报名了 刘功勋 老师的 TFT 35 期口语小组。之所以报名这个小组,理由也很简单 —— 就是为了学习口语,为 TOEFL 做准备。在昨天,小组正式结束,感觉收获颇多。同时,这几天又有一些其它想法涌上心头。

3.4k words

在我知道wait() 与 notify() 以前,我常常用一种看似很 low 的方式控制线程同步

1
2
3
while(condition) {
return ;
}

实际上这个线程是一直在运行的,并没有操作系统概念中的阻塞(Block)。而要实现阻塞(Block)则要借助 Java 线程中的 wait() 操作 与 notify() 操作。

1.8k words

思路

首先有一点是可以确定的:对于任何一连通图,必有一生成树(简直废话)。
对于这一题,关键的问题是确定最大与最小。对于这种寻找两个相关变量的题,其实一般可以先试着确定一个,然后再去寻找另一个。
比如在这题中,可以迭代每一个边 L,同时把这条边 L 当做最小的边,用比它大的边去试着连同一幅图,知道找到边 R, 使得加上这条边 R 后刚好可以凑成一幅联通图。
因此,从上述思路可以看出,排序是必不可少了。所有排序是第一步。
排序好后进行遍历 L,建立 N (顶点数) 个并查集 S,每加入一条边就将该边的端点对应的并查集合并(前提是两个端点对应不同的并查集)。
直到刚好加入边 R 后,并查集只剩一个,且大小刚好与顶点数相等。此时对于 L 来说,R - L 极为其 “苗条度”。
因此对所有求得的“苗条度”求一个最小值即可。如果连一个“苗条度”都没有,那结果自然就是找不到合适的答案了。

1.2k words

Merry Xmas

Merry Xmas!

圣诞节悄然而至,再过几天就是2016了。已经不止一次这么感叹了:时间过得太快,总感觉这一年就这么没了。

对于2015年,总想写下一点内容,毕竟有些事情一直释怀不下,可能说出来会好一点。
Pixiv Id 54204715

1.7k words

思路

假设从( x, y )出发,并且从( x, y )出发所能走的最长路为 d[x][y],那么设想如果( x - 1, y )的值(即题目所给的高度)要小于(x,y),那么d[x-1][y] + 1 有可能就是我们所要求的d[x][y],因为这条路是单向的,只可能从较小的(x-1, y)走向(x,y)。如果考虑四个方向,用(x’, y’)表示(x , y)上下左右四个方向,那么d[x][y] = max(d[x’][y’]) + 1,且 (x’, y’)上的值要小于(x, y)。那么从这个方程可以看出这实际上可以采用 DFS 加上 dp 的做法,或者称之为记忆化搜索。而 搜索 的终点则是某点(x, y)的四周都比他大,则返回 1。

2.6k words

Intro

Sort is a prevalent topic in programing. Although the sort operation mostly is handled by the back-end like PHP, Java and so on, occasionaly some are occured in front-end. Here are some simple instances I dealt with recently.

Bubble-like Sort

Suppose some list elements ordered as follows:

1
2
3
4
5
6
<ul id="demo">
<li>2</li>
<li>1</li>
<li>4</li>
<li>3</li>
</ul>

Every time I filter through the nodes to get the smallest-value one from 1st one to 4nd one, and then I put it to the tail of lists. Next, I still filter to get the smallest-value one but from 1st one to 3nd one, and still put it to the tail to the lists. Now, two elements are sorted, and still two ones stay idle. The operation continues until all the elements have been sorted.
The produceres can be illustrated as follows:

2 1 4 3 -> 2 4 3 1 -> 4 3 1 2 -> 4 1 2 3 -> 1 2 3 4

1.2k words

静态变量/方法

静态变量/方法,一般来说是独立於对象的存在,它不属於任何一个具体的对象,它属於每一特定类的所有对象。也可以认为是属於一个类的。静态变量一般用於常数,或者存储某一类的所有对象需要共有的变量。
学JS的时候发现,与JAVA,C++相比,JS并没有明确定义静态的声明或使用方法。虽然没有说,但仍然需要,比如一个很经典的需要就时用静态变量统计一个类被实例化了几次。

4.1k words

表示最近在学JS, 相对个人以前学的Python, JAVA之类的语言, JS的语言确实有一些”奇葩”. 把初学时的一些语法错误记录下来,方便自己以后查阅, 如果能帮助到读这篇文章的你自然就更好了.

number 与 string 相加/减/乘/除

Example 1:

1
2
var a  = "5" + 2;   // the result is "52"
var b = 2 + "5"; // the result is "25"
2.7k words

Introduction to Langton’s Ant

简单来说 Langton’s ant 就是一个简单的数学游戏.

在一平面上,存在无限的等大小的正方形方格,每一个方格要么是白色,要么是黑色. 我们在某一个上放了一只蚂蚁(Ant). 这只蚂蚁每一步可以朝四个方向行走,并且每步行走遵从以下两条规则:

  • 如果蚂蚁在色格子时,就会向转90°,同时颠倒该格子的颜色(变为黑色),最后再向前走一步。
  • 如果蚂蚁在色格子时,就会向转90°,同时颠倒该格子的颜色(变为白色),最后再向前走一步。
Uncategorized
3k words
1
2
3
4
5
6
7
8
// Colors
@black: #414141;
@white: #ffffff;
@text-color: @black;
@background-color: #EBECEE;
@brand-color: @material-teal;
@accent-color: @material-orange;
@grey-color: #828282;
1.3k words

注意: 这篇文章我曾于 2015 年 5 月 2 日发表在 CnBlog 上。因为那个 blog 我已经几乎不维护,所以准备把部分文章转移至这里。另外,因为那时我还没有在 GitHub 上建立站点,所以这篇文章的发表时间早于这个站点的最早搭建时间。

上个月26号,我有幸参加了今年的浙江省省赛。第一次参加正式的ACM比赛,心里略有点小激动。我的队友们也是第一次参加,还好同行的还有学长学姐们的队伍。