May
11
今天不太想做其他事情,所以就跟着acm集训队做了两场在toj上面的个人选拔赛。
早上的那一场做得比较随便,跟师兄聊着聊着就聊过头了,等聊完都过了十几min了。于是没有看statistics,挑了个逆序数的题目做,数据比较大,所以用归并,但是居然WA了。到WOJ的1046去测试了一下,是AC的啊,郁闷。于是去看Ranklist,发现另外一道简单题大部分人都过了,于是去写,很快1AC。然后回到那题,发现它对付超大数据有问题,于是改成long long,AC。然后又看到最后一个简单的题目,大约花了10min(说明我代码速度还是不行啊),1AC。虽然这个时候罚时比较多了,但是出3题的人不多,所以rank还比较靠前。剩下的时间在对付那个概率论的题目。显然[30][30][1000]的数据硬搞是要TLE的,不过对于我这种DPSB而言,还是老老实实先写一个出来再说。看题目就花了不少时间,然后写了个爆搜,算出了题目test case,但是提交上去就MLE了。然后想试试打表,但是在自己机器上都算不完。
比赛结束后发现成绩还是有点囧,Rank17,铜牌之后的两个。。。sigh。
下午的题目比较多,ABCDEFG。都还有点难度,所以大概20多分钟以后才开始写,把那个切割的题目写了(按照二分的模式去模拟就行了),然后看那个tree的问题,其实思路还是比较清晰的,就是DEBUG用了很久,就那么三四十行的代码啊。。。sigh。然后过了三组test case,提交WA。囧啊囧啊囧。想了很久,发现原来node[1]不一定是root。邪恶的测试数据。。再改一下,就AC了。这时候只剩下一个小时。然后去看A的那个题目。那是去年暑训的题目,当时就完全没有思路,这一次稍微有点思路,枚举+列方程求解,但是最后还是没有搞定。赛后看了jieyu的A和E的代码,然后没什么想法,继续搁置那题。。。。。。
比赛结束后Rank18,除掉那个测试帐号,和上午一样,恨。。。
sigh。我发现我始终还是只把acm当作娱乐项目,就这么混过了3年。
早上的那一场做得比较随便,跟师兄聊着聊着就聊过头了,等聊完都过了十几min了。于是没有看statistics,挑了个逆序数的题目做,数据比较大,所以用归并,但是居然WA了。到WOJ的1046去测试了一下,是AC的啊,郁闷。于是去看Ranklist,发现另外一道简单题大部分人都过了,于是去写,很快1AC。然后回到那题,发现它对付超大数据有问题,于是改成long long,AC。然后又看到最后一个简单的题目,大约花了10min(说明我代码速度还是不行啊),1AC。虽然这个时候罚时比较多了,但是出3题的人不多,所以rank还比较靠前。剩下的时间在对付那个概率论的题目。显然[30][30][1000]的数据硬搞是要TLE的,不过对于我这种DPSB而言,还是老老实实先写一个出来再说。看题目就花了不少时间,然后写了个爆搜,算出了题目test case,但是提交上去就MLE了。然后想试试打表,但是在自己机器上都算不完。
比赛结束后发现成绩还是有点囧,Rank17,铜牌之后的两个。。。sigh。
下午的题目比较多,ABCDEFG。都还有点难度,所以大概20多分钟以后才开始写,把那个切割的题目写了(按照二分的模式去模拟就行了),然后看那个tree的问题,其实思路还是比较清晰的,就是DEBUG用了很久,就那么三四十行的代码啊。。。sigh。然后过了三组test case,提交WA。囧啊囧啊囧。想了很久,发现原来node[1]不一定是root。邪恶的测试数据。。再改一下,就AC了。这时候只剩下一个小时。然后去看A的那个题目。那是去年暑训的题目,当时就完全没有思路,这一次稍微有点思路,枚举+列方程求解,但是最后还是没有搞定。赛后看了jieyu的A和E的代码,然后没什么想法,继续搁置那题。。。。。。
比赛结束后Rank18,除掉那个测试帐号,和上午一样,恨。。。
sigh。我发现我始终还是只把acm当作娱乐项目,就这么混过了3年。
May
10
对于一个felix能做出4题的比赛,我想这次的题目实在是够简单了。毕竟是初赛。
A题,服务器173上的A题(据测试,至少有4台独立的服务器170~173跑着POJ的程序)
就是那个求和的程序,那显然应该速战速决1AC——这是我机器上14:01:02写完的程序:
173上的B题,也就是企鹅豆豆的那题,让我想起了打豆豆的笑话。
一眼看过去,觉得是一个超简单的题目,sort一遍,然后O(n^2)遍历求出一个i,比penguin[i]高且力气大的企鹅是最多的。
通过了test case,然后提交,WA。
暂时忽略之,然后看了CDE题的题意,发现还是应该先搞B。
于是回过头来,仔细想了一下,发现自己SB了:
以H(Height)和S(Strength)建立一个直角坐标系,把所有的企鹅放进去
然后对任意两个企鹅a, b: 如果La < Lb 且 Sa < Sb,那么画一条从a到b的有向线段,于是就构成了一张图,或者是一个有交叉的森林,或者又可以叫做拓扑图?反正就是那么一个东西,然后有那么几个点只有出度没有入度(暂且称之为源点),有那么几个点只有入度没有出度(暂且称之为终点),我们要找一条从某一个源点到某一个终点的最长的路线。顺着这个思路,于是就想到了BFS:对每一个点都BFS过去,最后遍历所有的点,找出最大的深度,就是所求结果了。很快code完,提交,TLE。囧。看了一下,发现自己非常SB地在每次BFS以后都把所有的点的depth初始化了。注释掉这一句,提交,AC,14:32:58。
A题,服务器173上的A题(据测试,至少有4台独立的服务器170~173跑着POJ的程序)
就是那个求和的程序,那显然应该速战速决1AC——这是我机器上14:01:02写完的程序:
#include<iostream>
using namespace std;
int main(){
int n, i, t, sum = 0;
scanf("%d", &n);
for (i = 0; i < n; ++i){
scanf("%d", &t);
sum += t;
}
printf("%d\n", sum);
return 0;
}
using namespace std;
int main(){
int n, i, t, sum = 0;
scanf("%d", &n);
for (i = 0; i < n; ++i){
scanf("%d", &t);
sum += t;
}
printf("%d\n", sum);
return 0;
}
173上的B题,也就是企鹅豆豆的那题,让我想起了打豆豆的笑话。
一眼看过去,觉得是一个超简单的题目,sort一遍,然后O(n^2)遍历求出一个i,比penguin[i]高且力气大的企鹅是最多的。
通过了test case,然后提交,WA。
暂时忽略之,然后看了CDE题的题意,发现还是应该先搞B。
于是回过头来,仔细想了一下,发现自己SB了:
以H(Height)和S(Strength)建立一个直角坐标系,把所有的企鹅放进去
然后对任意两个企鹅a, b: 如果La < Lb 且 Sa < Sb,那么画一条从a到b的有向线段,于是就构成了一张图,或者是一个有交叉的森林,或者又可以叫做拓扑图?反正就是那么一个东西,然后有那么几个点只有出度没有入度(暂且称之为源点),有那么几个点只有入度没有出度(暂且称之为终点),我们要找一条从某一个源点到某一个终点的最长的路线。顺着这个思路,于是就想到了BFS:对每一个点都BFS过去,最后遍历所有的点,找出最大的深度,就是所求结果了。很快code完,提交,TLE。囧。看了一下,发现自己非常SB地在每次BFS以后都把所有的点的depth初始化了。注释掉这一句,提交,AC,14:32:58。
Apr
29
Apr
18
现在只要加入我修改的这个小东西,那么在有访客留言、评论、申请链接的时候,
我的139邮箱就会收到一封邮件,而中国移动139信箱在收到邮件以后会自动往我的手机发邮件主题。。。
噢也~~~
-------------我就是那华丽的分割线---------------
Hack for Bo-blog 2.1.0+
当有访客留言或评论、申请链接时向指定邮箱发送邮件
2009-04-18
By Felix021 @ http://www.felix021.com
Mail: i[at]felix021.com
使用说明:
1。将目录fm放置到blog/inc下面,修改fm/felix_mail.php第4~8行的四个参数。如果你的空间支持SMTP,这么就OK了,如果不支持,可以修改下面的内容,通过你的邮箱提供商的SMTP服务器发送邮件,但是这样在评论和留言的时候会稍稍卡一下。
2。将mod_visit.php中171行到189行的内容(可以适当自定义)放到blog/inc/mod_visit.php的相应位置(不知道v2.1.1是怎样的,反正我的2.1.0测试是OK了,应该可以直接用文件覆盖)。注意不要把177行的16改大,因为phpmailer的限制,UTF-8编码下,邮件主题最大16个字符,不知道是什么问题,如果有谁搞清楚了,一定记得通知我一下~~~
3。将mod_login.php中280行到284行的内容方到blog/inc/mod_login.php的对应位置,注意事项同上。
4。接收邮件的邮箱建议使用中国移动的139邮箱,因为这样可以直接发短信告诉你有新的评论/通知/链接了。
--
本来想发到bo-blog论坛去,但是论坛原先的用户名的密码不记得了,163邮箱没收到重置邮件
新注册一个用户,i@这个邮箱又没收到验证邮件
得,我困得很,还不如去睡觉。
我的139邮箱就会收到一封邮件,而中国移动139信箱在收到邮件以后会自动往我的手机发邮件主题。。。
噢也~~~
-------------我就是那华丽的分割线---------------
Hack for Bo-blog 2.1.0+
当有访客留言或评论、申请链接时向指定邮箱发送邮件
2009-04-18
By Felix021 @ http://www.felix021.com
Mail: i[at]felix021.com
使用说明:
1。将目录fm放置到blog/inc下面,修改fm/felix_mail.php第4~8行的四个参数。如果你的空间支持SMTP,这么就OK了,如果不支持,可以修改下面的内容,通过你的邮箱提供商的SMTP服务器发送邮件,但是这样在评论和留言的时候会稍稍卡一下。
2。将mod_visit.php中171行到189行的内容(可以适当自定义)放到blog/inc/mod_visit.php的相应位置(不知道v2.1.1是怎样的,反正我的2.1.0测试是OK了,应该可以直接用文件覆盖)。注意不要把177行的16改大,因为phpmailer的限制,UTF-8编码下,邮件主题最大16个字符,不知道是什么问题,如果有谁搞清楚了,一定记得通知我一下~~~
3。将mod_login.php中280行到284行的内容方到blog/inc/mod_login.php的对应位置,注意事项同上。
4。接收邮件的邮箱建议使用中国移动的139邮箱,因为这样可以直接发短信告诉你有新的评论/通知/链接了。
下载文件 (已下载 1525 次)
--
本来想发到bo-blog论坛去,但是论坛原先的用户名的密码不记得了,163邮箱没收到重置邮件
新注册一个用户,i@这个邮箱又没收到验证邮件
得,我困得很,还不如去睡觉。
Apr
17
前两天还在和sandy讨论怎么整一个免费的山寨版邮件推送,
今天一时兴起,想看看gmail有没有山寨版的已经实现的邮件推送,
于是搜了一下“gmail 新邮件 到达通知”,
没想到我们可亲可敬di中国移动早就提供了条件:
中国移动139免费邮箱,提供免费的短信到达通知
——这不就是告诉我们,有邮件就发到139邮箱吧,我来告诉你!
以前注册的139邮箱居然不知道有这回事,真是浪费阿。
于是赶紧把gmail的邮件转发开起来。。。。
测试了一下,反应还是够快的,1min以内就收到短信了,超赞。
于是felix用上了平民山寨手机邮箱推送服务,再也不用时不时去翻邮箱了
今天一时兴起,想看看gmail有没有山寨版的已经实现的邮件推送,
于是搜了一下“gmail 新邮件 到达通知”,
没想到我们可亲可敬di中国移动早就提供了条件:
中国移动139免费邮箱,提供免费的短信到达通知
——这不就是告诉我们,有邮件就发到139邮箱吧,我来告诉你!
以前注册的139邮箱居然不知道有这回事,真是浪费阿。
于是赶紧把gmail的邮件转发开起来。。。。
测试了一下,反应还是够快的,1min以内就收到短信了,超赞。
于是felix用上了平民山寨手机邮箱推送服务,再也不用时不时去翻邮箱了
Apr
14
看了一天的lshort,终于对LaTeX的使用有了大致的了解,不过还是有些不够熟悉。
决定写个东西练手,但是写着写着遇到一个难以逾越的问题:
使用\label{ooxx}定义一个标签(或者叫做书签?),然后用\ref{ooxx}引用的时候,就出现两个问号"??"
网上的说法是,需要一个gbk2uni.exe把编码转换一下
因为很多人是在win下面编写的TeX文档,默认是GBK编码,而生成书签的需要用UTF-8编码才能被识别
可是我是在Ubuntu Linux下面的,默认的文本编码就是UTF8,没有必要转换了阿
网上查到有人用了hyperref包,但是加上下面这一句之后仍然是俩问号
又因为一直是直接用pdflatex b.tex编译的文档,以为是需要按照正常的方式,于是
可是在第一步提示
生成的pdf文件中仍然是不能正常显示,非常囧。
折腾了好久,网上一直没找到解释,却在无意中发现了解决方案:
如果我先用latex编译一次b.tex以后,然后再用pdflatex,就能够解决问题!
然后又突然就明白过来了,运行latex b.tex两次,第二次就没有那个warning了!
Orz... 怎么工作得像MASM似的,先扫一遍找Symbol,然后才生成目标代码。。。
如果要生成的pdf中,书签作为超级链接存在,则要加入前面的那个hyperref的package
注意里面的第一个参数dvipdfm(也可以是ps2pdf,这取决于最后你用什么命令生成pdf)
然后
然后生成的b.pdf,就是理想的状态了^_^
经过测试:
如果是dvipdfm,就必须用dvipdfm来生成pdf;
如果是ps2pdf,就必须用ps2pdf生成;
如果不填写,就必须用pdflatex。
--
至于另一个很诡异的问题:
如果在\section{}里面给的是中文,那么加入\tableofcontents以后,就会出现如下错误
! Package inputenc Error: Unicode char \u 8:解 not set up for use with LaTeX.
在 http://www2.informatik.hu-berlin.de/~xu/LaTeX.html 找到了博主在 http://i.thuda.org/ir77/?p=60 找到的诡异解决方法:
在文档的末尾加上\newpage
而且居然有效。
太TMD诡异了。
决定写个东西练手,但是写着写着遇到一个难以逾越的问题:
使用\label{ooxx}定义一个标签(或者叫做书签?),然后用\ref{ooxx}引用的时候,就出现两个问号"??"
网上的说法是,需要一个gbk2uni.exe把编码转换一下
因为很多人是在win下面编写的TeX文档,默认是GBK编码,而生成书签的需要用UTF-8编码才能被识别
可是我是在Ubuntu Linux下面的,默认的文本编码就是UTF8,没有必要转换了阿
网上查到有人用了hyperref包,但是加上下面这一句之后仍然是俩问号
引用
\usepackage[dvipdfm,
pdfstartview=FitH,
CJKbookmarks=true,
bookmarksnumbered=true,
bookmarksopen=true,
colorlinks=true, %注释掉此项则交叉引用为彩色边框(将colorlinks和pdfborder同时注释掉)
%pdfborder=001, %注释掉此项则交叉引用为彩色边框
citecolor=magenta,% magenta , cyan
linkcolor=blue,
linktocpage=true,
]{hyperref} % hyperref 宏包通常要求放在导言区的最后!!!
pdfstartview=FitH,
CJKbookmarks=true,
bookmarksnumbered=true,
bookmarksopen=true,
colorlinks=true, %注释掉此项则交叉引用为彩色边框(将colorlinks和pdfborder同时注释掉)
%pdfborder=001, %注释掉此项则交叉引用为彩色边框
citecolor=magenta,% magenta , cyan
linkcolor=blue,
linktocpage=true,
]{hyperref} % hyperref 宏包通常要求放在导言区的最后!!!
又因为一直是直接用pdflatex b.tex编译的文档,以为是需要按照正常的方式,于是
引用
$ latex b.tex
$ dvips b.div
$ ps2pdf b.ps
$ dvips b.div
$ ps2pdf b.ps
可是在第一步提示
引用
LaTeX Warning: Reference `def' on page 1 undefined on input line 31.
LaTeX Warning: There were undefined references.
LaTeX Warning: There were undefined references.
生成的pdf文件中仍然是不能正常显示,非常囧。
折腾了好久,网上一直没找到解释,却在无意中发现了解决方案:
如果我先用latex编译一次b.tex以后,然后再用pdflatex,就能够解决问题!
然后又突然就明白过来了,运行latex b.tex两次,第二次就没有那个warning了!
Orz... 怎么工作得像MASM似的,先扫一遍找Symbol,然后才生成目标代码。。。
如果要生成的pdf中,书签作为超级链接存在,则要加入前面的那个hyperref的package
注意里面的第一个参数dvipdfm(也可以是ps2pdf,这取决于最后你用什么命令生成pdf)
然后
引用
$ latex b.tex
$ latex b.tex
$ dvipdfm b.dvi
$ latex b.tex
$ dvipdfm b.dvi
然后生成的b.pdf,就是理想的状态了^_^
经过测试:
如果是dvipdfm,就必须用dvipdfm来生成pdf;
如果是ps2pdf,就必须用ps2pdf生成;
如果不填写,就必须用pdflatex。
--
至于另一个很诡异的问题:
如果在\section{}里面给的是中文,那么加入\tableofcontents以后,就会出现如下错误
! Package inputenc Error: Unicode char \u 8:解 not set up for use with LaTeX.
在 http://www2.informatik.hu-berlin.de/~xu/LaTeX.html 找到了博主在 http://i.thuda.org/ir77/?p=60 找到的诡异解决方法:
在文档的末尾加上\newpage
而且居然有效。
太TMD诡异了。
Apr
13
因为网络程序设计课程要求做一个扩展型的作业,其中一个选项是ftp client。于是我就选了这个。
做完以后发现其实不难,而最难的地方,在于了解FTP协议的工作过程。
下面随便闲扯一点东西吧。
在网络上,经常遇到的应用层协议包括HTTP,FTP,SMTP,POP3,都使用TCP协议连接,感觉挺像的。
HTTP协议显然是最常见的,在客户端和服务器之间只有一条连接,既传输控制命令(HTTP头),也传输数据(HTTP实体)
因此在编写动态网页脚本的时候,一定要先输出header,然后才输出HTML代码。
FTP协议则采用两条连接,一条控制连接,一条数据连接。
控制连接用于传输控制命令,始终保持连接,直到客户端发出QUIT命令结束连接;
数据连接在需要传输数据的时候打开(发起端可以是客户端也可以是服务器),传输完毕后就断开。
FTP的数据连接有两种模式,一种是主动模式,一种是被动模式(PASV, Passive Mode)。
采用主动模式时,客户端监听一个本地端口,由服务器发起连接传输数据;
而采用被动模式时,则是由服务器打开一个端口,客户端发起连接接收数据。
下面我用telnet来模拟一个FTP客户端连接、登陆、使用被动模式传输文件并退出的完整过程:
做完以后发现其实不难,而最难的地方,在于了解FTP协议的工作过程。
下面随便闲扯一点东西吧。
在网络上,经常遇到的应用层协议包括HTTP,FTP,SMTP,POP3,都使用TCP协议连接,感觉挺像的。
HTTP协议显然是最常见的,在客户端和服务器之间只有一条连接,既传输控制命令(HTTP头),也传输数据(HTTP实体)
因此在编写动态网页脚本的时候,一定要先输出header,然后才输出HTML代码。
FTP协议则采用两条连接,一条控制连接,一条数据连接。
控制连接用于传输控制命令,始终保持连接,直到客户端发出QUIT命令结束连接;
数据连接在需要传输数据的时候打开(发起端可以是客户端也可以是服务器),传输完毕后就断开。
FTP的数据连接有两种模式,一种是主动模式,一种是被动模式(PASV, Passive Mode)。
采用主动模式时,客户端监听一个本地端口,由服务器发起连接传输数据;
而采用被动模式时,则是由服务器打开一个端口,客户端发起连接接收数据。
下面我用telnet来模拟一个FTP客户端连接、登陆、使用被动模式传输文件并退出的完整过程: