2021年算法讲堂第一讲-C语言入门1
点击下载课件课程大纲如下
C语言入门1一、引言二、the “hello world” vision of C++三、简单介绍一下C++程序结构四、变量类型五、输出输出六、运算符七、条件控制语句八、循环控制语句九、输入输出问题主讲人:张国辉
时间:9月25日
2021年算法讲堂第二讲-C语言入门2
点击下载课件课程大纲如下
C语言入门2一、数组数组的创建数组的初始化二、字符串基本的字符串巨好用的字符串string类主讲人:余锦鹏
时间:10月11日
2021年趣味迎新题题解
1.幸运值对于$2^n$,最后一位数的规律是$2,4,8,6,2,4,8,6…$
答案是 $20*(n/4)+2^{n \%4+1 }-2$。
2.彩虹岛的大操场从$(1,1)$跑到$(n, m)$总共需要跑$n+m-2$步,其中有$n-1$步向右跑,$m-1$步向上跑,那么只要从$n+m-2$步中选择$n-1$步就是全部的方法数了。
答案是$C^{n-1}_{n+m-2}$
3.彩虹岛的神秘数字一、设神秘数字是$x$,$x$是$4$的整数倍,要把x分解成$2$个连续偶数的乘积,就是把$x/4$分解为$2$个连续自然数。
题目就变成了$11…1122…22$分解成两连续自然数的和,这个数字可以看成$2n$个$1$和$n$个$1$。
$11…11$,$n$个$1$乘9之后就可以看成$10^n-1$,那么原式就是$10^{2n}+10^{n}-2$,因式分解得到$(10^{n}+2) \ast (10^n-1)/9=\frac{10^n-1}{3}\ast \frac{10^n+2}{3}=(33…33)\ast(33…34)$再把得到的两个自然数都乘2得到答案。
答案的两个偶数分别是$n ...
2021年趣味迎新题
趣味萌新题不用做任何选拔,仅用做带领大家了解一下算法竞赛中的一些思维。
很多题目可以手算,有些题目甚至可以口算。
题目在阅读过程中如果遇到理解障碍,可以来帐篷点或在qq群(1149886530)中问询。
[1]幸运值彩虹岛的糊糊非常喜欢每一个数字的最后一位,他认为这一位就是这个数字的幸运值,比如 1234 的幸运值是4,现在zgh给了糊糊 n 个数,分别是$2^{1}、2^{2}、2^{3}…2^{n}$,糊糊想要知道这 n 个数的幸运值之和是多少,但是他有点笨,你能帮帮他吗?
[example]当n=3时,3个数分别是2、4、8,他们的幸运值的和是14。
[2]彩虹岛的大操场彩虹岛上有一个n*m的矩形大操场,这个操场很奇怪,这里面跑步的人只能向右或者向上跑,ty热衷跑步,天天在这个操场里面跑步,有一天wx问ty,你天天跑步,知道从这个操场左下角(1,1)跑到这个操场右上角(n,m)有多少种跑法吗?ty想了很久没有想出答案,他决定亲自去跑,wx觉得ty的方法太慢了,决定问你,你可以帮他计算一下这个问题吗?
[example]当n=2,m=2时,可以先向右再向上,或者先向上再向右,一共有 ...
直播讲课安排
长安大学ACM集训队为了让大家更快更早接触算法竞赛学习,集训队组织在 8.21-8.27 一周时间通过直播课形式带大家一起学习C语言的基础语法以及简单应用,欢迎大家积极参与!
直播形式 :直播采取b站直播(CHD-ACM UID:1674174622)的形式,课程安排和通知会在ACM新生群通知,课后问题也可以在群里交流(群号:1149886530),学姐二十四小时在线答疑。
直播时间 :19:00 - 21:00
直播内容 :采取算法和程序配套讲法,每个小节选取一道例题精解(学姐现场敲代码实现程序,逐语句讲解),然后选取1至3道例题,现场完成,提交至 CHDOJ 在线测评,直播对例题代码讲解,直播结束后,会提供相应的配套习题,供大家练习使用。
预期效果:全部直播课程讲授结束,训练认真完成,轻松应对开学C语言课内内容,为开学打好基础~
直播内容
直播时间
主讲人
【C语言】环境配置、学习干货传授、数据类型,输入输出,运算符、彩蛋隐藏环节
8.21 19:00-21:00
糊糊
【C语言】顺序和分支结构
8.22 19:00-21:00
陈申奥
【C语言】循环 ...
树状数组&线段树入门
树状数组&线段树入门预置知识引入:
现给你一个长度为 $n$ 的数列 $A$,再输入 $q$ 个询问,每个询问都给出两个整数l,r。对于每个询问都要求给出对于数列 $A$ 在区间 $[l,r]$上的和(假设下标从0开始)
很容易想到能够使用前缀和 $pre[i]$ 来维护,每次询问直接输出 $pre[r]-pre[l-1]$ 即可,这个问题就愉快地解决了。
但是问题又来了,如果是 $q$ 个操作,这些操作中既有查询又有修改 (每次修改指定位置的值) 呢?这时候单纯用前缀和复杂度就会很高,因为每一次修改都会影响前缀和,对于每次修改都得重新计算一遍前缀和数组,那如何处理这个问题呢?
一、树状数组树状数组是一种利用二进制特征进行检索的树状结构。
初识树状数组
就【引入】中的问题来初始树状数组,我们把它形式化一下
长度为 $n$ 的数组 $a_i(i=1 \dots n)$ ,进行以下操作:
修改元素 $add(k,x):$ 把 $a_k$ 加上 $x$。
询问区间 $[l,r]$ 的和。我们可以用树状数组求和 $sum(x): ~sum=a_1+a_2+ \dot ...
markdown扩展应用Mathjax
Markdown 系列有三部分构成:
Markdown的基本语法
Mardkwon的扩展语法
Markdown的扩展应用-Mathjax
Mathjax 数学公式基础
displayed 公式: 分隔符$$ ... $$ 或者 \[...\]
inline 公式 ... 或者 (...)
希腊字母
名称
大写
Tex
小写
Tex
alpha
$A$
A
$\alpha$
\alpha
beta
$B$
B
$\beta$
\beta
gamma
$\Gamma$
\Gamma
$\gamma$
\gammma
delta
$\Delta$
\Delta
$\delta$
\delta
epslion
$E$
E
$\epsilon$
\epsilon
zeta
$Z$
Z
$\zeta$
zeta
eta
$H$
H
$\eta$
\eta
theta
$\Theta$
\Theta
$\theta$
\theta
iota
$I$
I
$\iota$
\itoa
kappa
$K$
K
$\kappa$
\kappa
...
markdown扩展
Markdown 系列有三部分构成:
Markdown的基本语法
Mardkwon的扩展语法
Markdown的扩展应用-Mathjax
Markdown 扩展语法表格要添加表,请使用三个或多个连字符(---)创建每列的标题,并使用管道(|)分隔每列。您可以选择在表的任一端添加管道。
1234| Syntax | Description || ----------- | ----------- || Header | Title || Paragraph | Text |
Syntax
Description
Header
Title
Paragraph
Text
单元格宽度可以变化,如下所示。呈现的输出将看起来相同。(基于不同的Markdown解析器,所展现出来的效果也不同)
1234| Syntax | Description || --- | ----------- || Header | Title || Paragraph | Text |
Syntax
Description
...
Markdown 的使用
Markdown 系列有三部分构成:
Markdown的基本语法
Mardkwon的扩展语法
Markdown的扩展应用-Mathjax
编辑器
所编即所得,是当前非常热门的Markdown编辑器
Visual Studio Code,需要一些配置,但也十分的简单易用。
Markdown 基本语法总述:Markdown 是一种轻量级的标记语言,排班语法简介,让人更容易关注内容本身而非排版,它使用易读易写的纯文本格式编写文档,可与HTML混编,可导出 HTML、PDF 以及本身的 .md 格式的文件。因简洁、高效、易读、易写,Markdown被大量使用,如Github、Wikipedia等网站,如各大博客平台:CSDN、博客园、简书等。
「标记」、「语言」等听起来很高大上,实则在Markdown中非常简单,你只需要记住不超过十个标记就能处理日常中的大多数事务。这将大大提升你的工作效率。
本文仅供学习参考用途,参考网站有:
Markdown 基本语法 | Markdown 语法教程
标题要创建标题,请在单词或短语前面添加井号 (#) 。# 的数量代表了标题的级别。例 ...