编辑器
加入: -Wall -Wextra
对拍
@echo off
:loop
make//生成数据的CPP
bf//暴利CPP
dance//正解CPP
fc dance.out bf.out//比较
if errorlevel 1 pause
goto loop
记得加freopen
记事本中打,然后把名字换为: 此处省略.bat
数据生成
#include<cstdlib>
#include<ctime>
int random(int n){
return (long long)rand()*rand()%n;
}
int main(){
freopen("1.in","w",stdout);
srand((unsigned)time(0));
//…具体内容…
}
随机贪心
int a[N],n;
random_shuffle(e+1,e+n+1);
priority_queue
#include<tr1/unordered_map>
#include<tr1/unordered_map>
using namespace tr1;
unordered_map<…,…>…;
其余和map一样
#include<assert.h>
assert(条件)assert(条件)assert(条件)
- 如果真就继续
- 如果假就报错
#include<bits/stdc++.h>
可以用啊!!!
pair
—》—》—》include<utility>include<utility>include<utility>
make_pairmake \_ pairmake_pair
空间复杂度
#define N 1e6 开数组!!!
intintint 4B4B4B −2147483648—2147483647-2147483648—2147483647−2147483648—2147483647
charcharchar 1B1B1B −128—127-128—127−128—127
floatfloatfloat 4B4B4B 小数点后6位小数点后6位小数点后6位
doubledoubledouble 8B8B8B 小数点后16位小数点后16位小数点后16位
longintlong intlongint 4B4B4B −2147483648—2147483647-2147483648—2147483647−2147483648—2147483647
shortintshort intshortint 2B2B2B −32768—32767-32768—32767−32768—32767
longlonglong longlonglong 8B8B8B −9223372036854775808—9223372036854775807-9223372036854775808—9223372036854775807−9223372036854775808—9223372036854775807
0
- 0的阶乘为1
- 0没有0次方
Runtime Error
- 数组越界过多
- 递归层数过多
- 数学错误(除以0,Mod 0……)
多组数据
清零!!!
long long
爆intintint的一定开longlonglong longlonglong!
longlonglong longlonglong和intintint不能互相转化!
char
int s[100];
scanf("%s",s+1);
预处理
记住啊!!!
ST表
最大,最小,异或,GCD ……
全局long long
#define int long long
signed main(){
return 0;
}
括号匹配!!!
调试
cerr<<1;//不是cout
比较
const Node &a;//这样更快
#include < deque >
- 允许访问下标
- 每次操作完后,第一位下标都为0
二分
满足单调性即可,不用一定是最大的最小
逆序对
乱序变升序(相邻交换)的最少次数。