AcWing基础语法课总结(完)

注意:scanf是不会自动过滤掉空格和回车的\n的。

浮点数保留位数时用scanf和printf,保留五位可以写成%.5lf。

$double$可以看成非常大,$10^{300}$左右;$int$大概$10^9$;所以结果会把$int$变量自动转换成$double$变量。

开方时用sqrt()函数。注意平方不能用^,必须写两遍。

求两数的最大值,公式:$\max(a,b)=\frac{(a+b+abs(a-b))}{2}$

有三个整数$a,b,c$

从而得到$a<=b<=c$

如何交换两个数?

如果要输入的数很多的话,可以用循环来输入:

for(inti=0;i<6;i++){doublex;cin>>x;}12.swap函数用法当不确定$x$,$y$的顺序,又需要将小的先出现,可以写成这样:if(x>y)swap(x,y);

在100个数中找出最大值,代码模板:

#include#includeusingnamespacestd;intmain(){intn,m;cin>>n>>m;for(inti=0,k=1;i

#includeusingnamespacestd;intmain(){intn;cin>>n;inta=0,b=1;for(inti=0;i

例:对于$12$来说,$2$是$12$的约数,$6$也是$12$的约数;又$3$是$12$的约数,$4$也是$12$的约数;所以我们只要枚举较小的那个约数即可。

$d\le\frac{x}{d}$

$d^{2}\lex$

$d\le\sqrt{x}$

曼哈顿距离:横坐标的差的绝对值和纵坐标的差的绝对值的和。

$(x1,y1)、(x2,y2)$

曼哈顿距离=$|x1-x2|+|y1-y2|$

字符串用cin读会去掉多余空格

#includeusingnamespacestd;intmain(){strings;while(cin>>s)cout<#include#includeusingnamespacestd;intmain(){chars1[100]="helloworld!",s2[100];cout<#includeusingnamespacestd;intmain(){chara[100]="helloworld";for(inti=0,len=strlen(a);i

/*开一个数组,存储a到z的出现次数'a''b''c''d'...'z'0123...25*/#include#includeusingnamespacestd;intcnt[26];charstr[100010];intmain(){cin>>str;intlen=strlen(str);for(inti=0;i

for(inti=0;str[i];i++)经典题:密码翻译,输入一个只包含小写字母的字符串,将其中的每个字母替换成它的后继字母,如果原字母是’z’,则替换成’a’。

for(char&c:s)if(c>='a'&&c<='z')c=(c-'a'+1)%26+'a';elseif(c>='A'&&c<='Z')c=(c-'A'+1)%26+'A';难题:字符串模拟题

设猎人为0狗熊为1枪为21赢02赢10赢2xyif(x==y)Tieif(x=(y+1)%3)Player1赢elsePlayer2赢30.substr(pos,count)的用法substr(pos,count)函数:pos-要包含的首个字符的位置count-子串的长度返回含子串[pos,pos+count)的string举例:左旋转字符串:输入:”abcdefg”,n=2输出:”cdefgab”

用fgets()输入字符数组:

//用fgets()输入字符数组chara[100],b[100];//去掉末尾回车fgets(a,100,stdin);fgets(b,100,stdin);intx=strlen(a),y=strlen(b);if(a[x-1]=='\n')a[x-1]=0;if(b[y-1]=='\n')b[y-1]=0;用cin.getline()输入字符数组:

sstream头文件定义了三个类型来支持内存IO,这些类型可以向string写入数据,从string读取数据,就像string是一个IO流一样。

字符串数组有别于字符数组,定义字符串数组stringstr[100];可以先用while(cin>>str[n])读入,统计n倒排单词可以倒序排,输出str[i]<<''

/*要存的数:1.每个位置填的是哪些数?nums[]2.每个数组有没有被用过st[]3.u可以枚举到第几位?u*/#includeusingnamespacestd;constintN=10;intn;voiddfs(intu,intnums[],boolst[]){if(u>n)//表示已经填完所有数{for(inti=1;i<=n;i++)cout<>n;intnums[N];boolst[N]={0};dfs(1,nums,st);//从位置1,2,3的第1位开始枚举return0;}排列函数next_permutation()next_permutation(nums.begin(),nums.end())函数

