Inside C#

这段时间有了一些空闲,先看了一段时间关于8086汇编和6502汇编的东西,后来在看《Inside C#》(学校的图书馆真不错~ 这个都有~) 看了之后,觉得C#用着很顺手,彻底的面向对象使很多东西变得简单了。现在对于C#的熟练程度估计已经超过C++了…… 昨天帮老师用C++写USACO的题目,结果被快排整了半天——先是==和=的事情,整个程序就一个地方搞混了,结果就混乱了…… 还有全局和局部变量的事情,C++定义变量太顺手了,结果一个变量全局和局部各定义了一次,出了些奇怪的事情…… 再加上VC6似乎和Standard C++不符(using namespace std会出错…… #include 竟然是#include ……),Dev-C++的调试太垃圾了,结果是连个顺手的C++环境都没有…… C#的一个很有意思的东西是foreach,从前用VB的时候这个没有好好学过,现在发现它也简化了不少操作——什么循环变量和对象数量都不用考虑了,随便一混就可以了~ 关于接口和继承,C++的情况我不清楚,C#里面的接口大概是参考了COM,反正是个定义明确,使用方便的东西。但是,关于从父类继承的函数变成了实现接口的函数这种混乱的事情…… 估计发生的机会也不大吧…… 终于在Pascal之后,系统地学习了另一门语言~ 《Inside C#》 的确是一本好书~ 把东西讲得足够清楚。 从前就听说过Inside系列不错,的确是这样~ C#里面还有很多东西,需要从实践里面才能够知道,努力学习吧~

USACO March 2006 Gold : tselect : Passed

Debug了非常,非常长的时间(应该有1x小时了),tselect终于通过了所有数据(Slowest:8 0.577 secs)第一次做多叉树转二叉树的DP,而且还是关于边的……多叉树转二叉树是麻烦的,关于边的是麻烦的,所以这道题是特别麻烦的……Debug的时候发现很多思路不清的地方,关键是一开始要下好定义,这样接下去才不会乱……最后算法对了之后,8,9,10超时,解决办法是先做一下小的DP(7、8行),算出每个节点最多承受几条边,也就是边数上限,用这个上限来约束,很快就出来了。另,可以不二分的(按我的做法,二分会出问题的,因为不是单调的,所以用枚举,结果枚举也很快,基本上只有枚举第一个的时候花时间,后面都是直接调用)。希望SHTSC不会这样!……(树的双中心已经很恶心了……)

USACO: C and Pascal (2)

关于上次发的USACO C 比 Pascal 快的问题……USACO 2006 March Gold problem 1: skilift O(nk)Pascal: 9 10 11 TLE >2sC: 9 (1.3xs) TLE 10 (1.039s) TLE 11 (1.039s) TLE后来把存储数据改成了long(原来是long long),只在比较的时候强制转换long long (Analysis的做法)C: 9 (0.579s) AC 10 (0.398s) AC 11 (0.389s) ACC 里面的 long long就是慢啊…… 一倍差距啊……

USACO: C and Pascal

今天证实了USACO的C比Pascal快…… 有两件事可以说明: 1.USACO 1.4.2 buylow 同样的算法(我照着Pascal打的C程序),Pascal 1.015s TLE C 0.875s AC 2.USACO 2006 March Analysis用的算法和LTY用的一样,我后来也编了一下,都是O(nk)的,LTY TLE 3个点 难道Analysis的程序会TLE?   所以,希望 USACO 能够延长 Pascal 的时限 否则也太……  

U盘出问题了!!……

  我的U盘出问题了!   昨天晚上,插入U盘之后,发现我的FP工作目录不见了(里面有几百个pas文件!!),School目录也不见了…… 然后chkdsk,竟然和我说“这可能不是Windows磁盘"! 查完之后,多了FOUND.000,里面有7xx个CHK文件……   于是我只好手动分类文件,后来编了一个程序,根据文件头自动重命名。比如PK为zip,Rar!为rar,邢?唷是office文件,AC为AutoCAD,<?为xml(其实是lpi),[‘0’..’9′][‘0’..’9′]等为in。Pascal文件就比较复杂了,一般有{$,{#10,{#13,co(const)(这个会和bat文件(copy)混,不过后来才想到),pr(program),PR(PROGRAM),va(var),ty(type)等。这样还剩下几十个文件,手动都分了类(目录也变成文件了…………)。   School基本上都拯救出来了。FP我2周之前和家里的同步过,所以只差这两周之内的,基本上就是USACO 1.4.1 1.4.2 Ural 1039 ,因此也还可以。数据损失不大。   结论:应该每周同步,假如有希望…… 每天同步!   在我还在用旧的blog的时候出过这样的事,原以为是Google Search惹的祸,现在看来…… 错怪它了…… 致以深刻的歉意!……  

USACO 1.4.2还剩一道……

buylow太恶心了…… 1.015s TLE… 最后还是过了(最大的点只有一个)…… Job Processing结果是用一种很傻的贪心过的…… 还剩一道Frame Up… 原来漏看了一个条件(每条边都至少有一个字符能被看见),现在看见了,也就快做出来了…… 向1.4.3迈进…… 另:U盘坏了,文件名都变成FILExxxx.CHK了,现在类别都分了,继续恢复……