【20181109】NOIP注意项

本文分享了C++编程中的实用技巧,包括编辑器配置、数据生成、随机化算法、空间复杂度分析、常见错误排查及多组数据处理策略,旨在帮助程序员提升编程效率和代码质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编辑器

加入: -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&lt;utility&gt;include&lt;utility&gt;include<utility>
make_pairmake \_ pairmake_pair



空间复杂度

#define N 1e6   开数组!!!

intintint       4B4B4B      −2147483648—2147483647-2147483648—214748364721474836482147483647
charcharchar       1B1B1B      −128—127-128—127128127
floatfloatfloat       4B4B4B      小数点后6位小数点后6位6
doubledoubledouble       8B8B8B      小数点后16位小数点后16位16
longintlong intlongint       4B4B4B      −2147483648—2147483647-2147483648—214748364721474836482147483647
shortintshort intshortint       2B2B2B      −32768—32767-32768—327673276832767
longlonglong longlonglong       8B8B8B      −9223372036854775808—9223372036854775807-9223372036854775808—922337203685477580792233720368547758089223372036854775807



0

  • 0的阶乘为1
  • 0没有0次方


Runtime Error

  • 数组越界过多
  • 递归层数过多
  • 数学错误(除以0,Mod 0……)



多组数据

清零!!!



long long

intintint的一定开longlonglong longlonglong
longlonglong longlonglongintintint不能互相转化!



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



二分

满足单调性即可,不用一定是最大的最小



逆序对

乱序变升序(相邻交换)的最少次数。



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值