【★★★★★模板专区★★★★★】

本文提供了一套模板集合,包括排序、文件读取、输入输出、最大公因数计算等核心功能,旨在帮助读者高效解决常见编程问题。通过实例演示,深入浅出地介绍了排序算法的优化、快速读入技巧、并查集操作与路径压缩,以及最大公因数的多种计算方法,旨在提升编程效率与理解能力。

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

模板们。。。

注释

这是一个注释。恩。这些模板是给我自己复习用滴,所以只能在我愚笨的认知范围内尽量精妙了。。。。

所有模板默认有加基本头文件如下:

 

#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cstring>
using namespace std;

 

每个模板都有效果,代码和警告,需要的还会配上其他辅助的东西。。

 

 

排序模板

#include<algorithm>
sort(a+1,a+n+1);

 

   柯嵩宇大神说sort在编译器中会判断n的大小并选择合适的排序方式,效果比qsort好。

 

文件读入读出

 

freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
不需要写freclose这种不存在的东东

 

   输出文件也是用freopen打开不是close。。。。。

 

快速读入

 

inline int read()  
{  
    int x=0,f=1;char ch=getchar();  
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}  
    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}  
    return x*f;  
}  

 

并查集寻找祖宗与路径压缩

 

int find(int x){return x==father[x]?x:father[x]=find(father[x]);} 背吧

 

  黄巨大的代码一定是很精妙滴。虽然我看不懂。

 

快速读入

inline void readInt(int &x) {
        char cc; bool sign = false;
        for (cc = getchar(); cc<'0' || cc>'9'; cc = getchar()) if (cc=='-') sign = true;
        for (x = cc-'0',cc = getchar(); cc>='0' && cc<='9'; cc = getchar()) x = x*10+cc-'0';
        sign && (x=-x);
}
背吧。。

 

  cc是因为。。我原来的代码里面有个c了。。。

 

最大公因数

//单个数的...

(1)正常的
/*int gcd(int a,int b)
{
   while (b!=0)
  {
      int tmp=a%b;
      a=b;b=tmp;
  }
  return a;
}
*/
(2)精妙的
int gcd(int x, int y) { return y == 0 ? x : gcd(y, x % y); }
//多个数的...
O(nlog常数):
从第三个数开始,每个数和前面的数的gcd求gcd。。。

求gcd时间复杂度是O(log常数),线性扫描是O(n) ,所以如上。。

 

 

 

 

  

 

转载于:https://www.cnblogs.com/seekdreamer/p/3808535.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值