zoukankan      html  css  js  c++  java
  • 日常撸题技巧【总结】

    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
    ");
        #endif
    	
    	for(int i=1;i<=10;i++)
    	{
    		scanf("%d",&A[i]);
    	}	
    	for(int i=1;i<=10;i++)
    	{
    		printf("%d  ",A[i]);
    	}
    	printf("
    ");
    	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
    ",a);
    #define pfln(a) printf("%lld
    ",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
    无法编译

  • 相关阅读:
    Jzoj4721 LCS
    Jzoj4721 LCS
    Bzoj3196 二逼平衡树
    Bzoj3196 二逼平衡树
    Jzoj4715 树上路径
    Jzoj4715 树上路径
    031下一个排列
    汉诺塔问题【递归】
    求全排列和组合问题
    030串联所有单词并匹配
  • 原文地址:https://www.cnblogs.com/shengwang/p/9719159.html
Copyright © 2011-2022 走看看