1、const double pi = acos(-1.0);

acos:反余弦函数,需要#include<math.h>函数库,acos(-1.0)的意思就是求π的值

2、算法竞赛中,不要让程序”按任意键退出”(例如,调用system(“pause”))

3、算法竞赛中不要用头文件#include<conio.h>,包括getch(),clrscr()

4、尽量用const关键词声明常数

5、floor(x),floor函数,功能是“向下取整”,即取不大于x的最大整数

在经过大量计算后,由于误差影响,整数1变成了0.99999,floor的结果会是0而不是1.为了减小误差的影响,一般改成四舍五入,即floor(x+0.5)。

6、for(int x = 1; ; x++)

{

int n=x * x;

If(n < 1000) continue;

If(n > 9999) break;

}

continue是指跳回for循环的开始

break是指直接跳出循环。

7、factorial:阶乘,以后弄阶乘可以设这个

8、clock函数(#include<time.h>)

可以使用公式clock()/CLOCKS_PER_SEC来计算一个进程自身的运行时间,之后得到的值以“秒”为单位。

9、在Window下,输入完毕后先按Enter键,再按Ctrl+Z键,最后在按下Enter键,即可结束输入。

在Linux下,输入完毕后按Ctrl+D键即可结束输入。

10、使用文件最简单的方法是使用输入输出重定向,只需在main函数的入口处加入以下两条语句:

freopen(“input.txt”,”r”,stdin);

freopen(“output.txt”,”w”,stdout);

上述语句将使得scanf从文件input.txt读入,printf写入文件output.txt

11、while(scanf(“%d”,&n)==1 && n)

==1:表示判断输入的是否为整形数值,如果不是整形,则此条件不成立(例如输入字母a,则返回值为EOF即不为1)

&&n:表示要求n为非零的数值

整句话的意思就是,输入非零的整形数值时进入循环

12、当嵌套的两个代码块中有同名变量时,内层的变量会屏蔽外层变量,有时会引起十分隐蔽的错误。

13、在算法竞赛中,如果不允许使用重定向方式读写数据,应使用fopen和fscanf/fprintf进行输入输出

14、memcpy函数要包含头文件string.h

从数组a中复制k个元素到数组b:memcpy(b,a,sizeof(int)*k)

如果数组a和b都是浮点型,写成 memcpy(b,a,sizeof(double)*k)

如果要讲数组a全部复制到数组b中,可以写得简单一些:memcpy(b,a,sizeof(a))

15、memset(a,9,sizeof(a))的作用是把数组a清零,它也在string.h定义

16、输出小技巧:为了避免输出多余空格,设置了一个标志变量first,可以表示当前要输出的变量是否为第一个

if(a[i]){if(first)first = 0;else printf(“ ”);printf(“%d”,i);}

17、if(a);if(!a);if(a!=0);if(a==0)有什么区别?

if(a);如果a为真就继续,这里的真包括非0数字和字符,
if(!a);就是如果a为假就继续,这个和最后一个等价
if(a!=0);这个就是如果a不等于0
if(a==0) 如果a等于0

18、scanf(“%s”,s),它会读入一个不含空格、TAB和回车符的字符串,存入字符数组s,不要在s的前面加上&符号。如果是字符串数组char s[maxn][maxl],可以用scanf(“%s”,s[i])读取第i个字符串,需要注意,scanf(“%s”,s)遇到空白字符会停下来。

19、strlen():统计字符串长度,不过记得最后有一个’\0’也会被统计!

20、getchar()吃掉空格和回车

21、C语言中的数学函数可以定义成“返回类型 函数名(参数列表){函数体}”,其中函数体的最后一句应该是“return 表达式;”

double dist( double x1, double y1, double x2, double y2)

{

return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));

}

22、hypot:math库,计算三角形的斜边长    hypot(a,b);

23、swap(a,b)  交换a,b    可以自己定义函数

void swap(int a,int b)
{
int temp;
temp=a;
a=b;
b=temp;
}

24、return n== 0?1:f(n-1)*n;  当n=0的时候返回1,否则返回返回f(n-1)*n

25、while(scanf(“%d%d”,&a,&b) == 2) printf(“%d\n”,a+b);

如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF

26、C++中iostream提供了输入输出流,algorithm提供了一些常用的算法

27、C++中提供了一个新的string类型,用来替代C语言中的字符数组。string类型往往是更好的选择,C++中的cin/count可以直接读写string类型。

以上是在小白书学习的时候自己学习的一些知识点,在实际做题中,也有一些长进,可看下面这些点

1、使用sort函数的时候,假设数组是a[1000],里面有n个数,sort都是这么用的

sort(a,a+n),不过这个有个局限性,就是所有排序好的内容都是从小到大,我们可以加一个cmp解决这个问题

在int main()前面构造一个函数,int cmp

Int cmp(int a,int b)

{

return a>b;(此处a>b就是由大到小,a<b就是由小到大)

}

sort(a,a+n)改成sort(a,a+n,cmp)

这个在实际做题目的时候比较常用

2、输入输出二维字符数组

由于gets和puts我尚未完全掌握,因此我这里用scanf和printf来写

char w[100][50];

scanf("%s",w[i]);

Printf("%s",w[i]);

scanf后面没有&,二维数组后面那个[]不要写出来

3、strlen在字符的题目里面会经常用到用来判断字符的长度

4、极大的数字存入数组,因为有些题目会给出位数很大的数字,我们可以先定义一个(char)字符数组,将其作为字符存入字符数组中,之后再定义一个int 整数数组,将其-’0’存入整数数组中

