ACM录 之 常识和错误。
接下来说说一些ACM里面的常识和错误。。。(可能会比较乱)
—— 首先ACM里面的代码都是要提交上去,然后让计算机自动判题的,所以。。。千万不要把 system("pause"); 加上去,不管自己怎么搞,提交之前千万记得不要有这句话,不然怎么死的都不知道。
—— 然后就是提交上去之后是立马返回结果的(网络卡了或者服务器挂了不算),结果一般有 AC(也就是对了),WA(答案错误),TLE(超时),MLE(超出内存限制),PE(答案对,格式错。),RE(在判题机上运行的时候程序崩溃,一般有数组越界,或者栈溢出。),CE(编译错误。。。)
—— 然后就是程序运行有时间限制,一般来说1s的话按照现在计算机的速度可以运行10^7这个数量级次,所以提前根据数据范围算一下大约需要运行多少次,然后看看会不会超时。
—— 内存的限制如果是 64MB,一个 int 类型的数占4个字节,也就是 4B,那么64MB也就是 64*1024*1024 / 4 个int类型的数,所以也要注意是否会超内存。。。
—— 提交程序的话就是在做题的那个网页找到 submit 按钮,然后复制代码过去就行。。。
—— 头文件。。。为了省事,一般我是直接弄上很多头文件然后写代码。如下:
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <time.h>
—— 关于数据类型的表示范围,int的表示范围是-2^31 到 2^31-1 也就是大约10^9的范围,写代码前估算一下如果中间值或者结果可能超过这个数,就尽量不要用int了。这时可以用 long long 这种类型,他的表示范围是 -2^63 到 2^63-1,大约就是10^18多。。。这时注意如果超过了这个数,就要用自己写的高精度类了(以后会说。)然后是long long这种类型的输入输出,如果是cin cout的话不用管,但是scanf他们就不行了,有些是 %lld 有些是 %I64d 对,不同的服务器不一样,就是这么坑,一般比赛前会说,也可以向裁判提问用哪一种。。。
—— 至于double和float的问题,首先推荐使用double就行,注意这些类型都是用二进制来表示小数的,转为十进制的话表示的精度 double大约是14位有效数字(不是小数点后面的位数)。另外就是各种加减乘除还有数学函数运算会让精度下降,也就是只有大约前10位是准确的,后面就呵呵了,运算次数多的话。。。精度会更差。。。而且负数的精度比正数差不少。。。所以精度问题一直是最大的坑点之一,刚开始还接触的少,后面有无数会卡精度的题目,也就是和答案很接近但是就是差那么个0.000001就算错。。。
然后有一个sgn函数来确定double,具体如下:
const double eps=1e-; // 根据题目需要修改。 inline int sgn(double x) // x负数返回-1,近似0返回0,正数返回1。
{
return x<-eps ? - : x>eps;
}
—— 另外注意double不要用 == 来判断相等,因为误差,会导致运算之后有很小的差别,所以一般只要 b-eps < a < b+eps 那么就算是a和b相等,一般 eps = 1e-8 或者 -9 或者 -10等等。。。
—— 饿。。。暂时想不起来还有啥了,未完待续。。。
ACM录 之 常识和错误。的更多相关文章
- ACM录 之 输入输出。
—— 简单介绍一下ACM里面的输入输出... —— 主要说C++的输入输出(其实其他的我不会...). —— C++里面有输入输出流,也就是cin和cout,用起来也算是比较方便吧... —— 但是, ...
- Sql-Server应用程序的高级注入
本文作者:Chris Anley 翻译: luoluo [luoluonet@hotmail.com] [目 录] [概要] [介绍] [通过错误信息获取信息] [更深入的访问] [xp_cmdshe ...
- 写给Node.js新手的7个小技巧
一些我更愿意在开始就知道东西 利用 Node.js 开发是一个非常有趣,和令人满足的过程, 他有3万多个模块可以选择使用,并且所有的模块可以非常容易的集成入现有的应用之中. 无论如何,对于一些刚开始使 ...
- 软件设计模式详解:OCP原则
看到两篇关于OCP的文章, 纳之. 原文: http://www.cnblogs.com/muzongyan/archive/2010/08/05/1793454.html http://blog. ...
- C# Memory Cache 踩坑记录
背景 前些天公司服务器数据库访问量偏高,运维人员收到告警推送,安排我团队小伙伴排查原因. 我们发现原来系统定期会跑一个回归测试,该测运行的任务较多,每处理一条任务都会到数据库中取相关数据,高速地回归测 ...
- 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密
你真的了解字典(Dictionary)吗? 从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...
- mavenWeb工程建立步骤
1.File >> New >>other...,在New窗口中打开Maven,选中Maven Project,Next. 2.在New Maven Project弹出窗口中去 ...
- 牛客 - 17968 - xor序列 - 线性基
https://ac.nowcoder.com/acm/problem/17968 下面是错误的做法,因为题目要求必须使用x,而y在check的时候不一定用到等价于x的线性基来构成. 正确的做法是直接 ...
- 转载--- 写给Node.js学徒的7个建议
贴士 1: 在开发环境使用nodemon,在生产环境使用pm2 当你第一次开发Node.js应用的时候, 其中一件事情就是一次又一次的运行[file].js 就和揭伤疤一样. 当我第一次开发的node ...
随机推荐
- php 数组操作符
1.数组操作符 数组运算符 例子 名称 结果 $a + $b 联合 $a 和 $b 的联合. $a == $b 相等 如果 $a 和 $b 具有相同的键/值对则为 TRUE. $a === $b 全等 ...
- RichTextEditor 文本编辑
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...
- Zabbix3.0 客户端搭建
zabbix客户端安装 我们这边使用编译安装 软件包版本 zabbix-3.0.3.tar.gz 添加用户组 #groupadd zabbix #useradd -s /sbin/nologin -g ...
- kafuka常用的shell命令
kafka常用shell命令: ------------------------------------ 1.创建topic bin/kafka-topics.sh --create --zookee ...
- 在MyEclipse中运行tomcat报错 严重: Error starting static Resources
严重: Error starting static Resourcesjava.lang.IllegalArgumentException: Document base E:\apache-tomca ...
- opencv基础知识------IplImage, CvMat, Mat 的关系和相互转换
Mat,cvMat和IplImage这三种类型都可以代表和显示图像,但是,Mat类型侧重于计算,数学性较高,openCV对Mat类型的计算也进行了优化.而CvMat和IplImage类型更侧重于“图像 ...
- 1988: Sn 爆long long 的处理方法
题目描述 给你两个数 n, p(0 < n,p <= 10^15); a1 = 1; a2 = 1+2; a3 = 1+2+3; ... an = 1+2+3+...+n Sn ...
- Loadrunner之脚本的调试和保存(六)
一.调试脚本 脚本录制完毕后,按F5键或单击菜单上的RUN按钮,可以运行脚本. 在VIRTUAL USER GENERATOR中运行脚本的作用,主要是查看录制的脚本能否正常通过,如果有问题 ...
- Struts2龙之总结
一.Struts2执行流程: 1.客户端初始化一个指向servlet容器(tomcat)的请求: 2.这个请求经过一系列过滤器(Filter): 3.接着StrutsPrepareAndExecute ...
- Oracle Sql优化之分层查询(connect by)
1.对于表中行与行存在父子关系时,可以通过connect by查询方式,查询行与行之间的父子关系 ),'-')|| empno as tempno, ename,mgr,level, decode(, ...