接下来说说一些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录 之 常识和错误。的更多相关文章

  1. ACM录 之 输入输出。

    —— 简单介绍一下ACM里面的输入输出... —— 主要说C++的输入输出(其实其他的我不会...). —— C++里面有输入输出流,也就是cin和cout,用起来也算是比较方便吧... —— 但是, ...

  2. Sql-Server应用程序的高级注入

    本文作者:Chris Anley 翻译: luoluo [luoluonet@hotmail.com] [目 录] [概要] [介绍] [通过错误信息获取信息] [更深入的访问] [xp_cmdshe ...

  3. 写给Node.js新手的7个小技巧

    一些我更愿意在开始就知道东西 利用 Node.js 开发是一个非常有趣,和令人满足的过程, 他有3万多个模块可以选择使用,并且所有的模块可以非常容易的集成入现有的应用之中. 无论如何,对于一些刚开始使 ...

  4. 软件设计模式详解:OCP原则

    看到两篇关于OCP的文章, 纳之. 原文:  http://www.cnblogs.com/muzongyan/archive/2010/08/05/1793454.html http://blog. ...

  5. C# Memory Cache 踩坑记录

    背景 前些天公司服务器数据库访问量偏高,运维人员收到告警推送,安排我团队小伙伴排查原因. 我们发现原来系统定期会跑一个回归测试,该测运行的任务较多,每处理一条任务都会到数据库中取相关数据,高速地回归测 ...

  6. 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密

    你真的了解字典(Dictionary)吗?   从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...

  7. mavenWeb工程建立步骤

    1.File >> New >>other...,在New窗口中打开Maven,选中Maven Project,Next. 2.在New Maven Project弹出窗口中去 ...

  8. 牛客 - 17968 - xor序列 - 线性基

    https://ac.nowcoder.com/acm/problem/17968 下面是错误的做法,因为题目要求必须使用x,而y在check的时候不一定用到等价于x的线性基来构成. 正确的做法是直接 ...

  9. 转载--- 写给Node.js学徒的7个建议

    贴士 1: 在开发环境使用nodemon,在生产环境使用pm2 当你第一次开发Node.js应用的时候, 其中一件事情就是一次又一次的运行[file].js 就和揭伤疤一样. 当我第一次开发的node ...

随机推荐

  1. table新增空白行到首行

    var str=""; str+="<tr bordercolor='#DEDEDE' bgcolor='#ffffff'>"; str+=&quo ...

  2. php Memcached

    PHP 连接 Memcached 服务 在前面章节中我们已经介绍了如何安装 Memcached 服务,接下来我们为大家介绍 PHP 如何使用 Memcached 服务. PHP Memcache 扩展 ...

  3. Swift --> Map & FlatMap

    转载自:https://segmentfault.com/a/1190000004050907 Map map函数能够被数组调用,它接受一个闭包作为参数,作用于数组中的每个元素.闭包返回一个变换后的元 ...

  4. final关键字修饰的变量

    final意义:最终的,不可改变的. 1.修饰变量,为常量,值不可变: 2.修饰对象,值可变,引用不变: 3.修饰方法,方法不可重写: 4.修饰类,无子类,不可以被继承,更不可能被重写. 1.fina ...

  5. sql 日结

    --生成日结数据 ==================================== -- Author: <Author,,Name> -- Create date: <Cr ...

  6. HDU 4635 Strongly connected(强连通分量缩点+数学思想)

    题意:给出一个图,如果这个图一开始就不是强连通图,求出最多加多少条边使这个图还能保持非强连通图的性质. 思路:不难想到缩点转化为完全图,然后找把它变成非强连通图需要去掉多少条边,但是应该怎么处理呢…… ...

  7. 表单提交中记得form表单放到table外面

    帝国后台按栏目搜索文章时怎么都不生效  控制台查看原来是 栏目的select的值没有提交过去,原来由于form标签在table标签里面,导致js生成的<select>标签提交失败. 解决办 ...

  8. C# 经典入门15章 -TabControl

  9. zf-关于更改账号密码的问题

    一般项目的数据库里都会有一个 SYS_USER表 里面有账号密码 一般 202……70 的都是123加密后的字符串 如果碰到项目运行之后不知道登陆密码的时候 可以在数据库中 把USER_PASS 改成 ...

  10. Swaps in Permutation

    Swaps in Permutation You are given a permutation of the numbers 1, 2, ..., n and m pairs of position ...