日常撸题技巧【总结】

C++ 模板

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
const int maxn=1e6+5;

int main()
{
    return 0;
}

freopen的用法

#include <bits/stdc++.h>
#define LOCAL

int A[11];
int main(int argc,char **argv)
{
    #ifdef LOCAL
    freopen("C:\\Users\\ssw\\Desktop\\a.txt", "r", stdin);
    freopen("C:\\Users\\ssw\\Desktop\\o.txt", "w", stdout);
    printf("hhh\n");
    #endif
    
    for(int i=1;i<=10;i++)
    {
        scanf("%d",&A[i]);
    }   
    for(int i=1;i<=10;i++)
    {
        printf("%d  ",A[i]);
    }
    printf("\n");
    fclose(stdin);
    fclose(stdout);
    return 0;
}


更牛逼的模板

#include <bits/stdc++.h>
  
using namespace std;
typedef pair<double,int> P;
  
const int maxn = 1e6+100;
const int INF = 0x3f3f3f3f;
#define PI 3.1415926
#define sc(a)  scanf("%d",&a)
#define pfs(a) printf("%d ",a)
#define pfn(a) printf("%d\n",a);
#define pfln(a) printf("%lld\n",a);
#define rep(n) for(int i = 0; i < n; i++)
#define per(n) for(int i = n-1; i >= 0; i--)
#define mem(a,x) memset(a,x,sizeof(a))

int main()
{
    return 0;
}

字符串

# 与printf将输出定位到屏幕相比,sprintf将输出定位到字符串
int sprintf( char *buffer, const char *format [, argument] ... );

# 同样地,很容易知道sscanf的意思是把字符串当做输入源
sscanf(char *buffer, const char *format [, argument] ... )

# C++字符串和其他类型的转换可以借助StringStream来完成
StringStream sin(string s);
int a,int b;
sin>>a>>b;

# C读取一行字符串、输出一行字符串
gets(char *s)
puts(char *s)

# C++ 读取一行字符串、输出一行字符串
getline(cin,s);
cout<<s;

C++ 提高读取数据速度

ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);

注意不要混用printf和cout即可

1. 无穷大的表示

有两种方法

  • 0x7fffffff
  • 0x3f3f3f3f

方案1不满足 1个无穷大加另一个无穷大仍然为无穷大的性质
而方案2满足,同时0x3f3f3f3f 是一个很大的数字,和0x7fffffff 是一个数量级的。

同时 0x3f3f3f3f还可以用memset初始化,memset是基于字节进行初始化的。

STL容器

  • vector
  • statck
  • queue
  • map
  • set
  • priority_queue
  • deque
  • stirng
  • pair
  • 里面的一系列常用算法

一些数学符号

b|(a-b),这个竖线是整除符号,数论中用的,表示b整除(a-b),也就是(a-b)是b的倍数
三个横线表示同余

PE在信息学竞赛及其训练中是Presentation Error的缩写,代表你的程序虽然测试点的输出数据对了,但是输出格式错误。比较常见的错误有换行错误,多输出、少输出空格等。一般来讲出现PE时,你的程序离AC(accepted)不远了。

一些简写

OJ
Online Judge
在线判题系统

AC
Accepted
通过

WA
Wrong Answer
答案错误

TLE
Time Limit Exceed
超时

OLE
Output Limit Exceed
超过输出限制

MLE
Memory Limit Exceed
超内存

RE
Runtime Error
运行时错误

PE
Presentation Error
格式错误

CE
Compile Error
无法编译

转载于:https://www.cnblogs.com/shengwang/p/9719159.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值