/*输入:[1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]*/classSolution{public:vector>permutation(vector&nums){sort(nums.begin(),nums.end());vector>res;do{res.push_back(nums);}while(next_permutation(nums.begin(),nums.end()));returnres;}};第七讲结构体、类、指针、引用01.class和struct基本相同class和struct基本相同。里面的private和public可以不写,在class中,不写默认是private,但子啊struct中不写默认是public。

#includeusingnamespacestd;structPerson{intage,height;doublemoney;Person(){}//没有参数的构造函数Person(int_age,int_height){}Person(int_age,int_height,double_money)//有参数的构造函数{age=_age;height=_height;money=_money;}//简短的写法,效率会更快一些Person(int_age,int_height,double_money):age(_age),height(_height),money(_money){}};intmain(){Personp={18,180};cout<

方法:先让该节点伪装成其next节点6变成8,再把next节点干掉(真正的8被干掉)

/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode(intx):val(x),next(NULL){}*};*/classSolution{public:ListNode*deleteDuplication(ListNode*head){autodummy=newListNode(-1);dummy->next=head;autop=dummy;while(p->next){autoq=p->next;while(q->next&&q->next->val==p->next->val)q=q->next;if(q==p->next)p=q;elsep->next=q->next;}returndummy->next;}};第八章C++STL01#includevector是变长数组,支持随机访问,不支持在任意位置$O(1)$插入。为了保证效率,元素的增删一般应该在末尾进行。

#include#includeusingnamespacestd;intmain(){vectora({1,2,3});//方式一for(inti=0;i::iterator迭代器类型for(autoit=a.begin();it!=a.end();it++)cout<<*it<<'';cout<头文件queue主要包括循环队列queue和优先队列priority_queue两个容器。

