首页 > 其他分享 >究极卡常

究极卡常

时间:2022-11-14 18:35:32浏览次数:61  
标签:究极 ch char p1 static 卡常 buf getchar

1. register&static&inline

  1. 在定义局部非char类型的变量时在前面加入register

  2. 在局部char类型变量前加入static

  3. 在非主函数和非递归函数前加入inline

2. 火车头传送门(外网评测)

3. 快读

inline int read(){
    register int s=0,w=0;
    static char ch=getchar();
    for(;!isdigit(ch)ch=getchar(););
    for(;isdigit(ch);ch=getchar())s=(s<<1)+(s<<3)+(ch^48);
    return w?-s:s;
}

4. 快读优化

快读其实类似于字符串处理方式读取数据

由于getchar()时间复杂度低才能提升运行速度

但是可以利用fread()这个函数读入指针,在缓存区读取数据

这样一来读取字符的速度也就提上来了

虽然只能用文件读写调试,但是能让程序跑得飞快!

inline char getchar(){
    static char buf[1000000],*p1=buf,*p2=buf;
    return p1==p2&&(p2=(p1=buf)+fread(buf,1,1000000,stdin),p1==p2)?EOF:*p1++;
}

5. 手动分配运行空间(手动开栈)

#pragma comment(linker,"/stack:200000000")
#pragma GCC optimize("Ofast,no-stack-protector")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")

标签:究极,ch,char,p1,static,卡常,buf,getchar
From: https://www.cnblogs.com/As-Snow/p/16889920.html

相关文章

  • 从 Ynoi2011 初始化 看卡常
    一般情况下,程序运行消耗时间主要与时间复杂度有关,超时与否取决于算法是否正确。但对于某些题目,时间复杂度正确的程序也无法通过,这时我们就需要卡常数,即通过优化一些操作的......
  • Mysql索引(究极无敌细节版)
    参考了:https://www.jianshu.com/p/ace3cd6526c4推荐up主https://space.bilibili.com/377905911推荐书籍《mysql是怎样运行的》推荐极客时间《MySQL实战45讲》——林晓......
  • IDEA快捷键究极整合,建议收藏!
    自动代码常用的有fori/sout/psvm+Tab即可生成循环、System.out、main方法等boilerplate样板代码。例如要输入for(Useruser:users)只需输入user.for+Tab再比如,要输......
  • 如何在 XJOI 订正卡常题(详细揭秘)
    在XJOI订正卡常题是怎么回事呢?那么卡常题为什么会被在XJOI订正,相信大家都很好奇。大家可能会感到很惊讶,卡常题为什么会被在XJOI订正呢?但事实就是这样,小编也感到非常......
  • Linux+Proton玩火影忍者究极风暴4指南
    首先你需要Proton7.0withoutSteam,使用说明和下载链接看这里https://www.cnblogs.com/tubentubentu/p/16716612.html启动游戏的命令“Proton7.0withoutSteam主程序路......
  • 卡常小技巧
    那些也许有用的卡常小技巧作者卡Ynoi卡吐了一,代码优化1.inline其实还是有点用的。不带inline:带inline:2.register注意有些不能加,但优化程度还是很大的。不带re......