uva - 2191 - Potentiometers 不指定

抽象题意:给出最多200,000个不超过1000的非负整数,对最多200,000次以下两类操作进行处理
1.  M x y   ——求第x到第y个整数之间的所有整数的和。
2.  S x v   ——将第x个整数的值置为v。

显然,硬搞要TLE的,稍微想了一下,就知道应该用线段树(或者树状数组?)来完成。
关于线段树可以参考 http://acm.whu.edu.cn/blog/read.php?26 以及 http://acm.whu.edu.cn/blog/read.php?51

简单的说,就是用一个平衡二叉树来存储这些东西,
每个叶节点存放一个整数(一个单位"线段"),
而每个分支节点存放的是一条"线段"

在M操作的时候,只要递归地将线段xy分割,能够在logN的时间内查询出
在S操作的时候,只要递归地找到对应的叶节点更新,并在返回的时候一层层更新涉及到的分支节点即可,也是logN。

好久没有写稍长的代码了,这个线段树的具体实现也忘得差不多了,还是去翻了一下yyt的论文。
不过这次写得顺利多了,思路比较清晰。
具体的代码为

Ubuntu Intrepid -- Xen Dom0 + DomU 搞定! 不指定

ooxx的X3100阿,死活不肯就范。
在Fedora8下面,虽然可以进入X,但是有个ooxx的SELinux,烦死人。
打开包管理器,卸载SELinux,爽,顺便把什么东西都卸掉了, ls 和 init 都不行了,sigh。强制关机。

正好,张文那里用着Debian5,在Dom0下正常。
于是把vmlinuz、initrd、/usr/src/ooxx、/lib/modules/ooxx拷过来
apt-get安装了一个 ubuntu-xen-desktop
然后在/boot/grub/menu.lst里面加了一个title,kernel ,module,module。。。
然后启动:找不到这个和那个。囧。
然后发现是在module /boot/vmlinuz那个地方忘了加上内核参数,没有root=ooxx  =.=
好吧,root=/dev/sda3
启动,哦也,进入了XWindow!声音 网卡都正常,但是Atheros的无线网卡不对劲。
于是重新编译madwifi,make、make install、modprobe ath_pci,重启,还是不行=.=
找了跟网线插上去,也不能上网:网卡被当成网桥了。
brctl delif还是brctl delbr来着,反正删掉了个什么东西,剩下一个peth0,就可以上网了,嗯。

$ xm list
看到dom0,哦也。

然后开始整domU,上网找到一个脚本超赞的,指定一个分区,或者一个文件
它可以自动从源里面下载东西,制作好一个完整的可以作为的domU跑的分区。大约需要400MB空间。

$ dd if=/dev/zero of=ooxx.img bs=1M count=1 seek=1024  #创建一个镜像,当然你也可以用分区,就免掉这一步
$ mkubuntu.sh ooxx.img
等那么一段时间,然后就OK了

然后把脚本输出的东东存为一个xen的配置文件,比如ubuntu.xenrc

$ xm create -c ubuntu.xenrc

然后就看到启动信息拉~

新手机就位。 不指定

很漂亮。
我要的是黑色版的。
横屏,很爽。
看视频看网页看FLASH比竖屏爽。
有些程序会有点诡异,不过屏幕方向可以通过CeleTask旋转过来。
Intel PXA270 416MHz的处理器
确实比以前的OMAP 850 200MHz爽
视频,700kbps的基本上没问题。更高的没测试过。
Show Good 的 Flash动画,如果画质是中或者低 基本上就不卡
打开程序也比原先那个586w来的快。
在PocketDOS下面跑QBasic和TurboC2,也顺畅多了。
外放声音够大。
摄像头200Mega,Auto-Macro
但是貌似不是自动对焦,需要手动选择远景和近景
远景适合拍摄风景,近景适合拍摄文字,配合蒙恬名片王可以读取名片的信息。
QWERTY键盘,输入确实很爽。快捷键的自定义功能也做得很好很强大。
继续试用,嗯。

Linux/Unix: 编译——如何缩小可执行文件的体积 不指定

当然,前提是不缺胳膊少腿、功能正常。

主要是从这两个方面入手:

1. 使用动态库,这是默认的,只要在编译的时候不加上 -static 参数就行了
2. 去处不必要的.symbol和.debug的信息,在编译的时候加上-s参数即可;或者在编译以后运行strip a.out。

strip能清除执行文件中不必要的标示符及调试信息
可减小文件大小而不影响正常使用,但是不能调试了
所以用于不需要调试的场合

Tomato的日志 不指定

