首页 > 其他分享 >初赛笔记

初赛笔记

时间:2024-07-27 20:42:39浏览次数:6  
标签:结点 有向图 int max 连通 笔记 初赛 dp

数学

排列组合

错排问题:\(D_n=(n-1)(D_{n-1}+D_{n-2})\) \((D_1=0,D_2=1)\)

数据结构

出栈序列数量 卡特兰数\(\displaystyle C_i=\frac{C^n_{2n}}{n+1}=\sum_{i=0}^{n} {C_i}{C_{n-i}}\)

一个结点的度为这个节点的子节点数,一棵树的度为所有节点的度数最大值

二叉树

  • 二叉树中,编号为i的结点,父结点为\(\lfloor \frac{i}{2} \rfloor\),子结点分别为\(2i\)和\(2i+1\)
  • 第\(i\)层最多有\(2^{i-1}\)个结点,深度为\(k\)的树最多有\(2^k-1\)个结点
  • \(N=N_0+N_1+N_2\),\(N_2+1=N_0\)

有关定义

  • 不存在重边与自环的图,叫做简单图
  • 无向图中任意两个结点间都存在边相连,叫做无向完全图
  • 有向图中任意两个结点间都存在互为相反的两条边相连,叫做有向完全图
  • 结点的度:图中与结点相连的边的数目
  • 入度:在有向图中,以这个结点为终点的有向边的数目
  • 出度:在有向图中,以这个结点为起点的有向边的数目
  • 在无向图中,如果两点间存在路径(不一定直接到达),则称两点连通
  • 在有向图中,如果两点间可以互相到达,则称两点强联通
  • 一个无向图,若每两个点都连通,则称此图为连通图
  • 一个有向图,若每两个点都连通,则称此图为强连通图

性质

  • \(图中所有结点的度的总和=边数 \times 2\)
  • 有向完全图,共有\(n(n-1)\)条边
  • 无向完全图,共有\(\frac{n(n-1)}{2}\)条边
  • \(n\)个点的连通图,边的数量至少为\(n-1\)
  • \(n\)个点的强连通图,边的数量至少为\(n\)

算法

排序

不稳定的排序:选择、希尔、快排、堆排

  • \(O(n^2)\):冒泡、选择、插入、快排最坏
  • \(O(n\log{n})\):归并、快排、堆排、希尔、sort
  • \(O(n)\):桶排、计数、基数

动态规划

最大子段和

⚠️子段必须连续⚠️

\(dp_i\)代表以\(a_i\)为结尾的最大子段和

状态转移方程:\(dp_i=max({dp_{i-1}+a_i},{a_i})\)

最长上升子序列

⚠️子序列可以断开⚠️

\(dp_i\)代表以\(a_i\)为结尾的最长上升子序列的长度

主要代码:

int ans=0;
for(int i=1;i<=n;i++){
    dp[i]=1;
    for(int j=1;j<i;j++){
        if(a[j]<a[i]) dp[i]=max(dp[i],dp[j]+1);
    }
    ans=max(ans,dp[i]);
}

最长公共子序列

\(dp_{i,j}\)代表以\(s1_{i}\)为\(s1\)的末尾,\(s2_j\)为\(s2\)的末尾时的最长公共子序列长度

\[状态转移方程:dp_{i,j} = \begin{cases} dp_{i-1,j-1}+1 &\text{if } s1_i=s2_j \\ max(dp_{i-1,j},dp_{i-1,j}) &\text{if } s1_i \ne s2_j \end{cases} \]

01背包

\(f[i][j]=max(f[i-1][j],f[i-1][j-v[i]]+w[i])\)

for(int i=1;i<=n;i++){
   for(int j=m;j>=v[i];j--){
      dp[j]=max(dp[j],dp[j-v[i]]+w[i]);
   }
}

完全背包

\(f[i][j]=max(f[i-1][j],f[i-1][j-v[i]]+w[i])\)

for(int i=1;i<=n;i++){
   for(int j=v[i];j<=m;j++){
      dp[j]=max(dp[j],dp[j-v[i]]+w[i]);
   }
}

多重背包

