ACM中一些细节问题
1、尽量不要使用万能头文件 #include<bits/stdc++.h>
一是有些oj是不允许用的 二是 他会让你忘记一些比较长的头文件怎么写 比赛的时候不能用 那就gg
2、c++打函数的时候,一定要打retrun。
函数一定要有返回值 (这个很重要!)
比如
//这种写法自己可以运行 交题却显示编译错误
//因为你写了两个if 系统会认为 如果不符合这两个if的话 函数就没返回值了
int cmp(int a,int b){if(a>b) return 1;if(a<=b) return 0;
}可以改成这样
int cmp(int a,int b){if(a>b) return 1;if(a<=b) return 0;return 0:
}//或者这样写 就可以 不进if 就会进 else 这样不会报错
int cmp(int a,int b){if(a>b) return 1;else return 0;
}
3、 开数组不要开的刚好 一定要多加几个
3、有的oj 用的是%lld 有的是%I64d 热身赛的时候注意测试下
4、cin cout尽量不用 很耗时间 很慢 用scanf printf 就好 包括那些 stack queue 什么的 能手打都手打
5、STL里面的 min max 函数在循环里不要用 调用太慢 费时间 用三目运算符代替
6、abs()这个函数不支持long long 建议int也不要用这个函数 用三目运算符 a=a>0?a:-a;
而且在c语言中 abs这个函数的头文件是<stdlib.h>
<math.h>这个头文件里面包含fabs 或者用c++ <algorithm>这个头文件也包含有abs()
7、最大值设置为 0x3f3f3f3f
0x3f3f3f3f的十进制是1061109567,是10^9级别的(和0x7fffffff一个数量级)。如果我们想要将某个数组清零,我们通常会使用memset(a,0,sizeof(a)),因为memset是按字节操作的,因为0的每个字节都是0(一般我们只有赋值为-1和0的时候才使用它)0x3f3f3f3f的每个字节都是0x3f,我们只需要memset(a,0x3f,sizeof(a))。
8、double 变量是不能判断 == 的 因为double 存的时候 3.5 存进去的是3.499999 所以要用减法来判断是否相等
9、位运算 a/2写成 a>>1 a*2写成a<<1 a*2+1写成 a<<1|1 判断奇偶 a&1 一个不省多少时间 但是操作多了 就节省很多时间
另外 位运算的优先级非常的低,注意打括号。
10、用java写题时候 类名必须是Main 复制的时候不要复制包名
11、c和c++输出尽量不要混着用
12、取模运算的题目 最后答案加个 (a+mod)%mod 防止结果出现负数
13、声明数组大小的时候 不要用变量申请 常量才可以申请数组
14、long long类型 8e18也不会爆炸(不要限定最大是1e18,,,会错的)
15、gets不能用 要学会其他方法读入一行字符串 https://blog.csdn.net/holly_Z_P_F/article/details/85247445
ACM中一些细节问题相关推荐
- C++ STL泛型编程——在ACM中的运用
学习过C++的朋友们应该对STL和泛型编程这两个名词不会陌生.两者之间的关系不言而喻,泛型编程的思想促使了STL的诞生,而STL则很好地体现了泛型编程这种思想.这次想简单说一下STL在ACM中的一些应 ...
- ACM中java的使用
ACM中java的使用 转载自http://www.cnblogs.com/XBWer/archive/2012/06/24/2560532.html 这里指的java速成,只限于java语法,包括输 ...
- ACM中java的使用 (转)
ACM中java的使用 这里指的java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目. 1. 输入:格式为:Scanner c ...
- ACM 中常用的算法有哪些? 2014-08-21 21:15 40人阅读 评论(0) 收藏...
ACM 中常用的算法有哪些?作者: 张俊Michael 网络上流传的答案有很多,估计提问者也曾经去网上搜过.所以根据自己微薄的经验提点看法. 我ACM初期是训练编码能力,以水题为主(就是没有任何算法, ...
- [ACM训练] ACM中巧用文件的输入输出来改写acm程序的输入输出 + ACM中八大输入输出格式...
ACM中巧用文件的输入输出来改写acm程序的输入输出 经常有见大神们使用文件来代替ACM程序中的IO,尤其是当程序IO比较复杂时,可以使自己能够更专注于代码的测试,而不是怎样敲输入. C/C++代码中 ...
- ACM中Java使用总结
Java在ACM中的主要应用是大数类[个人见解].做个小总结,留作模板用. 类名默认为Main. 输入: 声明一个输入对象cin;Scanner cin=new Scanner(System.in); ...
- ACM中java快速入门
2019独角兽企业重金招聘Python工程师标准>>> ACM中java快速入门 附: Chapter I. Java的优缺点各种书上都有,这里只说说用Java做ACM-ICPC的特 ...
- acm java题_【转】ACM中java的使用
ACM中java的使用 这里指的java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目. 1. 输入: 格式为:Scanner ...
- oracle存储过程sql拼接日期,Oracle 存储过程中的细节-日期处理
今天在存储过程中用 to_char来查询制定日期是星期几,本以为时没什么问题的,结果出现了自己不想要的问题. select to_char(sysdate,'day','NLS_DATE_LANGUA ...
- SpringMVC学习笔记:springMVC中相关细节
SpringMVC中相关细节 1.什么是MVC? MVC是一种软件架构思想,将软件按照模型.视图.控制器来划分. ①M:模型层:指工程中的javaBean,作用是处理数据.javaBean分为两类:一 ...
最新文章
- eclipse工程中查看android源码
- Python 虚拟环境:Virtualenv
- PAT甲级1060 Are They Equal:[C++题解]字符串处理、有效数字、代码简洁!!!
- FSM(状态机)、HFSM(分层状态机)、BT(行为树)的区别
- Minty Fresh : So You Want To Write An Orchestration?
- 关于Java泛型和擦除
- 机器学习笔记(五)续——朴素贝叶斯算法的后验概率最大化含义
- Apache PIO 操作Excel
- Spark的存储管理
- ubuntu--雷鸟只能收邮件不能发邮件
- Bresenham直线算法与画圆算法
- centOS7中安装tecplot_ex_2015r2_linux64
- AppFabric配置
- 社交电商快速吸粉裂变模式-全新拼团模式
- 微信ANDROID版本解析包错误,终于弄明白为什么手机安装软件会出现“解析包出现问题”...
- Python程序员面试,这些问题你必须提前准备!
- View被遮挡的解决办法
- JMeter 常用的几种断言方法,你会几种呢?
- 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(三):scapy——网络的掌控者
- 百万奖补!2022年湖北省双创战略团队申报条件、材料和支持奖补