Uva刷题有感

虽然今儿天亮了就要去缓考毛概和英语,但是从昨晚上开始就在刷Uva但是一直没过,我就一直要等到过了再复习。前些天也是,这一个星期只刷了6道题,发现自己存在着很多的问题,大体总结如下:

  • 对c的输入输出不熟悉(但现在经过6个题后已经熟练使用gets,sscanf,sprintf,printf)
  • 不会使用样例输入和输出,并对比输入输出(现在已经熟练使用流的重定向功能和diff来对比文件)
  • 部分题意理解不明,死做硬做浪费时间(遇到此类情况应查看题解)
  • 正确的输出文件并非保证最后全无空行,大部分时候有一行空行才是正确答案,不要纠结于此
  • 根据输入数据量大小动态分配内存并非最佳的解决方案,根据输入输出范围提前分配好足够的空间往往是最方便解决方案
  • 针对C语言在线调试相对不便的问题,应在写代码时,在关键部位输出调试信息,并方便关闭(现在学会了使用不定个数的参数个数,构建一个与printf功能相同的dbg函数来输出调试信息)
  • 应注意输入值的范围,比如输入的区间边界值是否一定是前小后大,比如计算出的值是否需要根据允许的范围取余修正,特殊情况输入会不会造成程序死循环等。
  • 应注意在使用前一定要初始化变量,以及访问和读入变量的顺序问题,避免顺序错误导致的数据异常

先写到这里吧。。。该去复习一下毛概了。。。

缓考完后,我一定要好好刷题,提高效率!

挑战编程

这个星期开始用挑战编程这本书来提高自己的算法与编程能力,到今天一共只做了4道题。虽然一次次的wa着实让人不爽,但自己还是得到了不少的提高

最起码自己对这些了解了:

  • oj工作原理
  • 手动人肉oj

经过前些天折腾驱动和这几天写题,渐渐对c产生了从未有过的好感。在以往的印象中,c又麻烦又不好用,要什么没有什么。但经过这些天的使用,发现c其实是非常强大的,scanf格式化输入,配合占位符和正则表达式完爆c#的Console.ReadLine,printf格式化输出媲美Console.WriteLine,stdlib.h提供了atof等就像float.Prase,比较麻烦的只有手动分配内存和释放内存,不过其实也是相当的灵活。现在真的逐渐明白了c真的是一门简单而又强大的高级语言。没有了Intellisense,我学会了自己差错和规范格式,算是一个提高吧~

回宿舍后继续做题,现在继续上管理信息系统。。。

在Open-WRT上完成H3C 802.1x认证

学校里移动(铁通)新办了宽带,免费试用一个月,不用白不用哈~不过比较DT的是,登陆需要使用iNode客户端进行认证。但是这绝对难不倒咱们技术萌~

上网找了几个开源的802.1X认证的项目,最后选定了适用于Open-WRT的njit-xclient 作为修改蓝本。使用工具链编译成功后,使用scp传输到路由器上,使用opkg install进行安装,发现不用修改就可以直接使用~哈哈~

只是有一个问题,njit-client是跑在ssh的session里的,也就是说不能关闭掉ssh窗口,这样很不利于使用。如何让现有的程序跑在后台呢?经过搜索发现了一个不错的工具nohup

执行

这样njit-client就运行在后台,并且所有输出全部重定向到/dev/null这个无底洞下,不会浪费空间了~

再次不用连接网线就在宿舍上网,感觉好惬意~

大三的第二个周六

经过了各种DT之后终于又能写东西了。

上周学校开始更换移动宽带,也就是铁通,这个月试用不限速,于是我就办了一个。一来为了享受高速,二来是为了抓紧时间测试,为了以后正式用的时候不至于手忙脚乱。事实果然很DT,移动宽带试用H3C 802.1X认证,不让用路由器。但是我就是不喜欢让本上拖着一根长长的网线,于是就开始了路由器的更新。还好Open-WRT适应性良好,在网上看了几个开源的802.1X认证的源码,然后自己根据实际情况做了更改,编译安装到路由器上,花了2天完成了路由器对802.1X的支持。这样我的手机也可以接入我的路由器上网了~

本以为DT结束了,其实刚开始。下午想更新博客,却总也打不开,后来发现,是铁通把*.sinaapp.com的网站全部都用防火墙屏蔽掉了。擦,各种黑线。。。果断投诉,不过我这边先用代理上着吧。。。DT,让我用代理上google上wikipedia也就算了,居然SAE也要用代理。。。吐槽无力。。。

明天有ACM第二场比赛,终于能赶上了。期待新的开始。

Ubuntu在恢复模式下无法修改/下的文件

因为/etc/fstab配置错误需要无法启动,需要修改这个文件。而在进入Ubuntu启动菜单,选择恢复模式进入root后,使用vi 编辑 /etc/fstab告知是read-only无法保存,此时需要重新挂载 / ,输入:

然后使用vi编辑/etc/fstab即可保存

造成一开始无法保存的原因,详见这个链接
在系统启动时,一开始挂载是使用只读来挂载 / 的

不重装ubuntu指定/home文件夹的位置到某分区

给vmware里的ubuntu更新到12.04后,发现空间越来越不够了,于是乎就重新分配了一个虚拟硬盘给虚拟机。查看了下主要是在我的主文件夹下安装了好多toolchain占用了大量空间,于是产生了把/home搬到新硬盘的想法。但是我并不想重装系统,有什么办法呢?

办法如下,把/home数据搬到新硬盘,再设置fstab启动时挂在新硬盘到/home即可

接下来在gedit中修改/etc/fstab,加上下面一行

然后把就硬盘上的/home内容清理下,重启后完成

[Greasemonkey Script]CSDN下载批量评论工具 更新至v1.1

CSDN下载批量评论工具

链接地址

http://userscripts.org/scripts/show/140596

[v1.1 8/25更新 间隔300秒评论]

有没有遇到想在CSDN下东西却没有得分的时候?
有没有纠结于想给过去下载过的资源评分却要麻烦的逐个点开评论的时候?

CSDN刷分工具来拯救你了~

Read more[Greasemonkey Script]CSDN下载批量评论工具 更新至v1.1

在Open-Wrt上驱动上海贝尔T930s G3上网卡

假期为了上网方便购买了一个移动G3 USB上网卡,型号是上海贝尔T930s。它在Windows上使用很正常,而在Linux或者是Open-Wrt下却无法使用。因为我想制作一个能方便带出去随时随地可以提供网络接入的设备,就打算使用支持USB 3G网卡和USB供电的WR720N迷你无线3G路由来实现。

Read more在Open-Wrt上驱动上海贝尔T930s G3上网卡