CSP考场Emacs使用指南[原创] (2)

考场易记高级配置

(set-background-color "gray15") (set-foreground-color "gray") (global-set-key [f9] 'compile) (global-set-key [f10] 'gud-gdb) (global-set-key (kbd "C-s") 'save-buffer) (global-set-key (kbd "C-a") 'mark-whole-buffer) (global-set-key (kbd "RET") 'newline-and-indent) (setq default-cursor-type 'bar) (setq default-tab-width 4) (setq c-default-style "awk") (set-frame-parameter (selected-frame) 'alpha (list 85 50))

粘贴完之后呢

保存,关闭即可。这时候再用GNU Emacs 25(GUI)打开你任意一个程序

哇,爽爆了

修改配置的好处都有啥?

谁说对了就给他

御·Dragon的感受如下

F9一键编译,可以避免在终端g++时编译错误又返回而浪费时间。

F10一键运行,不用到终端去了

编译器透明,(需要超级豪华顶级配置),要看题面、数据时不用总是切屏

页面及其清爽

@Karry5307 大神给出了一些别的界面优化

CSP考场Emacs使用指南[原创]

Ubuntu对拍帮手

对拍是什么?

这里我不细说。

就是两个源程序,一个对拍程序,随机一组数据比较两个源程序的输出一不一样

Ubuntu的对拍怎么弄?

注意:对拍一定要开文件!

我们这里一共需要 4 个程序,分别是"data.cpp"、"my.cpp"、 "text.cpp"、"check.sh"

(重点) 在每次修改完后、对拍前,请先进入"my.cpp"、"text.cpp"与"data.cpp"进行编译,否则新的对拍只会测试修改前的代码,使得答案不改变!

"data.cpp"为数据生成程序,随题目需要求改

我们还是拿A+B举例子,A+B的随机数据代码如下

#include<bits/stdc++.h> using namespace std; const long long MOD=1e18; int main() { freopen("input.in","w",stdout);//input.in是对拍当前输入数据的文件 srand(time(NULL));//这个地方很重要,保证了你每次随机出来的数不一样 int a,b; a = rand()%100000000;//随机数 b = rand()%100000000;//随机数 printf("%d %d",a,b); return 0; }

"my.cpp"为 自己写的 程序(即正确性需要对拍验证的程序)

#include<bits/stdc++.h> using namespace std; int a,b; int main(){ freopen("input.in","r",stdin); freopen("my.out","w",stdout); scanf("%d %d",&a,&b); printf("%lld",(long long)(a + b - 1)); puts(""); return 0; }

"text.cpp"为与你自己程序 对拍的程序 (如题解、暴力等)

#include<bits/stdc++.h> using namespace std; int a,b; int main(){ freopen("input.in","r",stdin); freopen("text.out","w",stdout); scanf("%d %d",&a,&b); printf("%lld",(long long)(a + b - 1)); puts(""); return 0; }

"check.sh"为对拍程序

在check.sh中输入(推荐使用emacsGUI编译)

#!bin/bash while true; do ./data ./my ./text if diff my.out text.out; then echo AC else echo WA exit 0 fi done

以上全部保存到文件里面即可。

然后在终端输入在终端输入

bash ./check.sh

即可运行进行对拍

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzxfsj.html