int cnt = 0;
for (int i = 1; i <= n; i ++ ){
   int a, b, s;
   int k = 1;
   cin >> a >> b >> s;
   while (k <= s){
      cnt ++ ;
      v[cnt] = a * k;
      w[cnt] = b * k;
      s -= k;
      k *= 2;
   }
   if (s > 0){
      cnt ++ ;
      v[cnt] = a * s;
      w[cnt] = b * s;
   }
}//二进制优化操作
n = cnt;
for (int i = 1; i <= n; i ++ )
   for (int j = m; j >= v[i]; j -- )
      f[j] = max(f[j], f[j - v[i]] + w[i]);

标签:结点,有向图,int,max,连通,笔记,初赛,dp
From: https://www.cnblogs.com/XuOuXiao1024/p/18327430

相关文章

  • C++第七次课笔记——引用
    引用作用:给变量取别名语法:数据类型&别名=原名intmain(){ //引用基本语法 inta=10; int&b=a; // cout<<"a="<<a<<endl; cout<<"b="<<b<<endl; b=100; cout<<"a="<<......
  • C++第十一次课笔记——初始化列表算法、对象成员、静态成员
    一、初始化列表作用:C++提供初始化列表语法,用来初始化属性语法:构造函数():属性1(值1),属性2(值2),…{}classPerson{public: //传统的初始化操作 Person(inta,intb,intc){ m_A=a; m_B=b; m_C=c; } //初始化列表初始化属性 Person(inta,intb,int......
  • Qt+OpenCascade开发笔记(一):occ的windows开发环境搭建(一):OpenCascade介绍、下载和安装过
    若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/140604141长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…Qt开发专栏:三方......
  • 收藏多年的线程安全问题大全笔记(1),笔记一生一起走,那些日子不再有
    本篇会加入个人的所谓鱼式疯言❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言而是理解过并总结出来通俗易懂的大白话,小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.......
  • 【学习笔记】线段树
    本文Markdown源代码冲刺\(3000\)行中,目前行数:\(2678\)行。【0】线段树简介【0.1】线段树是干什么的线段树是一种基于分治的树形数据结构,可以处理很多区间问题,值域问题。【0.2】线段树的形态线段树作为一棵二叉树,其左子节点维护的是左半区间的信息,右子节点维护的是右半区......
  • 计组笔记第七章——输入输出系统
    7.1.1I/O系统和IO控制方式常见I/O设备:鼠标、键盘;显示器、打印机;硬盘、光盘。主机如何与I/0设备进行交互?I/O接口:又称I/O控制器、设备控制器,负责协调主机与外部设备之间的数据传输。I/O接口与CPU之间靠总线连接,与外设之间靠USB连接线连接。I/O接口多种多样,也会指定相应的标......
  • ClearCLIP: Decomposing CLIP Representations for Dense Vision-Language Inference
    Motivation&Abs文章关注的任务为用VLM(如CLIP)做开放词汇分割,motivation主要来自于作者的一个观察:分割图中的噪声主要来自于残差连接,这会导致在文本-图像预训练更加强调全局特征,从而牺牲了局部判别能力,从而导致了分割结果中的噪声。为此作者提出了ClearCLIP,对CLIP的特征进行解耦,......
  • 【做题笔记】板刷 CodeForces
    CF1987DWorldisMine第一想法是贪心的决策,考虑到是博弈论,每一轮决策肯定都是最优的。显然贪心做法假掉。发现问题具有最优子结构与后效性,考虑dp。将\(a_i\)数组排序,将相同元素打包成块,块长为\(b_{a_i}\)。设\(f_{i,j}\)表示以第\(i\)个块结尾,剩余决策数为\(j\)的最......
  • 【学习笔记】Matlab和python双语言的学习(TOPSIS法)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、TOPSIS法1.模型原理2.基本步骤(1)原始矩阵正向化(2)正向矩阵标准化(3)计算得分并归一化二、代码实现----Matlab1.主程序2.正向化处理函数3.极小型正向化函数4.中间型正向化函数5.区间型正向化......
  • (超详细)备赛笔记2024年全国职业院校(中职组)技能大赛(ZZ052大数据应用与服务)第二套试题
    2024年职业院校中职组ZZ052大数据应用与服务赛项赛题第02套【子任务一:基础环境准备】模块一:平台搭建与运维(一)任务一:大数据平台搭建1.子任务一:基础环境准备(1)对三台环境更新主机名,配置hosts文件,以node01作为时钟源并进行时间同步;#分别在不同主机上面执......