首页 > 其他分享 >CSP-J1 2022 讲解

CSP-J1 2022 讲解

时间:2023-08-07 21:12:12浏览次数:32  
标签:队列 元素 J1 链表 2022 序列 排序 CSP 表达式

各题考察知识点

单选题

  1. 面向对象 / 面向过程(编程思想
  2. 栈(根据入栈序列得到出栈序列)
  3. int 类型指针
  4. 数组和链表的区别
  5. 栈和队列(栈先进后出,队列先进先出)
  6. 中缀表达式转前缀表达式
  7. 哈夫曼树 / 哈夫曼编码
  8. 完全二叉树编码规律
  9. 有向连通图中边的个数
  10. bfs / dfs,栈和队列的应用
  11. 双向循环链表插入元素
  12. 排序的稳定性
  13. K 进制转十进制
  14. 字符串子串
  15. 递归函数

阅读程序

  1. 位运算模拟、数据范围判断
  2. 用递归函数实现递推
  3. 二分+平均值求根号

完善程序

  1. 枚举整数正因子
  2. bfs 模板

各题详细知识点

单选题

  • 面向对象 / 面向过程
    • 面向对象(类 / 结构体)
      • 封装性:将数据和函数代码捆绑到某个对象上
      • 继承性:新建一个子集(派生类),可以继承某个类的特性,并补充添加另一些
    • 面向过程(函数):按照顺序依次实现多个事件
  • 栈:先进后出
  • 指针
    • 取地址符 &&x 表示变量 x 的地址,可以赋值给指针变量
    • 解码符 **p 表示指针 p 指向位置的值,可以对值进行操作
  • 数组 / 链表
    • 数组
      • 是连续的一段内存
      • 数组名表示首元素地址
      • 可以快速进行随机访问
      • 长度确定,定义后就不可发生改变
      • 每一个元素只有数据
      • 插入删除元素比较麻烦
      • 可以进行排序
    • 链表
      • 在内存中不一定连续
      • head 指针指向首元素
      • 访问比较麻烦
      • 长度可以动态调整
      • 一个节点分为数据和指针域
      • 插入和删除元素比较方便
      • 可以进行排序(冒泡排序,双向链表)
  • 元素出栈后入队再出队
    • 因为队列是先进先出,那么进队序列和出队序列一样
    • 出栈序列等于进队序列
    • 所以出栈序列等于出队序列
  • 前中后缀表达式
    • 中缀表达式:操作符在运算数的中间
    • 前缀表达式:操作符在运算数的前面
    • 后缀表达式:操作符在运算数的后面
    • 中缀转前缀:a+b+aba, b 可以是字母也可以是一个表达式
  • 哈夫曼树 / 哈夫曼编码
    • 每次从序列中抽取两个最小的元素,他们共同的父节点点权是他们数值的和
    • 加和完成后把和放回到序列中
    • 根据左零右一规则,根据元素到根节点的简单路径对元素进行编码
  • 用数组储存完全二叉树
    • 除 \(1\) 以外,奇数编号都是右结点,偶数编号都是左节点
    • 左兄弟结点,编号 \(-1\)
    • 右兄弟节点,编号 \(+1\)
    • 左子节点,编号 \(×2\)
    • 右子节点,编号 \(×2+1\)
  • 强连通图 / 有向连通图
    • 设图的点数为 \(n\)
    • 邻接矩阵(有向图)
      • 大小为 \(n×n\)
      • 如果 \(a[i][j]≠0\),代表有一条 \(i \rightarrow j\) 的边
    • 有向连通图最少边数
      • 图是一个环
      • 边数最少是 \(n\) 条
  • bfs 广度优先 / dfs 深度优先,栈和队列的应用
    • 深度:栈,广度:队列
    • 可以用两个栈实现一个队列
      • 进队放入 s1
      • 出队优先取 s2 栈顶
      • 如果 s2 为空,将 s1 所有元素倒入 s2,再进行出队操作
  • 双向循环链表在结点 p 之后插入结点 s
    • 判断后面的操作要用的变量是否被提前覆盖
    • 画图判断
  • 排序稳定性
    • 相同元素在排序后的相对位置是否放生改变
      • 发生改变则排序算法不稳定
      • 不发生改变则排序算法稳定
    • 选择排序、快速排序不稳定,其他都稳定
  • 进制转换(K 转 10)
    • 根据进制权重进行累加即可
  • 字符串子串
    • 字符串子串必须连续
    • 子序列不一定连续
    • 枚举子串时按照长度进行分类
    • 考虑空串
  • 递归
    • 函数定义时自己调用自己

阅读程序

第一题

  • short2 Byte
  • char1 Byte
  • unsigned:没有符号位
  • 数字前 0x:十六进制
  • shortchar 互相转换时注意输出内容变化
  • 位运算注意转换成二进制

第二题

  • 根据递归函数得到递推式和递推初始值

第三题

  • 特殊判断数据范围是否溢出

完善程序

第一题

  • 注意程序特判 \(\sqrt{n}\) 是否为整数因子

第二题

  • 根据上下文进行推断
  • 弄清楚每个变量表示的东西和功能

标签:队列,元素,J1,链表,2022,序列,排序,CSP,表达式
From: https://www.cnblogs.com/winter-tide/p/17612732.html

相关文章

  • CSP模拟15
    TheMorningStar统计$x,y,x-y,x+y$开$longlong$Ntarsis'Set考场降智删除数实质是降低排名.显然答案有单调性,直接二分答案.每次减小排名.判断是否合法.Code#include<cstdio>#defineintlonglongusingnamespacestd;constintN=2e5+5;inlineintrea......
  • CSP-J/S第一轮初赛 ~持续更新~
    CSP-J/S初赛2022更新的初赛知识汇总基础算法链表插入删除数据,操作数据O(1),遍历是O(n),可以进行动态调整。指针指向的是上下节点,链表储存数据下一个节点上一个节点。动态调整:插入一定量的节点,进行调整。插入节点:考虑信息覆盖(这些信息后面是否会再被用到)。寻找和读取比较慢......
  • CSP模拟15
    CSP模拟15T1CF1850GTheMorningStar水题但是考场写挂了直接写阶乘会\(RE\)(这里\(A\)阶乘可以优化成两个数相乘)可以分解为4种不同斜率的直线用\(map\)存(点击查看代码#include<iostream>#include<cstdio>#include<map>#include<cstring>usingnamespacestd;#de......
  • 【题解】 Pattern Matching in A Minor "Low Space" CCPC Mianyang 2022
    https://vjudge.net/contest/573644#problem/K字符串匹配,但卡空间。考虑哈希做法,不妨把\(s\)每\(20000\)个字符哈希成一个字符,于是\(s\)长度只有\(500\),可以跑个KMP。于是对于\(t\),我们只需要同时维护\(20000\)个KMP的指针。但如果字符串长度不是\(20000\)的倍......
  • 2022 上海长宁高三一模英语订正
    I卷除听力订正语法填空第25题,meaning___todo,todo作宾语,此处为宾语从句,只能填【wh-疑问词】。句子意思应该是:“哆咪哆咪”在海南话中意味着“做什么”,填其他wh-疑问词都说不通,所以只能是what。后续查资料:“哆咪”等于“什么”。(但我一开始想的是不定代词,反正和“哆......
  • idea2022.3.1 java文件显示J
     解决办法:1、File>projectstructure>Modules 把Java标成sources,相应资源文件标成resource。2、刷新一下maven,重启一下IDEA就可以了 ......
  • 【考后总结】8 月 CSP-S 模拟赛 2
    8.7CSP模拟15只因你太美-蔡徐坤>只因你太美baby只因你太美baby>>只因你实在是太美baby只因你太美baby>>迎面走来的你让我如此蠢蠢欲动>>这种感觉我从未有>>CauseIgotacrushonyouwhoyou>>你是我的我是你的谁>>再多一眼看一眼就会爆......
  • 洛谷 P8500 - [NOI2022] 冒泡排序
    显然将权值离散化是没有问题的,因为必然存在一组最优解,满足每个\(a_i\)都取自于某个\(V_i\),于是不管三七二十一先将\(V_i\)离散化了再说。考虑从部分分入手逐步分析这道题:特殊性质A:\(V_i=1\)相当于这个区间中的数必须是\(1\),先将这些数去掉不管,紧接着考虑\(V_i=0\)的......
  • CSP模拟14
    不会暴力!不会暴力!第负一题分治+DP只会$n^2$暴力.\(dpl[i][0/1]向左选/不选mid的最大值\)\(dpr[i][0/1]向右选/不选mid的最大值\)$ans=\sum_{i=l}^{mid}\sum_{j=mid+1}^{r}max(dpl[i][0]+dpr[j][0],dpl[i][1]+dpr[j][0],dpr[i][0]+dpr[j][1]),但......
  • CSP模拟13
    T1考场降智,写了个假的模拟,没签上到。T3空间爆了,直接CE(应该是线段树写挂了).yxt在四个角,取最大值,排序.Codefor(inti=1;i<=n;i++){for(intj=1;j<=m;j++){a[++tot]=max({calc(1,1,i,j),calc(i,j,1,m),calc(i,j,n,1),calc(i,j,n,m)});......