写在我的笔记系列最前面:博客的内容为本人学习《算法竞赛入门到进阶》的学习记录,仅用来记录自己的一个学习过程,不在乎别人怎么看怎么评价,大不了私密即可。同时关于博客的排版,因为是直接从笔记中粘贴过来,并且也是为了节省时间,所以排版并不会多好看。
写笔记的参考书籍已经告知,那么笔记主要记什么内容,参照12届蓝桥杯的比赛范围。
-
OJ如何判题(根据测试数据只看输入输出)
上面为四种情况AC,TLE,PE,WA等,最好情况是AC。
比赛的时候可以考虑用打表的方式来
混分,即给定什么输入,输出什么,就直接cout即可。
-
输入输出函数
这里主要是考虑putchar和puts,getchar和gets的区别
有个s说明是string类型,即为字符串类型
-
输出结束的方式(自己常用的为第二种其余两种写法要看懂)
一般根据题目给多少的数据量,就定义长度进行输入。
或者直接给定几个参数,不用while循环语句,直接一次性输入所有
就2021.1.5前来看,一般都是直接输入所有的数再进行数据处理和算法运算。
对于第三种情况的输入,例如输入10个数字,如果当前输入的数是0则停止输入数据
2021.1.5之前对于这种情况是这样解决的(以后所有代码都只涉及到主体代码,不涉及到所有)
方法1(旧方法):
int n,a[11];
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
if(a[i]==0)break;
}
方法2(新方法):
int n;
while(~scanf("%d",&n)&&n)
注意,如果用cin来进行输入,则在while中不允许使用"~cin",否则出现如下错误。
-
输入输出效率分析
这说明在大数据量的情况下,用scanf和printf比cin与cout效果更好