• 大模板!!!


            NOIP大模板(第一版)

    一.文件输入,输出

     1 #include<cstdio>
     2 using namespace std;
     3 int main(void)
     4 {
     5     freopen("","r",stdin);
     6     freopen("","w",stdout);
     7     //...
     8     fclose(stdin);
     9     fclose(stdout);
    10     return 0;
    11 }

    二.输入,输出优化!!!(快读&快输)  

      (1)快读

        1.整数读取 (需要调用 <iostream>  <cstdio>

    inline int read()
    {
        int x=0,w=0;
        char ch=0;
        while(!isdigit(ch)) w|=ch=='-',ch=getchar();
        //while(isdigit(ch)) x=(x<<1)+(x<<3)+(ch^48),ch=getchar();以前以为位运算能快点,但问了大佬才发现,其实没啥差别
        while(isdigit(ch)) x=x*10+ch-'0',ch=getchar();
        return w?-x:x;
    
    }

        2.浮点数读取(需要调用 <iostream>  <cstdio>

     1 inline double  read()
     2 {
     3     int w=0,y=0;
     4     double x=0,t=0.1;
     5     char ch=0;
     6     while(!isdigit(ch)) w|=ch=='-',ch=getchar();
     7     while(isdigit(ch)) x=x*10+(ch^48),ch=getchar();
     8     y|=ch=='.';
     9     if(y)
    10     {
    11         ch=getchar();
    12         while(isdigit(ch)) x+=(ch^48)*t,t*=0.1,ch=getchar();
    13     }
    14     return w?-x:x;
    15 }

      (2)快输

       1.整数输出(需要调用 <iostream>  <cstdio>

     1 inline void write(int x)
     2 {
     3     if(x<0)
     4     {
     5         putchar('-');
     6         x=-x;
     7     }
     8     if(x>9) write(x/10);
     9     putchar(x%10+'0');
    10 }

      2.浮点数输出(暂无)

     三.数论

      (1)GCD(最大公约数)

     1 inline int GCD(int a,int b)
     2 {
     3     while(b!=0)
     4     {
     5         int temp=a;;
     6         a=b;
     7         b=temp%a;
     8     }
     9     return a;
    10 }

      (2)LCM(最小公倍数)

    1 inline int LCM(int a,int b)
    2 {
    3     return a/GCD(a,b)*b;
    4 }

      (3)拓展欧几里得

    四.图论

      (1)并查集

    int Father[];//建立并查集
    inline void Set(int x)//初始化
    {
        for(int i=1;i<=x;++i) Father[i]=i; 
    }
    int Find(int x)//查找x的祖先
    {
        if(Father[x]!=x) Father[x]=Find(Father[x]);
        return Father[x];
    }
    inline void Unit(int x,int y)
    {
        Father[y]=x;//二者有公共祖先
    }

     

  • 相关阅读:
    Linux 软件安装到哪里合适,目录详解
    python如何判断1个列表中所有的数据都是相等的?
    web接口开发基础知识-什么是web接口?
    MIME TYPE是什么?
    jenkins展示html测试报告(不使用html publisher)
    【转】Java虚拟机的JVM垃圾回收机制
    Map 排序
    sql in 和 exist的区别
    distinct和group by 去掉重复数据分析
    sql执行机制
  • 原文地址:https://www.cnblogs.com/Blacktears/p/9931620.html
Copyright © 2020-2023  润新知