收集一些关于OI/ACM的奇怪的东西……
一、代码:
1、求逆元(原理貌似就是拓展欧几里得,要求MOD是素数):
int inv(int a) {
if(a == 1) return 1;
return ((MOD - MOD / a) * inv(MOD % a)) % MOD;
}
2、底层优化(正确性未验证):
int cmp(int a) {if (!a) return 0; return a < 0 ? -1 : 1;}
int cmp(int a) {return (a >> 31) + (-a >> 31 & 1);}
int abs(int x) {return x > 0 ? x : -x;}
int abs(int x) {int y = x >> 31; return (x + y) ^ y;}
x = (x == a ? b : a)
x ^ = a ^ b
//等于0返回0,大于0返回1,小于0返回-1
int sgn(double x) {
if(fabs(x) < EPS) return 0;
return x > 0 ? 1 : -1;
}
int sgn(double x) {
return (x > EPS) - (x < -EPS);
}
int fastMax(int x, int y) {return (((y-x)>>(32-1))&(x^y))^y;}
int fastMin(int x, int y) {return (((y-x)>>(32-1))&(x^y))^x;}
3、扩栈,这玩意儿在OJ上用能防爆?
#pragma comment(linker, "/STACK:1024000000,1024000000")
4、神速读入fread
struct Reader {
static const int MSIZE = 65536;
char buffer[MSIZE], c;
int l = 0, r = 0;
char readchar() {
if(l == r) {
l = 0;
r = fread(buffer, 1, MSIZE, stdin);
}
return buffer[l++];
}
int readint() {
c = readchar();
while(!isdigit(c)) c = readchar();
int res = 0;
while(isdigit(c)) res = res * 10 + c - '0', c = readchar();
return res;
}
} reader;
二、神牛blog
三、专题
动态规划系列:
字符串系列:
计算几何系列:
数学系列:
四、(伪)算法教学
字符串系列:
数学系列:
ZJU2004 Commedia dell'arte - 八数码问题有解的条件及其推广
组合计数系列:
数论系列:
数据结构系列:
Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
动态规划系列:
图论系列:
JAVA:
其他:
五、OI/ACMer感谢贴/退役贴/经验贴/等等:
六、解题报告
GDCPC2015题解 by lby@SYSU_Spirit_Moon
GDCPC2016题解 by lby@SYSU | Asiimov
七、其他:
数据结构动态演示1:http://www.comp.nus.edu.sg/~stevenha/visualization/
数据结构动态演示2:http://www.cs.usfca.edu/~galles/visualization/Algorithms.html
收集一些关于OI/ACM的奇怪的东西……的更多相关文章
- 【封装工程】OI/ACM常用封装
前言 笔者有的时候无聊,就将一些奇怪的东西封装起来. 范围主要是在\(OI\)或者\(ACM\)中的常见数据结构等. 随着笔者的能力的提升,可能会对原来的封装程序进行修改,并且保留原来的版本. [ST ...
- BZOJ-3670 动物园 KMP+奇怪的东西
YveH爷再刷KMP,DCrusher看他刷KMP,跟着两个人一块刷KMP... 3670: [Noi2014]动物园 Time Limit: 10 Sec Memory Limit: 512 MB ...
- OI/ACM 刷题网站 人气OJ简介
SPOJ简介 SPOJ是波兰最为出色的Online Judge之一,界面和谐,题目类型也非常丰富,适合有一定基础的选手练习,对高手而言也是个提高能力的良好平台. SPOJ题目分类:class ...
- OI/ACM最全卡常大招
NO.10: 循环展开: 在缓存和寄存器允许的情况下一条语句内大量的展开运算会刺激 CPU 并发(蛤?这是个什么原理,算了,反正写了没坏处就这么写吧) NO.9: 特殊运算优化:(或许这真的没用) 取 ...
- [打基础]OI/ACM基本功&一些小功能的实现&一些错误(持续更新)
基本功 前导0 如题,有时候需要把3输出成03这样子,可以调用 cout.width(x); ,x表示以几位,用 cout.fill(x); 来给出前导填充的内容,一般x以char的形式给出 例如可以 ...
- IO/ACM中来自浮点数的陷阱(收集向)
OI/ACM中经常要用到小数来解决问题(概率.计算几何等),但是小数在计算机中的存储方式是浮点数而不是我们在作数学运算中的数,有精度的限制. 以下以GUN C++为准,其他语言(或编译器)也差不了多少 ...
- 第七届ACM趣味程序设计竞赛第四场(正式赛) 题解
Final Pan's prime numbers 题目连接: http://acm.uestc.edu.cn/#/problem/show/1272 题意 给你n,要求你在[4,n]范围内找到一个最 ...
- ACM录 之 输入输出。
—— 简单介绍一下ACM里面的输入输出... —— 主要说C++的输入输出(其实其他的我不会...). —— C++里面有输入输出流,也就是cin和cout,用起来也算是比较方便吧... —— 但是, ...
- ACM hust 2.1
来自咸鱼王的呻吟 http://www.xiami.com/song/3599639?spm=a1z1s.3521865.23309997.1.PbLu7E 配合咸鱼食用效果更佳(右键新窗口打开) 题 ...
随机推荐
- 【小白学游戏常用算法】二、A*启发式搜索算法
在上一篇博客中,我们一起学习了随机迷宫算法,在本篇博客中,我们将一起了解一下寻路算法中常用的A*算法. 通常情况下,迷宫寻路算法可以使用深度优先或者广度优先算法,但是由于效率的原因,不会直接使用这些算 ...
- Gollum 安装笔记
环境Ubuntu server 14.04 sudo apt-get install ruby1.9.1 ruby1.9.1-dev make zlib1g-dev libicu-dev build- ...
- ORACLE操作列
一.下面介绍oracle数据库操作列的CURD操作 --学生表 STUDENT CREATE TABLE STUDENT( ID NUMBER(18) NOT NULL, NAME VARCHAR2( ...
- MySQL性能分析及explain的使用
MySQL性能分析及explain用法的知识 1.使用explain语句去查看分析结果 如explain select * from test1 where id=1;会出现:id selectty ...
- JavaScript:Location
读取.设置url 在url中输入:http://www.cnpiont.com:8090/index.html?user=like&pwd=123#title Console输入: docum ...
- 学习Http协议和当下主流的Rx+Retrofit的主流框架
所有的劳累都会烟消云散了.不只在生活上,也对我的心态上发生了翻天覆地的变化.在和她在一起之前,我总觉得自己很小,不会去站在别人的角度替别人思考问题,没事就乱发脾气,抑或是一直沉迷于游戏.而和她在一起后 ...
- Mysql 数据库之常用命令[更新中...]
连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 创建数据库:create database [库名] 例如:create database jtest; 显示所有数据库: s ...
- http请求,普通的get和post方法
在http://www.cnblogs.com/ITtangtang/p/3968093.html的基础上封装了一下get和post请求的常用方法, 虽然很简单,也晒晒 import org.apac ...
- javascript立即执行函数
javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花;当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解. ( ...
- android ANR产生原因和解决办法【转】
ANR (Application Not Responding) ANR定义:在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(AN ...
gbr的馒头屋