THE END
1.十种常见典型算法算法有哪些那么又是哪10个计算机算法造就了我们今天的生活呢?请看下面的表单,排名不分先后: 1.归并排序(MERGE SORT),快速排序(QUICK SORT)和堆积排序(HEAP SORT) 哪个排序算法效率最高?这要看情况。这也就是我把这3种算法放在一起讲的原因,可能你更常用其中一种,不过它们各有千秋。 https://blog.csdn.net/darkhorsefly/article/details/134222961
2.10大计算机经典算法「建议收藏」腾讯云开发者社区BFPRT算法解决的问题十分经典,即从某n个元素的序列中选出第k大(第k小)的元素,通过巧妙的分析,BFPRT可以保证在最坏情况下仍为线性时间复杂度。该算法的思想与快速排序思想相似,当然,为使得算法在最坏情况下,依然能达到o(n)的时间复杂度,五位算法作者做了精妙的处理。 https://cloud.tencent.com/developer/article/2089934
3.数据挖掘的10大算法我用大白话讲清楚了,新手一看就懂数据挖掘主要分为分类算法,聚类算法和关联规则三大类,这三类基本上涵盖了目前商业市场对算法的所有需求。而这三类里又包含许多经典算法。市面上很多关于数据挖掘算法的介绍深奥难懂,今天就给大家用简单的大白话来介绍数据挖掘十大经典算法原理,帮助大家快速理解。算法分类 连接分析:PageRank 关联分析:Apriori 分类算法http://baijiahao.baidu.com/s?id=1669165676284257223&wfr=spider&for=pc
4.普通物理学(一)课程教学大纲简谐振动的描述、动力学方程、能量,同方向简谐振动的合成,相互垂直的两个简谐振动的合成,阻尼振动、受迫振动。 2.教学要点 使学生掌握简谐振动的余弦表达式,旋转矢量、相位等概念。掌握无阻尼自由振动的周期、频率、能量等概念,掌握同方向同频率简谐振动的合成,理解李萨如图形,了解阻尼振动、受迫振动。 https://physics.suda.edu.cn/6f/8f/c1873a28559/page.htm
5.数学的论文优秀(15篇)3)注重经典算法的数学软件的实现和改进 由于实际问题的特殊性导致数学模型没有固定的模式,这就要求既要熟练掌握一般数学软件和算法的实现,又要善于改进和总结,使得现有的算法和程序能够通过修正来解决实际问题,这对于学生能力的培养不可或缺。只有不断的学习和总结,才有数学素养的培养和创新能力的提高。 https://www.yjbys.com/biyelunwen/fanwen/shuxue/734624.html
6.《三位数乘两位数》教案(精选15篇)教材第5、6页,想想做做第5~10题 教学目标: 同过练习,使学生进一步掌握、规范末尾有0和中间有0的三位数乘两位数的简便笔算方法。 探索乘数、积的变化规律,进一步明白末尾有0乘法的口算依据。 教学重点: 末尾有0的三位数乘两位数的笔算 教学过程: 一、举例昨天学生作业中的几种典型错误:(竖式略) https://www.ruiwen.com/jiaoan/7431605.html
7.计算机网络与通信之局域网51CTO博客以太网交换机是一种即插即用设备,其内部的帧交换表是通过自学习算法自动地逐渐建立起来的; 支持不同的传输速率和工作模式; 低交换延迟–基于硬件交换技术; 支持虚拟局域网服务。 独占传输媒体的带宽而无碰撞地传输数据 对于普通 10 Mb/s 的共享式以太网,若共有 N 个用户,则每个用户占有的平均带宽只有总带宽(10https://blog.51cto.com/u_16011718/6127981
8.小学一年级数学人教版下册教案生1:我能用小棒摆出自己的算法:先摆出1捆零2根小棒,再从1捆中拿掉8根,把剩下的2根与原来的2根合起来是4根,所以12-8=4。 生2:我能把自己的算法画出来:先在左边画10个圆圈,右边画2个圆圈,表示12,然后从左边的10个圆圈中划掉8个,剩下的2个与右边的2个合起来是4个,即12-8=4。 https://www.unjs.com/jiaoan/shuxue/20220802201517_5383426.html
9.文案必读:创意100招上卷举例:我有一个朋友 / 同学 / 同事 比喻:你比如说 / 这就好像 段子搞:不一定非要段子,你怎样给孩子讲故事、和闺蜜怎样打闹、和兄弟怎样喝酒吹牛,就怎样写。因为文字会自然沾染你的情绪的,你情绪冷,文字就冷,你情绪热,文字就热。 11. 咒语 https://www.digitaling.com/articles/33865.html
10.生命宇宙以及任何事情的终极答案《终极算法》的作者佩德罗?多明戈斯教授有一个假设: 所有知识,无论是过去的、现在的还是未来的,都有可能通过单个通用学习算法来从数据中获得。 多明戈斯将该学习算法称为“终极算法”。 他认为,如果这种算法成为可能,它的发明将成为人类最伟大的科学成就之一。实际上,终极算法是我们最不愿意发明的东西,因为一旦对其https://36kr.com/p/1722788823041.html
11.10个经典的C语言面试基础算法及代码算法是一个程序和软件的灵魂,作为一名优秀的程序员,只有对一些基础的算法有着全面的掌握,才会在设计程序和编写代码的过程中显得得心应手。本文是近百个C语言算法系列的第二篇,包括了经典的Fibonacci数列、简易计算器、回文检查、质数检查等算法。也许他们能在你的毕业设计或者面试中派上用场。 1、计算Fibonacci数列 https://www.imooc.com/article/2775
12.统计学权威盘点过去50年最重要的统计学思想,因果推理bootstrap等他们认为,过去半个世纪中最重要的统计思想是:反事实因果推理,基于bootstrapping(自助抽样法)和基于模拟的推理,超参数化模型和正则化,多层模型,泛型计算算法(generic computation algorithms),自适应决策分析,鲁棒推理和探索性数据分析(未按时间顺序,排序不分先后)。 https://www.thepaper.cn/newsDetail_forward_12835098
13.2020年深度学习算法工程师面经(微软阿里商汤滴滴华为简单分为深度学习、机器学习基础、图像处理基础、数学基础、算法基础、程序设计语言、模型部署、HR面试以及与我本人简历相关的目标检测、属性识别、Kaggle及天池的比赛、创新想法等几个部分介绍。可能开始会有重叠或者分类不恰当,后面会逐渐更新完善。其中第一篇先介绍到HR面试,第二篇介绍个人相关的项目和比赛部分。https://maimai.cn/article/detail?fid=1514590373&efid=Oph3033j5Qs70xHZdz0sGA