CSP-J理论(1)

CSP-J理论合集跳转

目录

本目录中所有标题单击均可以快速跳转哦

一.排列组合与概率

$\ \ \ \ \ $1.排列

$\ \ \ \ \ $2.组合

$\ \ \ \ \ $3.概率

$\ \ \ \ \ $4.圆排列

$\ \ \ \ \ $5.多重集合的排列

$\ \ \ \ \ $6.错位排列

二.二进制

$\ \ \ \ \ $1.数据范围

$\ \ \ \ \ $2.原、补、反码

$\ \ \ \ \ $3.位运算

三.递归问题复杂度分析

$\ \ \ \ \ $1.T(n)=2T(n/2)+n

$\ \ \ \ \ $2.T(n)=2T(n/2)+n^2

$\ \ \ \ \ $3:T(n)=2T(n/2)+sqrt(n)

一、排列组合与概率

一:排列

排列:n个数的排法,从第1位到第n位,每一个位置有n-i-1种选择,最后把每个位置的选择数相乘,得到: \(n \times n-1 \times n-2 \times ...\times 2 \times 1\),(即n阶乘)。如果要在 n 个数里挑 m 个组 m 位数,数量就是$ n \times n-1 \times n-2 \times n-3 \times ... \times n-m+1$,即A(n,m)

二:组合

组合:n个数的选法。

组合和排列的区别在于排列看来,(1,2)和(2,1)是两种排列,但在组合看来,(1,2)和(2,1)是一种组合。

所以,组合就是在排列的基础上再/m,比如在n个数里选m个,就是\(n \times n-1 \times n-2 \times n-3 \times ...\times n-m+1\)再\(/m\),即C(n,m),但是如果我们在n-m+1后面补上一个从n-m乘到1的表达式,那么就变成了n!,但是也要再除以(n-m)!,因为上面乘了(n-m)!,下面也乘(n-m)!,结果不变。

组合数常见结论:C(n,0)=1,C(n,1)=n,C(n,n)=1,C(n,m)=C(n,n-m)。

三:概率

概率:就是选择物品数量/总数,如probability这个字符串里取字符,取到字符b的概率就是2/字符串的长度11。

四:圆排列

圆排列就是将几个数围成一圈的排列。

如下面这个排列

就是一个圆排列。

圆排列的特点是将圆旋转,仍然是同一个圆排列,如

都是同一个圆排列

圆排列的排列数是(n-1)!

五:多重集合的排列

多重集合是指如{1,1,2,3,3}这样的集合。假设这个集合里有n种数,每个数都有无限个,要选出k个,排列数就是\(n^k\)。

但如果每种数的数量固定,设第一种数的数目为\(a_1\)、第二种为\(a_2\)...那么排列数就是\(\frac{n!}{a_1!a_2!...a_k!}\)

六:错位排列

错位排列是指第i个位置不是i的排列,如{3,2,1}

错位排列的排列数是

\[ f(x) = \begin{cases} 0 & x = 1

\\ 1 & x = 2

\\ (i-1)*(f_{i-1}+f_{i-2}) & x>=3 \end{cases}\]

二、二进制

一:数据范围

int类型的数据范围是\(-2^{31}\to2^{31}-1\)

unsigned int类型的数据范围是\(0\to2^{32}-1\)

long long类型的数据范围是\(-2^{63}\to2^{63}-1\)

unsigned long long类型的数据范围是\(0\to2^{64}-1\)

二:原、补、反码

原码的第一位是符号位,用于表示正负,正为0,负为1,其他位就是这个数的二进制

反码是原码除符号位取反(0变1,1变0)

补码是反码+1

三:位运算

x<<y就是将x乘上\(2^y\),x>>y就是将x除以\(2^y\)(向下取整)。

&:每一位都为1就是1

|:每一位有1就是1

^:每一位不同就为1,相同为0

~:对每一位进行取反(包括符号位)

lowbit:用于求得一个数二进制下最低位的1代表2的几次方。代码是x&-x

三、递归问题复杂度分析

一:T(n)=2T(n/2)+n

画出递归树

可以发现每一层都是O(n),总复杂度为O(nlogn)。

二:T(n)=2T(n/2)+n^2

画出递归树

把每一层的加在一起,得到 \(n^2+\frac{n^2}{2}+\frac{n^2}{4}+...\)。

我们把 \(n^2\) 提取出来,得到 \(n^2 \times (1+\frac{1}{2}+\frac{1}{4}+...)\)。

我们可以发现右边的和无论如何都是小于 \(2\) 的,所以总复杂度为O(n^2)。

三:T(n)=2T(n/2)+sqrt(n)

画出递归树

求和可以得到是 \(\sqrt{n}+2\times\sqrt{\frac{n}{2}}+4\times\sqrt{\frac{n}{4}}+...\)。

我们把 \(\sqrt{n}\) 提取出来,可以得到 \(\sqrt{n}\times(1+\sqrt{2}+\sqrt{4}+...)\)。

利用等比数列求和公式,可以得到括号里是 \(\sqrt{n}\),与前面的 \(\sqrt{n}\) 相乘,所以得到总复杂度为O(n)。

