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 的时限 否则也太……