oj心得

4.使用OJ的时候注意方法

d.在使用条件判断语句的时候可以简化语句

例如(简化两步):

if(top!=0){return 1;}else{reutrn 0}
return top!=0 ? true: false;
return top!=0;

 

c.注意使用两个文件的比对方法

b.冒泡容易出现内存溢出或超时,C++中有sort函数,类似快排算法,但要在头文件加上#include<algorithm>,效率较高。

a.可以通过提交结果发现自己的错误原因

3.自己电脑运行程序没有问题,但OJ上却wrong answer总是有错误的原因:

e.今天做了一个纸牌分堆的问题,答案是运行出来了,但是提交的时候有两个显示通过,其他三个通道无法通过,纠结半天,也从网上搜到正确答案对比也差不多,以为是自己的代码没有写错,可能是oj就是这样,但是后面过小会我想起来用比对软件比较,这才发现移动的时候应该用加号再赋值,直接赋值虽然答案对了,但是编译通不过。

d.今天提交一个排队打水的问题,也是最后一个没通过,显示运行错误,找了半天也不知道什么原因,后面在网上看到别人通过的代码,把原来定义数组的长度101改为1010就通过了,但是不是很理解。

还有一个问题,就是碰到了编译错误,后面在网上查找给我灵感--编译错误就是的程序语法有问题,编译器无法编译,。点击错误链接,发现是在C++中使用printf,一定要使用头文件,否则编译无法通过。

参考:https://www.cnblogs.com/phoenixfooldante/articles/4141813.html

c.今天提交了一个集合划分,总共有5个通道,其中4个通过了,最后一个没有通过,从网上找资料发现,定义的函数类型有问题,换成long long类型就可以了,之前定义的是int类型不能通过。虽然解决了,但是不太明白为什么。

b.首先,你提交上去评测,系统怎么可能只测试样例呢?如果提交上去,只测试样例,那你直接输出样例就过了。
系统里面,对这题,是存放了一些强大、尽量全面的测试数据的,你一点点小bug,很容易暴露出来。

a.错误出现的原因,也要按编程的水平来

阶段0:初学编程语言。
出错原因:40%大思路错误,30%小细节没考虑,30%代码里写错了一个或几个小地方。

解决办法:认真学完一门编程语言

阶段1:学完了编程语言,开始刷题
出错原因:15%大思路错误,25%小细节没考虑,60%代码里写错了一个小地方/语言的库函数等理解不到位导致写错。

解决办法:1、代码模块化。2、有意识的训练全面考虑能力。

阶段2:刷题量大了,有经验了
出错原因:50%甚至更多,是自己写错了一个小地方(随水平越高,虽然总出错越小,但这个比例会越大的。)

参考:https://www.zhihu.com/question/32228695

2.遇到都不懂的题目

a.一定要多读几遍,多读,多读

b.根据下面给的例子带入题目理解,通过具体的数能够更好地理解题目的意思。例如1008:K进制数,那个总数不是和的意思,是总数量的意思

c.不要怕演算,结合题目在草稿纸上多划多想。

1.分析题目

a.做OJ题目不要过分追求代码的健壮性,对于一些输入输出不用去判断(当然如果时间充裕也可以完善完善)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值