
笔记
ninkyang(◕ˇ∀ˇ◕)
这个作者很懒,什么都没留下…
展开
-
ACM每周总结(upper_bound和lower_bound)
acm每周总结(主要是upper_bound和lower_bound)今周做题时遇到一个排序找中位数的题,做了几次都是超时,感觉很新颖,题目如下:题目描述给出一个长度为N的非负整数序列Ai,对于所有1 ≤ k ≤ (N + 1) / 21≤k≤(N+1)/2,输出A1,A1∼A3,…,A1∼A2k−1的中位数。即前1,3,5,…个数的中位数。输入格式第1行为一个正整数NN,表示了序列长度。第2行包含NN个非负整数A_i (A_i ≤ 10^9)Ai(Ai≤109)。输出格式共原创 2021-11-28 22:07:04 · 877 阅读 · 0 评论 -
ACM(prim 算法)
acm每周总结这周学习了图论,做了一些洛谷上的题,哎。难题不会,简单题不熟啊。写一下prim 算法#include using namespace std;const int MaxSize=9999L;int edge[MaxSize][MaxSize];int vertexNum;int MinEdge(int a[],int n){int minn=0x3f3f3f3f;int num;for(int q=0;q<vertexNum;q++){minn=a[q]<原创 2021-11-21 22:53:16 · 637 阅读 · 0 评论 -
ACM(高精度算法(+ - *))
acm每周总结今周还是做题做题做题,另外总结了一点高精度算法。还是加油!#include #include #include #include #include using namespace std;struct Maxnum{int len;int num[100001];};Maxnum a,b,w;char c[100001],d[100001];bool negative;void pd(){negative=((strlen©<strlen(d))||((原创 2021-11-14 22:02:11 · 789 阅读 · 0 评论 -
ACM(洛谷做题总结P1004方格取数)
acm每周总结这周以做题为主,刷了些洛谷上的题,想必那些数学思维的题,最令我印象深刻的是p1004的这一道叫方格取数。一道四维数组的dp题,还略有一点点博弈。#include#include#includeusing namespace std;int a[10][10];int dp[10][10][10][10];int main(){memset(a,0,sizeof(a));memset(dp,0,sizeof(dp));int n;cin>>n;for(i原创 2021-11-07 22:15:06 · 264 阅读 · 0 评论 -
ACM(洛谷p1002bfs搜索+dp)
acm总结这个星期写了几道洛谷上的题,又重新熟悉了一下,dp和贪心就比如在p1002题中。结合了bfs和dp问题。#include #include #include #include using namespace std;int x1,y1,x2,y2;#define Check(x,y)(x>=0&&x<=x1&&y>=0&&y<=y1)int point[8][2]={{-2,-1},{-1,-2},{1,2原创 2021-11-01 07:41:17 · 215 阅读 · 0 评论 -
2021-10-24
acm总结又到了一周一度的总结时间,这周学习了并查集以及高精度算法的一些内容,并且注册了洛谷的账号,深受打击。以前感觉比较难的bfs和dfs以及二叉树的内容,在洛谷里边算入门的题,就感觉水平已经很差劲了。再加上今天晚上的考试,就做出来一道。再继续加油吧 !...原创 2021-10-24 20:49:51 · 103 阅读 · 0 评论 -
2021-10-10
10月10日acm本星期总结这几天学习了二叉树的有关内容,对树的这一方面内容有了初步的了解,但是还是云里雾里的,没有完全搞透,但是好在这个学期学习了数据结构对双链表有所了解。首先谈谈我对二叉树的理解,它其实就是一个双链表,通过左右节点(书上说的是左右儿子)来建立数之间的先后(父子)关系。比如先序后序和中序之间的互相转变。其次,巩固了一下有关dp,贪心算法的知识,以后每星期都会看一下这些基本的算法。确实这个星期也没学多少,准备从明天开始做一下洛谷的题。争取通过做题来积累一下经验,巩固一下知识。..原创 2021-10-10 22:52:52 · 105 阅读 · 0 评论 -
ACM总结(全排列)
9月27号ACM总结这个星期我学习了小黑书上递归全排列,BFS与DFS的有关内容,感觉自己的进度有点慢,希望可以早日结束黑书的内容。在java老师布置的作业中我运用了全排列,因为java中没有next_permutation函数。public static int num=0;public static void swap(int[] p,int x,int y){int temp;temp=p[x];p[x]=p[y];p[y]=temp;}public static void Per原创 2021-09-26 19:52:08 · 108 阅读 · 0 评论 -
2021-09-26
9月27号acm总结原创 2021-09-26 19:40:05 · 79 阅读 · 0 评论 -
2021-09-26
9月26号acm学习总结这个星期主要学习了递归全排列以及BFS与DFS的小黑书内容。在java老师布置的作业中运用了递归全排列(因为java中没有next_permutation( ,)),也算是可以熟练的运用了。public static int num=0;public static void swap(int[] p,int x,int y){int temp;temp=p[x];p[x]=p[y];p[y]=temp;}public static void Perm(int [原创 2021-09-26 19:37:23 · 87 阅读 · 0 评论 -
2021-09-19
Acm学习总结这篇博客其实是我在考完ICPC,这次考试也是受了一些打击,一些牵扯到算法的题,看到时大脑一片空白,而且英语很薄弱的我,有时连翻译这一关都过不了。在暑假的学习中,我学到了像简单全排列与全排列的递归算法,BFS与DFS搜索,还有并查集的一小部分内容,但是并没有通过做题来消化它,以至于不能很好的去应用,总之就是学过的不知道什么时候去用。既然暑假已经过去且被我荒废了,那就着眼于当下和以后,在这一个阶段的学习中将算法的那一本小黑书从头到尾的好好看一遍,然后就是在洛谷上刷大量的题进行巩固,在休息时间原创 2021-09-19 20:19:01 · 78 阅读 · 0 评论 -
2021-05-23
递归算法递归算法是一种重要的数学算法,核心是寻找相邻数据间的递推关系,写出递推关系式。在上个星期讲的二分法的运用中就有有关递归的运用,像bool find(long long x)原创 2021-05-23 22:59:42 · 90 阅读 · 0 评论 -
2021-05-16
acm每周总结(背包)本周主要学习了有关背包问题的内容。其实背包问题本身就是动态规划的一种。其动态dp方程主要为:dp[w]=max(dp[w],dp[w-m[q]]+v[q])背包类型主要有:01背包,完全背包,多重背包。01背包根据名称可知,此类背包题表示每种物品只能被选一次,所以称之为01问题(要么选要么不选)。for(int q=1;q<=m;q++) //v为背包容积;{for(int w=v;w>=b[q];w–) (!注意从大到小的循环次序){ d原创 2021-05-16 15:57:48 · 80 阅读 · 0 评论 -
2021-04-24
acm每周总结这个星期我们学习了区间dp,通过本周学习我总结一下,这种题型的解题思路。1.区间长度定义2.定左端点(通过左端点定右端点)3.在子区间里寻找分界点并考虑区间dp动态方程,说实话(我认为只要把例子中从区间长度为三推到四,基本上就可以大致推出dp动态规划方程)4.base case(这个也很重要,好的初始设置是成功解题的关键,可以省很多事)原始代码base casedp[][]=for(int len=;len<=n;len++){for(int r=1,l=len;l&原创 2021-04-24 20:23:03 · 70 阅读 · 0 评论 -
2021-04-17
线性规划2本星期学习了线性规划的其他内容,对其又有了新的认识,简单总结一下。明确问题关键1.重叠子问题 2.状态转移方程(最关键) 3.最优子结构解题基本套路1.明确状态2.明确选择3.明确dp函数和数组的定义4.明确base case(最开始的设置)核心:穷举(但是是高级穷举,意为怎么简单怎么来,尽量减少代码运行时间,精简代码)代码框架初始化base case(感觉可最后考虑)dp[0][0][…]=base;进行状态转移for(状态1以及状态1里的所有值)for(状态2以及原创 2021-04-17 23:58:12 · 105 阅读 · 0 评论 -
ACM(线性动态规划(线性DP))
线性规划(线性DP)线性动态规划明确问题关键1.重叠子问题 2.状态转移方程(最关键) 3.最优子结构解题基本套路1.明确状态2.明确选择3.明确dp函数和数组的定义4.明确base case(最开始的设置)核心:穷举(但是是高级穷举,意为怎么简单怎么来,尽量减少代码运行时间,精简代码)代码框架初始化 base case(感觉可最后考虑)dp[0][0][…]=base;进行状态转移for(状态1以及状态1里的所有值)for(状态2以及状态2里的所有值)for…寻找最值原创 2021-04-10 20:43:09 · 289 阅读 · 2 评论 -
2021-03-27
每周学习总结今周主要讲了贪心算法,以及动态规划的内容。还是通过做题来积累经验,尤其是周五经历了大型的acm比赛,感受了他们的出题形式,以及佩服于真正acm大神平均3,4秒一道题的神速。感觉就是真正的acm比赛题设计的题型是很广的,而平时做的题型基本都是以专题的形式而出的,就比如最近做的有关贪心算法的题专项性很强。所以以后可以自己从codeforces找一些自己不擅长的题型做做。下面步入正轨,讲讲我本周的收获。集合元素最少覆盖区间这个问题其实是上个星期讲的,主要意思是找一个元素个数最少的集合,使得每个原创 2021-03-27 21:49:45 · 83 阅读 · 0 评论 -
ACM(贪心算法)
每周学习总结贪心算法本周主要学习了贪心算法,所谓贪心算法就是一种寻找最优解的思想。根据本周的学习以及做题,主要分为以下几种:区间问题此类问题变形种类极其丰富基本问题:选课问题贪心思想:将区间按照结束时间排序,在按照开始时间,从小到大把不重复的课挑出来,及为最多的选课数。变形问题:有雷达问题(将区间变形为圆):找寻可覆盖小船最少的雷达数。也是通过每个小船坐标将雷达所能将其覆盖的圆心范围a,按(x-a)(x-a)+yy<=rr算出,及圆心范围为x-sqrt(rr-yy)<=a&原创 2021-03-20 18:49:16 · 190 阅读 · 0 评论 -
ACM( 初学(万能头文件与快速输入))
本周学习总结万能头文件#include<bits/stdc++.h>using namespace std;int main(){std::ios::sync_with_stdio(false);…}sort函数头文件#includeint num[4]={4,5,8,1};sort(num,num+4) 默认从小到大排序若想从大到小,,可在主函数前加一个bool函数如:bool cmp(int a,int b){ return a>b;}…sort原创 2021-03-13 16:53:14 · 375 阅读 · 1 评论