算法
qq502130297
这个作者很懒,什么都没留下…
展开
-
计算汉明重量
计算汉明重量原创 2022-06-13 17:16:38 · 278 阅读 · 1 评论 -
有关查找字符串中最长不重复子串
有关查找字符串中最长不重复子串1.List的contains(obj)方法实际上,List调用contains(Object obj)方法时,会遍历List中的每一个元素,然后再调用每个元素的equals()方法去跟contains()方法中的参数进行比较,如果有一个元素的equals()方法返回true则contains()方法返回true,否则所有equals()方法都不返回true,则ontains()方法则返回false。因此,重写了Course类的equals()方法,否则,testListC原创 2021-03-27 16:10:26 · 303 阅读 · 0 评论 -
2021-03-26
深度优先遍历常用步骤如下排列问题使用一个q[]数组保存排列的方案bool st[] 用来判断这种方案是否合法。1、dfs(int u) u代表搜索的第几位。2、if() 结束判断的条件3、枚举所有可能的情况,一般是使用for循环for(int i=1;i<=3;i++)if(st[i]) continuest[i] = true;4、如果合法则需要将其标记访问过防止重复访问,调用递归dfs(u+1)5、恢复现场,恢复调用递归之前的条件即将访问st[i]=false;地图搜索原创 2021-03-26 19:14:43 · 69 阅读 · 0 评论 -
欧拉线性筛素数
素数打表任何合数都可以由素数相乘得到,所以我们就是要将合数筛选掉。但某些数可能会被多次筛选所以我们就要使用最小的素数对其进行筛选。以保证只会被最小素数筛选一遍。保存素数表是递增的。int main(){ for(int i=2;i<=N;i++){ if(visted[i]==0){//初始全部为0,就是通过visted数组进行素数筛选 num[cnt++]=i; } for(int j=0;j<cnt&&i*num[j]<N;j++){ v原创 2021-03-26 16:29:15 · 42 阅读 · 0 评论 -
快速幂。。。
快速幂主要思想:通过将指数化为二进制的形式,每一次将指数部分缩小一半,让底数相乘,这样相乘的次数就会每次缩小一般。当二进制数的位数为0时不用相乘,可以跳过,因为任何数的0次幂都是1,每次将底数开平方。# include<stdio.h>int a,b,p;int quick_mi(int a,int b,int p){ int ans = 1; while(b){ if(b&1){ ans = ans*b%p; } b<<=1; b =原创 2021-03-26 09:49:08 · 39 阅读 · 0 评论 -
快速排序。
快速排序void quick_sort(int l,int r){ if(l>=r) return; int mid = num[(l+r)>>1],i=l-1,j=r+1; while(i<j){ do i++;while(num[i]<mid); do j--;while(num[j]>mid); if(i<j){ temp = num[i]; num[i] = num[j]; num[j] = temp; } }原创 2021-03-25 20:47:18 · 43 阅读 · 0 评论 -
查找字符串
查找字符串输入给定字符集合,输入字符看字符串是否存在集合中思路:通过一个二维数组将字符串存入这个数组中,每一行数组存一个字符,并使用一个view标记末端字符。# include<stdio.h>const int N=1e5+5;int p[N][27],view[N],cnt=1;p数组存放字符串 view标记字符串的结束位置, cnt控制换行char s[N]; 输入字符串void add(char *s){ int j=0; for(int i=0;s[i原创 2021-03-25 19:22:24 · 51 阅读 · 0 评论