初学acmer--《算法竞赛入门经典》笔记(十)P54-56

来源:互联网 发布:php调用json接口 编辑:程序博客网 时间:2024/04/29 21:27

1.在c语言中,“乘以二”可以写成“<<1”,意思是“左移一位”。类似的,“(1<<8)-1”表示2^8-1,需要注意的是,括号是必须的,因为“<<”的优先级没有减法高

2.补码表示法:计算机中二进制是没有符号的。在计算机中,-n的内部表示是2^32-n。

从百度百科弄了两张图,如下:

可能有人好奇为什么计算机不采取将32位中的第一位设置为“符号位”的方法来表示负号呢?既然没有采用这种方法,这法子肯定有不足之处啦,至于哪里不足?如图:


3.比赛中几种报错类型
①答案错(Wrong Answer,WA)

②输出格式错(Presentation Error,PE)

③超时(Time Limit Exceeded,TLE)

④运行错(Runtime Error,RE)

ps:①在运行时,除了程序自身异常退出(例如,除零,栈溢出,非法访问内存,断言为假,main函数返回非零值)外,还可能是因为超过了评测系统的资源约束(如内存限制,最大输出限制)而被强制中止。有些评测系统会把这些情况与一般的运行错误区别开,但在多数情况下会统一归为“运行错”中。

②超时也不一定是代码“效率低下”,也可能是规定从文件读入数据,但是你的程序却在等待键盘输入、特殊数据使程序进入死循环、程序实际上已经崩溃却没有异常退出

4.在线评测系统(Online Judge,OJ):例如,西班牙Valladolid大学的UVaOJ,浙江大学的ZOJ,北京大学的POJ,电子科技大学的HDOJ,俄罗斯的SGU、Timus,波兰的SPOJ

阅读全文
0 0
原创粉丝点击