看了一下日志,还挺有意思,不过最后有点小可怕:bad swap file。
于是赶紧还是把swap关掉,就用ram。
看来升级RAM才是王道阿,改天和feli一起去淘内存颗粒。
--
Jan  1 08:00:12 wl-520gu syslog.info syslogd started: BusyBox v1.12.3
Jan  1 08:00:12 wl-520gu authpriv.info dropbear[113]: Running in background
Jan  1 08:00:12 wl-520gu user.notice kernel: klogd started: BusyBox v1.12.3 (2009-02-10 00:46:12 EST)
Jan  1 08:00:12 wl-520gu user.warn kernel: CPU revision is: 00029029
Jan  1 08:00:12 wl-520gu user.warn kernel: Primary instruction cache 16kb, linesize 16 bytes (4 ways)
Jan  1 08:00:12 wl-520gu user.warn kernel: Primary data cache 16kb, linesize 16 bytes (2 ways)
Jan  1 08:00:12 wl-520gu user.warn kernel: Linux version 2.4.20 (root@tomato) (gcc version 3.2.3 with Broadcom modifications) #2 Tue Feb 10 00:53:58 EST 2009

How To Read C Declarations 不指定

这篇看起来忒有意思,回头有空了我翻译一下。

How To Read C Declarations

zz from http://blog.chinaunix.net/u1/36290/showart_443799.html

Even experienced C programmers have difficulty reading declarations that go beyond simple arrays and pointers. For example, is the following an array of pointers or a pointer to an array?
int *a[10];

What the heck does the following mean?
int (*(*vtable)[])();

Naturally, it's a pointer to an array of pointers to functions returning integers. ;)

This short article tells you how to read any C declaration correctly using a very simple technique. I am 99% certain that I read this in a book in the late 1980s, but I can't remember where. I doubt that I discovered this on my own (even though I've always been delighted by computer language structure and esoterica). I do remember, however, building a simple program that would translate any declaration into English.
The golden rule

The rule goes like this:
引用
    "Start at the variable name (or innermost construct if no identifier is present. Look right without jumping over a right parenthesis; say what you see. Look left again without jumping over a parenthesis; say what you see. Jump out a level of parentheses if any. Look right; say what you see. Look left; say what you see. Continue in this manner until you say the variable type or return type."

The degenerate case is:

域名又被处理了 不指定

www.felix021.com 这个域名被处理了,不能通过浏览器直接访问了,urlforwad到ctc.felix021.com
由于meyu的邮件里面说到,不影响搜索引擎收录,所以这么测试了一下,还挺有意思
引用
felix021@felix021-laptop:~$ telnet www.felix021.com
Trying 211.136.108.72...
telnet: Unable to connect to remote host: Connection refused
felix021@felix021-laptop:~$ telnet www.felix021.com 80
Trying 211.136.108.72...
Connected to www.felix021.com.
Escape character is '^]'.
GET /index.php HTTP/1.1
Host: www.felix021.com
User-agent: MSIE

HTTP/1.0 302 Moved Temporarily
Server: squid
Date: Tue, 24 Feb 2009 09:15:20 GMT
Content-Type: text/html
Content-Length: 0
Expires: Tue, 24 Feb 2009 09:15:20 GMT
Location: http://67.213.219.111/beian.html
X-Squid-Error: 403 Access Denied
X-Cache: MISS from domain123.com
Via: 1.0 domain123.com:80 (squid)
Connection: close

Connection closed by foreign host.

引用
$ felix021@felix021-laptop:~$ telnet www.felix021.com 80
Trying 211.136.108.72...
Connected to www.felix021.com.
Escape character is '^]'.
GET /index.php HTTP/1.1
Host: www.felix021.com
User-agent: baiduspider(http://www.baidu.com/)

HTTP/1.0 200 OK
Date: Tue, 24 Feb 2009 09:14:29 GMT
Server: Apache/2
X-Powered-By: PHP/5.2.5
Vary: Accept-Encoding,User-Agent
Content-Length: 1040
Content-Type: text/html
X-Cache: MISS from domain123.com
Via: 1.0 domain123.com:80 (squid)
Connection: close

~~然后是index.php的内容,不贴了~~

武大校园网802.11x锐捷认证程序newstar.mips For开源无线路由器版(修正BUG) 不指定

之前的那个因为在创建守护进程的那一部分代码没有写清楚
所以每次退出telnet就会退出,更新了一下
要编译好的版本可以从这里下载:
http://bbs.whu.edu.cn/bbscon.php?bid=50&id=19510
或者直接email我,我发过去,嗯。
因为静态编译的比较大,1.8MB(有没谁能搞个小的?我对编译选项不很了解,-Os没效果,汗)
所以如果各位想要去买路由器的话
1。建议至少买4MB Flash的产品,刷mini版本的
2。可以买2MB Flash的产品,但是要自己手动焊MMC/SD读卡器(据说很简单的)
3。最好是有USB口的,插上U盘就行,最省事了。
所以最实惠的选择还是我的ASUS WL-520GU,挖咔咔~~370+15运费,超划算的。
如果各位nb的话,还可以在上面安装BT,电驴,Web服务器(架BBS,如www.2cna.cn)
另外一款NB的是"64M超大内存贝尔金7231-4P 4M FLASH 带USB口脱机bt 电驴"
这个貌似比较便宜,就是难看了点儿,具体自己baidu吧~