CSP - J理论(1)
CSP-J理论(1)
目录
本目录中所有标题单击均可以快速跳转哦
$\ \ \ \ \ $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}
错位排列的排列数是
\\ 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)的更多相关文章
- CSP J/S 初赛总结
CSP J/S 初赛总结 2021/9/19 19:29 用官方答案估计 J 涂卡的时候唯一的一支 2B 铅笔坏了,只能用笔芯一个个涂 选择 \(-6\ pts\) 判断 \(-3\ pts\) 回答 ...
- 【游记】CSP J/S 2019 游记
J 组 \(2:30\)开始, \(2:13\)还在酒店的我看了看手表...飞奔考场. T1 数字游戏 秒切. 下午某中学某大佬说可用线性基(%) T2 公交换乘 用单调队列思想,秒切. T3 纪念品 ...
- 2019 CSP J/S第2轮 视频与题解
CSP入门组和提高组第二轮题解 转自网络
- CSP J/S 2019受虐记
一枚蒟蒻的游记~ 提高组DAY1 不是说每场考试都有一道签到题吗 那我tm读了三遍题硬是没找到一道水题是怎么回事(是我太弱了吗) 没办法,硬着头皮做T1 暴力写法...期望得分30pts 于是...在 ...
- Go CSP模型
CSP 是 Communicating Sequential Process 的简称,中文可以叫做通信顺序进程,是一种并发编程模型,由 Tony Hoare 于 1977 年提出.简单来说,CSP 模 ...
- [游记]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− ...
- ES6 Generators并发
ES6 Generators系列: ES6 Generators基本概念 深入研究ES6 Generators ES6 Generators的异步应用 ES6 Generators并发 如果你已经读过 ...
- emacs考场短配置
(set-background-color "gray15") (set-foreground-color "gray") ;;设置颜色 (global-set ...
- goroutine并发控制与通信
转发:https://mp.weixin.qq.com/s/ZlyQHfmoY1lzOoRgFSCOBw 开发go程序的时候,时常需要使用goroutine并发处理任务,有时候这些goroutine是 ...
- OI记录
这里是蒟蒻xsl的OI记录. 2017 2017.03.?? 开始接触OI 2017.10.14 参加NOIP2017普及组初赛,踩着分数线进入了复赛 2017.11.11 参加NOIP2017普及组 ...
随机推荐
- ffmpeg简易播放器(3)--使用ffmpeg解码视频并用opencv显示视频
ffmpeg的安装 这里我采用的linux下编译源码的方式安装ffmpeg,当然也可以使用apt-get等方式安装,但是我当时使用apt-get安装的ffmpeg使用cmake总是找不到ffmpeg的 ...
- ADALM-Pluto修改IP地址
在 GNURadio 中使用 ADALM-Pluto(以下简称Pluto)模块是以 IP 地址为基础进行通信的,而固定的 IP 地址 192.168.2.1 导致一台电脑无法使用多个 Pluto,因此 ...
- 使用VS2022打开解决方案后每个项目都显示“不兼容”
1.问题描述 今天本地使用VS2022打开之前新建的项目(.Net6框架),突然出现每个项目都显示"不兼容"的问题,导致每个项目的文件都看不到了,如下图所示: 2.解决办法 鼠标右 ...
- DeepSeek 不再卡顿,从此告别服务器繁忙,请稍后再试(建议收藏!)
大家好,我是六哥. 由于DeepSeek真的太火了,也许你也跟我一样,常会遇到这样的情况: 真的让人抓狂,10条回复里常常有9条是"服务器blabla,请稍后重试",看到这话,就问 ...
- 2025年,Fantastic-admin 这款后台框架将继续引领潮流
前言 大言不惭的取了这个标题,但作为开发了 4 年多的 Fantastic-admin 的作者,回顾这一路走来,从一开始被指责抄袭,到现在拥有数百名付费用户和几十家付费企业.我认为我的开发理念应该是得 ...
- JavaDoc文档的介绍及生成方法
javaDoc命令是用来生成自己的API文档的 参数信息 @author 作者名 @version 版本号 @since 指明需要最早使用的jdk版本 @param 参数名 @return 返回值情况 ...
- windows的恶意代码自定义
代码执行步骤: 1,新建"文本文档" 2,输入代码 3,@echo off format C: /q/u/y 4,保存"文本文档" 文本文档.txt改为.bat ...
- [BZOJ2194] 快速傅立叶之二 题解
看名字,然后准备转化为多项式乘法. \[c_k=\sum_{i=0}^{n-k-1}a_{i+k}b_i \] 将 \(a\) 反转,得: \[c_k=\sum_{i=0}^{n-k-1}a_{n-i ...
- java list集合去重的两种方式
- NebKit简介及工作流程
引言 随着云计算技术的不断发展,容器化技术已成为现代软件开发和部署的重要组成部分.NebKit作为一个创新的容器编排和管理工具,旨在简化这一过程,提高开发效率和系统的可靠性.本文将对NebKit进行简 ...