CSP初赛笔记

对数和指数 
指数:例如2^3=8 
(2^2)^2=2^(2*2)=2^4
2^2+2^3=2^(2+3) 
对数:例如log(2)4=2
log(a)bc=log(a)b+log(a)c
log(a)(a)m=m
log(a)m/n=log(a)m-log(a)n
log(a)(m)n=nlog(a)m
log(a)1/n=-log(a)n
a^log(a)b=b


二进制与位运算
1001
1*2^3+0+0+1*2^0=8+1=9
原码
1000 0001(-1)
0000 0001(1)
1000 0010(-2)
反码 
整数的反码依旧是自己
负数的反码除符号位取反 
0000 0001(1)
1111 1110(-1)
补码
整数的补码依旧是自己
负数的补码是反码+1
 0000 0001(1)
+1111 1111(-1)
1(越界) 0000 0000(0)
位运算
左移是*2
右移是/2(向下取整) 
(1001)<<1
10010(18)

(0001)<<2
0100(4)

(1001)>>1
0100(2)

int 范围:-2^31~2^31-1
int=4byte
1byte=8bit 
1bit=1个0 
int=32位 

long long 范围:-2^63~2^63-1
&(与) 都为一才为一 
|(或) 只要有一就为一 
^(异或) 不同才为一 

组合排列
排列:A(5,5)=5*4*3*2*1
A(5,4)=5*4*3*2

组合:(6,3)=(6*4*3)/(3*2*1)
C(n,m)=C(n,n-m)

二叉树
根节点,叶节点 
节点=根节点+叶节点
设有n个节点,就有n-1条边 
任意点都可以到达 
完美二叉树:每个节点全部占满
例如
//   o
//  / \
// o  o
完全二叉树:出最后一层都为满二叉树,最后一层必须从左往右排
例如
//      o
//     / \
//    o   o
//   / \ / \
//  o  o o  
二叉树的先序遍历:根左右
二叉树的中序遍历:左根右
二叉树的后序遍历:左右根

图论
有向图:有方向的图
无向图:两点之间没有方向
连通块的个数:指有向图或无向图的个数
完全图:任意两点之间都是相连的 
完全图的边数:设点的个数为n,有(n-1)+(n-2)+......+1
最短生成树:排序求出最小数,在筛选路径 

拓扑排序 (可能有多解)
任何有向图不一定都能用拓扑排序,当为环的时候,陷入死循环 
入度的个数:指向该点的边数
出度的个数:该点指出的个数
排序方法:A->B->C 
入度为零的点排在前面,并将该点去掉,以此类推

格雷码
二进制到格雷码
  1010(0) 
^ (0)1010 
  1111(0)
则二进制数1010的格雷码是1111

格雷码到二进制
  1 1 1 1
  |  /  /  /
  1 0 1 0 
则格雷码1111的二进制数是1010

青少年csp编程初赛是一项非常重要且有趣的比赛。参加比赛的过程中,我学到了很多知识和技巧,积累了宝贵的编程经验。 首先,我要提到的是算法。在比赛中,我们需要解决各种问题,而高效的算法是解决问题的关键。我学到了许多常用的算法,并且学会了如何根据问题的特点来选择合适的算法。比如,我了解到了搜索算法和贪心算法,在解决问题时能够更快地找到最优解。 其次,比赛还提高了我的编程能力。在比赛中,我们需要用特定的编程语言来实现算法和解决问题。通过参赛,我不仅熟练掌握了基本的编程语法,还学会了如何灵活运用语言的特性来简化编程过程。我还学到了编程中常用的技巧和思维方式,使我的代码更加清晰、高效。 此外,参加比赛还提升了我的团队合作能力。在初赛中,我和队友一起解决问题,共同思考和讨论最优解。我们互相帮助、合理分工,充分发挥每个人的优势,最终取得了不错的成绩。团队合作的经验对我来说非常宝贵,将对我今后的学习和工作都有很大的帮助。 通过参加青少年csp编程初赛,我不仅学到了知识和技巧,还培养了自己的解决问题的能力和团队合作意识。这次经历不仅让我在编程方面有所提升,也对我的成长有着深远的影响。我将继续努力学习和提升自己,在编程领域取得更好的成绩。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值