第一次写博客,不知道能做得多好,但是至少是个开端
本次讲题时间、内容都很长,以时间顺序来归纳本次博客内容
1. 双十一大礼包
学姐说了三种方法:暴力、辗转相除法、更相减损术。(最优不用说也知道了叭。
然后讲了一下递归做法(一行代码实现目的)
typedef long long ll;//下面代码全都进行预处理
ll getgcd(ll a,ll b)
{
return b==0?a:getgcd(b,a%b);
}
2. Circle
这道题没什么难的,找找规律就出来了。
关键是学姐指出n*(n-1)这个表达式中有个n2,然后就给我们说了说快速幂,尽管组长台下摇头劝阻,但学姐还是讲了(哈哈哈哈哈嗝)
快速幂
这个鬼东西好像很神奇,可以降低时间复杂度,但是我只是听得一知半解。
根据讲题时的笔记,它主要是对幂的指数进行操作
(递归思想)比如232变2个216,27先变一个2出来,再平分指数变成2个23,当指数位等于1时return。(好吧还是没懂怎么能转化为代码,后期再看看补上)
(RJversion)任何一个数都能由1、2、4、8……2n组成,所以先mod2,看有没有1,再mod4,看有没有2。(还是不懂怎么实现鸭)来康康阿圈怎么讲的叭!代码板子还是贴出来:
ll quickpow(ll a,ll b)
{
ll ans=1;
while(b)
{
if(b&1) ans*=a;
a*=a;
b>>=1
}
return ans;
}
阿圈快速幂讲解传送门
3. 相亲
相亲题目好长 有点狼人杀的感觉呢
注意以下几点:1.多开几个结构体重的变量存类似总分,序号这种题目中第一眼可能看不出来的需求量;2.男生被女生选择后要被剔除出数据,RJ说又要多开一个bool int变量,我的想法是把他的各项分数变成0 变成负数。
4. chocolate
这道题我当初没看懂牛客网搬的题目果然 ,原来异或3、4、5……项也可以嘛?。嗯是可以的,甚至还能异或前缀和来玩它(运用0 ^ 本身=本身, 本身 ^ 本身=0来处理, 还要考虑移位的次数q-1=i-j),假设a为结果串,b为原串。sum[i]=b[i] ^ b[i-1] ^…… ^b[0], sum[j,i]=sum[i] ^ sum[j-1], a[i]=b[i] ^ sum[j,i-1]。
5. 时间排序
用特殊格式输入进结构体,再排序,没什么好说哒。
6. 粉色冒泡
蔡哈哈:这么简单还要讲什么规律。
然后噼里啪啦讲了一堆如何运用功能函数,关键就是怎么运用行指针。
虽然她发的代码中并没有行指针,全都是光秃秃的int
7. 完美巧克力
组长月考核结束后顺带讲了哈,正方形的判断:任何两点之间长度只有两种可能。第二天阿咆在群里展开了一顿惊天动地的讨论,判断条件可能还要加上点构成的直线之间只含有90°、45°的角。
8. 破解密码
这个题我后来补题时候想法和学长基本一样,但是略有不同,都用了一个代表ascii码的数组来表示该字符之前出现情况,都是一次遍历循环。学长存的是1,用L、R表示字符串边界。我的数组直接存的这个字符之前在串中出现的位置,用下标来做。
讲的过程真的很无聊
主要注重几个点:
这里重点还是C语言基础(例会说了我一直在搞基础,结果做得稀烂,还是太菜)涉及了自增自减符号、->和指针的联系、运用malloc函数防止空指针(貌似是指针的高级运用那一章)、输入的奇妙操作。
这个奇妙操作就包括:
scanf正则表达式
纸质任务详解传送门
这次题目比较容易,虽然补题做完了,但是还是有一些点要留意
听到这里已经听了差不多三个半小时了,真就有点脑壳容量爆炸,之后有时间再康康博客,把不懂的点再补一下。