zoukankan      html  css  js  c++  java
  • 一些有用但没用的东西

    ioi 打完就想发了,鸽到了现在,写点关于交互题的东西。

    我是一个主用 vim 写代码的人,用 gdb 调试的人。

    我在写交互题的时候(或任何要多文件编译的时候),或多或少会有些难受。在以前我会采取编写代码时,将交互库贴到我代码前变为单文件编译,最后再删掉前面多文件编译检查。即使这样也会比较难受。

    后来我发现了一种比较好的解决方案:

    // filename : test.cpp
    #include "akioi.h"
    #include "grader.cpp"
    
    void solve(int n) {
    }
    

    注意,这样还是可能访问到 grader.cpp 内变量,建议还是要多文件编译检查一下

    上面说到,我是 gdb 调试的选手,gdb 在处理多文件时候依然会比单文件难受,主要是你在使用 b/break 命令时候,gdb 不知道你说的是哪个文件,它一般采用你上一次使用 list 展示代码的文件,没有就是 main 所在文件(可能不对,但我目前看来是这样)。也就是说,你打开 gdb 就是一个 break,它是 break 在 grader.cpp 的,这一般不是你写交互题时候想要的。而如果你在一开始使用了 list test.cpp:1,0,那么后面 break 都会是在 test.cpp

    当然,作为一个优秀的鸽子,我当然是不想每次打开 gdb 就先打个 list test.cpp 的,我发现 gdb 有个参数是 --eval-command,它会在所有命令前运行。因此我们把 gdb 启动命令从 gdb test 改成 gdb test "--eval-command=list test.cpp:1,0" 就可以了(可能有转义问题,有的话大家自己调调),这完全是可以写进 vim 配置的,而且传统题使用这条指令也是完全没有问题。

    这都是训练 ioi 时候写交互写疯了整出的的东西,而且 ioi 试机赛时候才搞好

  • 相关阅读:
    ethtool 命令输出的注意点--网卡参数
    centos7.2+zabbix3.2+sedmail邮件告警
    vscode monokai
    SQL SERVER 常用命令
    数据库问题6-將系統資料表對應至系統檢視
    数据库问题5-SYS.SYSPROCESSES使用和查找死锁
    select * from sys.sysprocesses
    【SQL Server学习笔记】事务、锁定、阻塞、死锁 sys.sysprocesses
    使用DMV调优性能 --Burgess_Liu
    sql server线程等待信息
  • 原文地址:https://www.cnblogs.com/skip1978/p/15620960.html
Copyright © 2011-2022 走看看