![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM算法
文章平均质量分 52
ACM算法
�我在
这个作者很懒,什么都没留下…
展开
-
二进制枚举的两种写法
二进制枚举,就是说对于一个上限二进制数(一般来说每位都为1),枚举他所有小于等于它的所有二进制数,也可以用来表示这个二进制数的所有子集,可以用来枚举一个数列的所有可能子集,ACM的常用枚举技巧之一。下面是具体代码:#include<bits/stdc++.h>using namespace std;int main(){ int num=8;//表示枚举的位置个数 //写法1: for(int i=0;i<(1<<num)-1;++i){//i为原创 2021-05-08 17:25:34 · 764 阅读 · 0 评论 -
Codeforces Round #707 Div2 1501C. Going Home
题意:给我们一个长度为n(4<=n<=2e5)的数组a(0<=a[i]<=2.5e6),然后需要我们判断是否存在四个下标x,y,z,w,使得a[x]+a[y]=a[z]+a[w],存在则输出yes,否则no.题解:简单数论其实这题就是两个for循环就可解决,看似n的数据范围为2e5,两个for循环一般来说肯定是超时的,然而,注意看a[i]的数据范围,只有2.5e6,那么对于2e5个数而言,当n的数据量比较大的时候,例如接近2e5时,那么在考虑a[i]的范围,这个时候就必然会出原创 2021-03-15 10:39:59 · 142 阅读 · 0 评论 -
筛素数:埃氏筛,线性筛(欧拉筛)
最快在O(n)复杂度筛出n以内的所有素数原创 2021-03-13 21:09:37 · 260 阅读 · 0 评论 -
牛客 题目ID13228 倒水 题解 贪心思想
题解: 这题最开始是朝着二分的方向去想的,对温度进行二分求解答案,但想了好久,感觉二分的check函数不好写,而且感觉精度也可能会有比较大的丢失。 正解是贪心思想,先将n杯水的最大温度maxT和最小温度minT先存起来,将水缸和n杯水杯里的水全部混在一起,会得到一个混合后的温度endT,将这个温度和之前得到最大温度以及最小温度进行比较,这里.原创 2021-02-05 00:16:59 · 311 阅读 · 0 评论 -
ACM 基本排序算法,归并排序(求逆序对)
归并排序主要运用到的的思想:分治、递归功能:1.数组进行排序。 2.计算数组中的逆序对的个数。时间复杂度:稳定的O(nlogn)空间复杂度:O(n)附上模板代码:#include<bits/stdc++.h>using namespace std;long long Merge(int a[],int b[],int s,int m,int e){ int i=s,j=m+1,k=s; long long ans=0; while(i<=m &原创 2020-09-29 12:26:55 · 309 阅读 · 0 评论