本文为一枚学渣整理的学习算法与参与竞赛过程学习到的知识(会定期修改)。
时间测试
#include<iostream>
#include<time.h>
using namespace std;
int main()
{
int atbegin=clock();
//程序
int atend=clock();
cout<<"\n运行时间:"<<bend-abegin<<"毫秒";
}
暴力求解
回溯法
- 8皇后问题
- 2n皇后
- 数独
数论部分
欧几里得算法(最大公约数)
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b); //辗转相除
}
埃拉托色尼-筛选法(筛选数字)
1.素数筛选
#define maxn 100000
void shai()
{
int su[maxn]={0};
int t=(int) sqrt(max);
for(i=3;i<=t;i++)
{
if(!prime[i])
for(j=i*i;j<=max;j=j+2*i)
prime[j]=1;
}
}
2.无平方因子数
- 参考资料: 《算法竞赛入门经典》(第二版)(训练指南)(习题与解答)《算法艺术与信息学竞赛》 《挑战编程:程序设计竞赛训练手册》《算法》(第四版)《算法导论》(第三版)(中文/英文) 《数据结构与算法分析》(C语言描述)《挑战程序设计竞赛》(第二版)《挑战程序设计竞赛2》《挑战程序设计竞赛》(第二版)
- Author:TianMaXingKong2003
- 最后附上WJMZBMR学神的一句话:欢迎鄙视 orz