C++算法竞赛必刷127道OJ题

 

1.准备 

1.1.洛谷的使用

1.1.1.洛谷的编译错误

刷新⼀下就能看到编译错误的信息:

1.1.2.洛⾕WA(wronganswer)

这说明代码运⾏结果和预期不符,所有答案都是错误的,这⼀定代码写的有问题。

1.1.3.洛⾕部分⽤例通过

⼀个题⽬可能有多个测试⽤例,有部分测试⽤例通过,但是也有部分测试⽤例未通过,基本的原因是 代码考虑不周全。

1.1.4 程序运⾏时出现运⾏时问题

这种场景代码是程序编译没有语法问题,编译产⽣了可执⾏程序,程序运⾏时出现了问题,⽐如:段 错误、除数为0等。 

1.1.4.1 段错误提⽰

1.1.4.2 除数为0的提⽰

 

1.1.5 题⽬运⾏有时间限制超时了

可能得的原因:

  • 1. 代码中不⼩⼼,造成死循环了
  • 2. 代码中算法复杂度太⾼,太耗时 

1.2. ⽜客竞赛

1.2.1 编译错误

1.2.2 答案错误

这种情况说明,代码是没有语法问题的,但是程序运⾏的结果,是不符合题⽬预期的。

1.2.3 通过部分⽤例

1.2.4 运⾏超时

  • 可能性:代码中出现了死循环,代码的算法复杂度确实是过⾼,太耗时。
  • 解决办法:检查代码、优化程序 

1.3.让Dev-C++支持C++11

在DevC++的使⽤过程中,有时候使⽤较新的语法,可能编译不过,提⽰错误,如下所⽰:

#include <iostream>
#include <string>
using namespace std;

int main() {
    string s = "abc";
    cout << "s:" << s << endl;

    // 第一次尾删
    s.pop_back();
    cout << "s after first pop_back:" << s << endl;

    // 第二次尾删
    s.pop_back();
    cout << "s after second pop_back:" << s << endl;

    // 注意:如果再次调用 s.pop_back(),将会导致未定义行为,因为此时字符串已为空
    // 但为了演示可能的错误处理,我们可以检查字符串是否为空再决定是否删除
    if (!s.empty()) {
        s.pop_back();
        cout << "s after potential third pop_back (if not empty):" << s << endl;
    } else {
        cout << "Cannot pop_back from an empty string." << endl;
    }

    return 0;
}

 pop_back是C++11这个版本中新增的成员函数,默认编译就会报错,那怎么解决呢?

菜单中,点击:⼯具->编译选项,打开

出现这样⼀个窗⼝:

勾选【编译时加⼊⼀下命令】,然后在下⽅的编译框中加⼊:

这样子就设置好了,我们重新编译一下

 点击确定即可。 要想⽀持其他C++的标准也是⼀样的⽅法。

-std=c++14
-std=c++17
-std=c++20
...

1.4.Dev-C++分辨率低解决方法

因为Dev-C++很久不再更新,⽽且版本⽐较⽼,所现在显⽰器的⾼分辨率⽀持不好,所以看起来显⽰不 够清晰。 为了解决这个问题,可以这样做:

1. 找到DevC++的桌⾯图标,右击点击属性,如下图:

2. 在属性中,点击【兼容性】,在兼容性中,点击【更改⾼DPI设置】

3. 在这个⻚⾯࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值