1.卡常

\[---总有人以为自己比编译器聪明 \;\;\;by\;\;bezel
\]

我们可能确实没有编译器聪明,但是,为了防止CCF的老人机出现什么问题,卡一卡常还是有必要的。

如果实在被逼无奈,你什么

\[register, inline, fread
\]

都能往上写

inline void qaq(int x)
{
//````````
for(register int i = 1; i <= x; i++)
//`````
}

2.快读

这部分其实也可以算到卡常里,但是这个其实更常用。

就比如,我曾经用\(register\)和快读把一个1.5s的程序硬生生卡到了947ms,然后就多过了一个点。。。

或者可以把一个程序卡掉700+ms

主要思想就是,用\(getchar\)和\(putchar\)快速读入替代\(cin,cout\)甚至\(scanf\)或\(printf\)。

当然,快读里也可以卡常。

#define ll long long
#define li inline li void read(ll &x)
{
char s = getchar();
x = 0;
ll f = 1;
while(s < '0' || s > '9'){if(s == '-')f = -1; s = getchar();}
while(s >= '0' && s <= '9'){x = (x << 3) + (x << 1) + (s ^ 48); s = getchar();}
x *= f;
}

对于语句

x = (x << 3) + (x << 1) + (s ^ 48);

等价于

x = x * 10 + s - '0';

只是位运算比四则运算快,所以就小卡一下。

这里也直接把输出优化的代码给出

#define ll long long
#define li inline li void print(ll x)
{
if(x < 0){putchar('-'); x = -x;}
if(x > 9)
print(x / 10);
putchar(x % 10 + 48);
}

持续更新中!

一些OI常用小技巧啊的更多相关文章

  1. Matlab常用小技巧及部分快捷键

    Matlab常用小技巧一: 1. m文件如果是函数,保存的文件名最好与函数名一致,这点都很清楚.不过容易疏忽的是,m文件名的命名尽量不要是简单的英文单词,最好是由大小写英文/数字/下划线等组成.原因是 ...

  2. javascript的40个网页常用小技巧

    下面是javascript的40个网页常用小技巧,对网站开发人员相信会有帮助.1. oncontextmenu="window.event.returnValue=false" 将 ...

  3. HBase Shell Get 操作常用小技巧

    在工作中,有时候只是想简单看下HBase表某些关键指标的值,这个时候总不能现写Java代码去查看,以下几个小技巧你可能会经常用到. 1. 某行有许多列,只想获取指定2~3列的数据 hbase> ...

  4. 今天整理了几个在使用python进行数据分析的常用小技巧、命令。

    提高Python数据分析速度的八个小技巧 01 使用Pandas Profiling预览数据 这个神器我们在之前的文章中就详细讲过,使用Pandas Profiling可以在进行数据分析之前对数据进行 ...

  5. Scala的常用小技巧

    1."RichString.java".stripSuffix(".java") == "RichString" "http:// ...

  6. Visual Studio常用小技巧一:代码段+快捷键+插件=效率

    用了visual studio 5年多,也该给自己做下备忘录了.每次进新的组换新的电脑,安装自己熟悉的环境又得重新配置,不做些备忘老会忘记一些东西.工具用的好,效率自然翻倍. 1,代码段 在Visua ...

  7. 使用JavaScript在项目前台开发的58种常用小技巧

    oncontextmenu="return false" :禁止右键 onselectstart="return false" : 禁止选取 onpaste = ...

  8. PowerDesigner 的常用小技巧 转

    中小 订阅 修改外键命名规则 选择Database—>Edit Current DBMS选择Scripts->Objects->Reference->ConstName可以发现 ...

  9. iOS 知识-常用小技巧大杂烩

    原文链接:http://www.jianshu.com/p/7c3ee5e67d03. 自己看的. 1,打印View所有子视图 po [[self view]recursiveDescription] ...

  10. windows7实用快捷键 分类: windows常用小技巧 2014-04-18 14:34 169人阅读 评论(0) 收藏

    几个比较实用的快捷键 windows键:简写成win win+   方向键上下,可以使当前窗体放大或缩小 win+   方向键左右,可以使当前窗体悬靠在左边或右边 win+Home   仅保留当前窗体 ...

随机推荐

  1. mysql索引失效的情况七字口诀:“模型数空运最快”

    mysql索引失效的情况 七字口诀:"模型数空运最快" 模:使用like进行模糊查询的时候,以百分号%开头的,索引就会失效. 型:代表数据类型,数据类型错误了,索引也会失效. 数: ...

  2. java程序设计期末复习总结&复盘

    java复习 java的特点:简单.面向对象.可移植.跨平台.分布式.多线程.稳定安全.高性能 一个数组可以存放许多不同类型的数值. (F) StringBuffer类是线程安全的,StringBui ...

  3. 【ElasticSearch】突破深度分页限制的分页方案

    一.场景需求 最近在忙一个新的项目,数据源是ES,但是功能就是对文档进行翻页查询 ES提供了分页查询,就是from + size深度查找,但是使用有限制,只能在1万条内 我和同事的意见是1万条之后的数 ...

  4. 【Java】Springboot + Redis +(AOP & 响应外切)切面实现字典翻译

    使用案例演示: 先开发了一个简单的Demo: 普通DTO类注解翻译的字段和翻译来源 在需要翻译的方法上注解@Translate 接口返回结果: 框架思路: 1.标记的注解需要通过AOP切面在调用的时候 ...

  5. 【Java】Input,Output,Stream I/O流 04 对象流&序列化

    对象流,序列化机制 ObjectInputStream ObjectOutputStream 序列化 对象 写入转 数据 持久化 反序列化 数据 读取转 对象 活化 - 任何实现了Serializab ...

  6. 【Node】下载安装(Linux)

    不要使用源码包安装!!!编译时间太长!! 不要使用源码包安装!!!编译时间太长!! 不要使用源码包安装!!!编译时间太长!! 使用Node源码包安装 这里使用的是源码包安装 Node官网地址:也不是官 ...

  7. spring创建 JavaWeb

  8. vite创建的react项目如何兼容低版本安卓,低版本安卓不支持es6语法

    Vite 是一个现代化的前端构建工具,默认情况下,它会生成基于 ES6+ 的代码.这对于大多数现代浏览器来说是没有问题的,但对于一些较旧版本的安卓浏览器可能会遇到兼容性问题. 为了使 Vite 创建的 ...

  9. CC2530系列课程 | IAR新建一个工程

    之前录制了无线传感网综合项目实战课程,这个课程非常适合应届毕业生和想转行Linux的朋友,用来增加项目经验. 其中一部分内容是关于CC2530+zigbee的知识,后面会更新几篇关于cc2530的文章 ...

  10. DigitalOcean Control (doctl) 使用方法

    安装 macOS brew install doctl Ubuntu sudo snap install doctl # 授予 snap 应用额外权限 sudo snap connect doctl: ...