CSP - J理论(1)的更多相关文章

  1. CSP J/S 初赛总结

    CSP J/S 初赛总结 2021/9/19 19:29 用官方答案估计 J 涂卡的时候唯一的一支 2B 铅笔坏了,只能用笔芯一个个涂 选择 \(-6\ pts\) 判断 \(-3\ pts\) 回答 ...

  2. 【游记】CSP J/S 2019 游记

    J 组 \(2:30\)开始, \(2:13\)还在酒店的我看了看手表...飞奔考场. T1 数字游戏 秒切. 下午某中学某大佬说可用线性基(%) T2 公交换乘 用单调队列思想,秒切. T3 纪念品 ...

  3. 2019 CSP J/S第2轮 视频与题解

    CSP入门组和提高组第二轮题解 转自网络

  4. CSP J/S 2019受虐记

    一枚蒟蒻的游记~ 提高组DAY1 不是说每场考试都有一道签到题吗 那我tm读了三遍题硬是没找到一道水题是怎么回事(是我太弱了吗) 没办法,硬着头皮做T1 暴力写法...期望得分30pts 于是...在 ...

  5. Go CSP模型

    CSP 是 Communicating Sequential Process 的简称,中文可以叫做通信顺序进程,是一种并发编程模型,由 Tony Hoare 于 1977 年提出.简单来说,CSP 模 ...

  6. [游记]2020/CSP - S总结

    2020 / C S P − S 总 结 2020/CSP - S总结 2020/CSP−S总结 这年的 C S P CSP CSP考的不是很理想,本来稳进的 C S P − J CSP-J CSP− ...

  7. ES6 Generators并发

    ES6 Generators系列: ES6 Generators基本概念 深入研究ES6 Generators ES6 Generators的异步应用 ES6 Generators并发 如果你已经读过 ...

  8. emacs考场短配置

    (set-background-color "gray15") (set-foreground-color "gray") ;;设置颜色 (global-set ...

  9. goroutine并发控制与通信

    转发:https://mp.weixin.qq.com/s/ZlyQHfmoY1lzOoRgFSCOBw 开发go程序的时候,时常需要使用goroutine并发处理任务,有时候这些goroutine是 ...

  10. OI记录

    这里是蒟蒻xsl的OI记录. 2017 2017.03.?? 开始接触OI 2017.10.14 参加NOIP2017普及组初赛,踩着分数线进入了复赛 2017.11.11 参加NOIP2017普及组 ...

随机推荐

  1. 项目PMP之三项目经理

    一.项目经理定义:由执行组织委派,领导实现目标 二.影响范围: 项目本身:相关方沟通.完善各职能结构:通过人际关系和沟通技能及积极态度充当沟通者,以平衡项目相关方并达成共识 组织:组织结构中进行积极沟 ...

  2. shell脚本输出带文本颜色背景颜色自定义样式格式内容

    shell脚本中 echo 和 printf 都可以输出内容.示例1: echo -e "\033[43;35m david use echo say Hello World \033[0m ...

  3. Vim编辑器退出的多种方法

    当文本编辑结束之后,通常需要退出编辑器.退出编辑器又分为4种情况:保存退出.正常退出.不保存退出及强制退出.下面简单说下吧!   1.先介绍一下保存退出.当我们编辑或修改好了文件内容,如图.   我们 ...

  4. 记一次LLVM平行宇宙修包实战

      最近加入了LLVM平行宇宙计划小组,在小组内提交了一定数量的PR.这个计划究竟是做什么的呢?LLVM平行宇宙计划是基于LLVM技术栈构建openEuler软件包,大白话讲就是原本一个软件包是用gc ...

  5. verilog 编写猫狗过河实验

    源代码地址:https://github.com/penggeon/catanddog 效果演示见: https://www.bilibili.com/video/BV1n24y147S1 警告: 仅 ...

  6. Java中的Scanner、BufferedReader 和 StreamTokenizer

    1. Scanner 的使用与分析 简介: Scanner 是 Java 中一个用于解析原始类型(如 int.double 等)和字符串的类.它通常从输入流中逐个读取数据并进行解析,支持多种分隔符的使 ...

  7. 释放全球互连的数字潜力!MWC 2024云网高峰论坛召开,中国电信天翼云扬帆起航!

    2月27日,在2024年世界移动通信大会(MWC 2024)期间,中国电信云网高峰论坛顺利召开.本次论坛以"释放全球互连的数字潜力"为主题,汇聚全球多个国家和地区的通信业领袖和重量 ...

  8. 5. Docker 本地镜像发布到阿里云

    5. Docker 本地镜像发布到阿里云 @ 目录 5. Docker 本地镜像发布到阿里云 1. 本地镜像发布到阿里云流程 最后: 1. 本地镜像发布到阿里云流程 镜像的生成方法: 基于当前容器创建 ...

  9. 解决easyexcel合并单元格数组求和重复问题

    背景 EasyExcel(根据条件动态合并单元格的重复数据))_Violet-CSDN博客_easyexcel动态合并单元格现有的订单导出是使用的easyExcel完成的.对于相同单元格的合并是自定义 ...

  10. 【刚度矩阵推导】2d frame 单元

    2d frame 单元是x-y平面上的单元,每个节点上有2个平移自由度的和一个转动自由度.局部坐标系下,单元位移向量为: \( u=[ u_1 ,u_2 ,u_3, u_4, u_5, u_6]^{T ...