编辑器
加入: -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>
a s s e r t ( 条 件 ) assert(条件) assert(条件)
- 如果真就继续
- 如果假就报错
#include<bits/stdc++.h>
可以用啊!!!
pair
—
》
—》
—》
i
n
c
l
u
d
e
<
u
t
i
l
i
t
y
>
include<utility>
include<utility>
m
a
k
e
_
p
a
i
r
make \_ pair
make_pair
空间复杂度
#define N 1e6 开数组!!!
i
n
t
int
int
4
B
4B
4B
−
2147483648
—
2147483647
-2147483648—2147483647
−2147483648—2147483647
c
h
a
r
char
char
1
B
1B
1B
−
128
—
127
-128—127
−128—127
f
l
o
a
t
float
float
4
B
4B
4B
小
数
点
后
6
位
小数点后6位
小数点后6位
d
o
u
b
l
e
double
double
8
B
8B
8B
小
数
点
后
16
位
小数点后16位
小数点后16位
l
o
n
g
i
n
t
long int
longint
4
B
4B
4B
−
2147483648
—
2147483647
-2147483648—2147483647
−2147483648—2147483647
s
h
o
r
t
i
n
t
short int
shortint
2
B
2B
2B
−
32768
—
32767
-32768—32767
−32768—32767
l
o
n
g
l
o
n
g
long long
longlong
8
B
8B
8B
−
9223372036854775808
—
9223372036854775807
-9223372036854775808—9223372036854775807
−9223372036854775808—9223372036854775807
0
- 0的阶乘为1
- 0没有0次方
Runtime Error
- 数组越界过多
- 递归层数过多
- 数学错误(除以0,Mod 0……)
多组数据
清零!!!
long long
爆
i
n
t
int
int的一定开
l
o
n
g
l
o
n
g
long long
longlong!
l
o
n
g
l
o
n
g
long long
longlong和
i
n
t
int
int不能互相转化!
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
二分
满足单调性即可,不用一定是最大的最小
逆序对
乱序变升序(相邻交换)的最少次数。