初赛总结

  经历了这次初赛,我不仅懂得了不少知识与经验,也看清了与别人之间的差距。在这次初赛,我也遇到了自己比较迷的内容,我归纳了以下几点:

1.dp(不解释(学信奥的人大多都死这儿了)(第二道门槛))

2.图论(在我心目中的第一道门槛)

3.归并(不知道为什么快排懂了这个没懂)

4.指针及链表(已晕)

······

  虽然这么多条看上去有点晕,实际上把它分开了更晕

dp:

1.最长不上升序列

2.最长不下降序列

3.最长上升序列

4.最长下降序列

5.0/1背包

6.完全背包

7.多重背包

······

······(突然发现,我好蒟蒻)

  不过,我相信我能在信奥这条路上浪下去~

  在列一下我会的和我不会的基本算法(实在不知道写什么,就当凑点字数,显得好看一点)

已会:

1.高精(除法除外)

2.快排(qsort)

3.递归

4.递推

5.贪心(贪婪)

(一眼望去,哇····················好少)

不会:

1.高精除

2.归并

3.回溯

4.搜索(bfs、dfs我并一起了)

5.分治

6.动态规划

······

(一眼望去,哇····················好多(省略号表示还有好多,自己脑补))

不过c++里还是有良(keng)心(die)的东西的,比如说:STL(至少能帮我解决stack和queue(睁着眼睛说瞎话的我))(还是sort良心点)


最后,送上一段我自己手写的快排代码(我没试过,帮我试一下能不能通过)//所以大家还是用内置sort吧,速度还快~

#include<bits/stdc++.h>
using namespace std;
int i,j,mid,t,a[10001];
void qsort(int l,int r)
{
i=l;j=r;
mid=a[(i+j)/2];
do  
{
while(a[i]<mid) i++;
   while(a[j]>mid) j--;
   if(i<=j)
   {
    t=a[i];a[i]=a[j];a[j]=t;i++;j--;
   }
}
while(i<=j);
if(l<j) qsort(l,j);
if(i<r) qsort(i,r);
}
int main()
{
int n,k;
cin>>n;
for(k=1;k<=n;k++) cin>>a[k];
qsort(1,n);
for(k=1;k<=n;k++) cout<<a[k]<<' ';
return 0;
}


猜你喜欢

转载自blog.csdn.net/chenkainan1023/article/details/78417073