【颓废/学术/综合篇】小(hei)技(ke)巧(ji) 随时看心情更新哦~

这篇博客汇总了一些编程中的实用小技巧,包括如何生成随机实数、快速读入、优化max操作、对拍代码示例、使用MessageBox、手动编译优化、运算符优先级、离散化方法以及SPJ的编写。旨在提高编程效率和解决问题的灵活性。
摘要由CSDN通过智能技术生成

一些奇怪的小科技,不一定有什么大用场,就是收集一下~

1.随机生成L~R间的实数:

double The_Rand(double L,double R) {
    return rand() / (RAND_MAX*1.0)*(R - L) + L;
}

其中,

rand() / (RAND_MAX*1.0)

就可以产生0~1的随机实数了= =

2.快速读入:

scanf读入还要判断格式字符,比较慢,cin更不必说= =
我们已知读入的一定是整数(或者特定的字符),我们就可以利用飞快的getchar(void)来达到快速输入的目的!
代码(早已烂熟,这样应该是跑的比较快的)(写的码风很奇特大家轻喷):

int getchar(){
    int a=0;char c=getchar();bool f=0; //f用来判断负数
    for(;(c<'0'||c>'9')&&c!='-';c=getchar());//isdigit速度不明
    if(c=='-') f=1,c=getchar();
    for(;c>='0'&&c<='9';c=getchar()) a=(a<<1)+(a<<3)+c-'0';
    if(f) return -a; return a;
}//返回值就是读进来的整数..

3.经实验,最快的max是:

inline int max(const int &a,const int &b){
    if(a>b) return a; return b;
}

而define党们为了避免不必要的冲突,可以看一下自带max的define方法(这里用VS2015的define)

(((a)>(b))?(a):(b))

4.对拍的写法

I 写一个随机的数据生成器,里面加上

freopen("data.in","w",stdout); //第一个文件名无所谓,开心就好

II 找两个拿来对拍的cpp,分别是正确的(暴力or标程)和不一定正确的(自己的代码)
里面分别加上

freopen("data.in","r",stdin); //两个文件都加
freopen("sb.out","w",stdout); //不一定正确的,文件名搞笑的
freopen("smart.out",
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值