假设存入的字符数组是a[ ],整数数组是b[ ],那么我们可以用

for(int j=0;j<strlen(a);j++)

a[j]=b[j]-'0';

将其转换

ACM自己之前寒假的基础总结的更多相关文章

  1. 2020牛客寒假算法基础集训营2 J题可以回顾回顾

    2020牛客寒假算法基础集训营2 A.做游戏 这是个签到题. #include <cstdio> #include <cstdlib> #include <cstring ...

  2. 2020牛客寒假算法基础集训营1 J题可以回顾回顾

    2020牛客寒假算法基础集训营1 这套题整体来说还是很简单的. A.honoka和格点三角形 这个题目不是很难,不过要考虑周全,面积是1,那么底边的长度可以是1也可以是2, 注意底边1和2会有重复的, ...

  3. 『ACM C++』PTA浙大 | 基础题 - 打印沙漏

    <数据结构>开课前的一些小作业练习,可能因为一个寒假都没有打C++手生了,整个寒假都在帮拍电影做后期特效,导致这道题居然用了两个钟去AC,深感惭愧,作个标记吧,下面上题. 一首好曲推荐:同 ...

  4. 2020牛客寒假算法基础集训营5 G.街机争霸 (bfs)

    https://ac.nowcoder.com/acm/problem/201961 预处理出僵尸走的路径,僵尸走的周期长度应该为2k-2,在普通的bfs基础上加上一维表示时间,从当前位置x,y和和时 ...

  5. 2020牛客寒假算法基础集训营5 G街机争霸

    题目描述 哎,又是银首,要是你这个签到题少WA一发就金了 牛牛战队的队员打完比赛以后又到了日常甩锅的时间.他们心情悲伤,吃完晚饭以后,大家相约到一个街机厅去solo.牛牛和牛能进入了一个迷宫,这个迷宫 ...

  6. 2017寒假零基础学习Python系列之 印子

    今日为2017年2月6日,据在慕课网上学习廖雪峰Python教程也快一周左右了,完全是零基础入门Python,大一上学期粗浅的接触学习了C语言,早就听说过Python语言的大名,又想把Python的爬 ...

  7. 欧拉函数-gcd-快速幂(牛客寒假算法基础集训营1-D-小a与黄金街道)

    题目描述: 链接:https://ac.nowcoder.com/acm/contest/317/D来源:牛客网小a和小b来到了一条布满了黄金的街道上.它们想要带几块黄金回去,然而这里的城管担心他们拿 ...

  8. Applese 的毒气炸弹 G 牛客寒假算法基础集训营4(图论+最小生成树)

    链接:https://ac.nowcoder.com/acm/contest/330/G来源:牛客网 Applese 的毒气炸弹 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262 ...

  9. 牛客寒假算法基础集训营3处女座和小姐姐(三) (数位dp)

    链接:https://ac.nowcoder.com/acm/contest/329/G来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...

随机推荐

  1. 面试题:各大公司Java后端开发面试题总结 已看1 背1 有用 链接有必要看看

    ThreadLocal(线程变量副本)       --整理 Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量. 采用空间换时间,它用于线程间的数据隔离,为每一个 ...

  2. Solidity开发、测试、部署

    这篇文章很详细的列举了几种方式来开始solidity开发: https://medium.com/@davekaj/solidity-tips-and-tricks-for-beginners-bui ...

  3. Mr_matcher的细节3

    主要是订阅了playbag发布的scan话题和odom话题 其类型分别为 //cache the static tf from base to laser getBaseToLaserTf(scan_ ...

  4. Entity Framework 6.0 Tutorials(10):Index Attribute

    Index Attribute: Entity Framework 6 provides Index attribute to create Index on a particular column ...

  5. MSGPACK和PROTOBUF的故事(MSGPACK明显生产力不足)

    作者曾经在2014年测试出MSGPACK的关键字和中文字符有很大的冲突,所以后来放弃了,本文为很多年前写的一个对比,后来我们一直在使用HTTP协议和PROTOBUF. 看看MSGPACK的文档,自称效 ...

  6. Firefox浏览器控件安装方法

    说明:只需要安装up6.exe即可,up6.exe为插件集成安装包. 1.以管理员身份运行up6.exe.up6.exe中已经集成Chrome插件.  

  7. Long-Polling, Websockets, SSE(Server-Sent Event), WebRTC 之间的区别与使用

    1.首先看下最简单的SSE: 只用支持SSE的浏览器(大部分)即可,浏览器内置EventSource对象,该对象默认隔三秒刷新一下response的数据. HTML代码(取自w3cschool): & ...

  8. JVM锁实现探究2:synchronized深探

    本文来自网易云社区 作者:马进 这里我们来聊聊synchronized,以及wait(),notify()的实现原理. 在深入介绍synchronized原理之前,先介绍两种不同的锁实现. 一.阻塞锁 ...

  9. Nginx 进行性能配置

    总所周知,网络上我们购买的服务器的性能各不相同,如果采用 Nginx 的默认配置的话,无法将服务器的全部性能优势发挥出来,我们应该选择适合自己需求的配置. 当我们默认安装后 Nginx 后,我们便得到 ...

  10. 虚拟机网络配置,桥接模式和NAT模式

    虚拟机网络设置方式的研究: 主要就是桥接网络,和NAT模式: 桥接网络:桥接网络中,相当于虚拟机的网卡和主机的物理网卡均连接到虚拟机软件提供的VMnet0虚拟交换机上,因此虚拟机和主机是平等的,相当于 ...