首页 > 系统相关 >如何在 Linux 上使用对拍

如何在 Linux 上使用对拍

时间:2023-08-21 19:22:34浏览次数:42  
标签:file Linux int clos 如何 freopen 使用 cpp define

和 Windows 差不多,你需要以下几个文件:

我们依次来看里面都有什么:

bf.cpp:

这个 cpp 是用来使用暴力得出正解的。

#include <bits/stdc++.h>

#define file(x) freopen(x,"r",stdin);
#define clos(x) freopen(x,"w",stdout);

using namespace std;

int main()
{
	file("a.in");clos(a.out);
	// 这是正确的暴力代码
	return 0;
}

data.cpp:

就是数据生成器,根据需求的格式生成数据即可。

#include <bits/stdc++.h>

#define file(x) freopen(x,"r",stdin);
#define clos(x) freopen(x,"w",stdout);

using namespace std;

const int seed=114514;

mt19937_64 mt((unsigned long long)&seed);

inline int rand(int l,int r)
{
	return uniform_int_distribution<int>(l,r)(mt);//<>不填写默认为int类型
	// uniform_int_distribution生成整数,<>不填写默认为int 
	//uniform_real_distribution生成实数 ,<>不填写默认为double 
}

int main()
{
	clos("a.in");
	// 这是数据的格式 赋值直接a=rand(1,10000)即可
	return 0;
}

dp.bash:

主要是让终端去运行的对比操作,文件名具体看自己叫什么。

t=0
while true;do
let t++
echo "# "$t
./data
./bf
./text
if diff a.ans a.out -Z;then
	printf "AC\n"
else
	printf "WA\n"
	break
fi
sleep 0.1
done

text.cpp:

用来放自己的代码。

#include <bits/stdc++.h>

#define file(x) freopen(x,"r",stdin);
#define clos(x) freopen(x,"w",stdout);

using namespace std;

int main()
{
	file("a.in");clos(a.out);
	// 这是你要测试的代码
	return 0;
}

然后打开终端,找到文件位置,先将每个文件编译一下,g++ text.cpp -o text 类似的格式即可,dp.bash 需要用 chmod +x dp.bash 去编译,可以通过输入 ll 来看是否全部编译过:

每一个要运行的文件名最后的 x 都在说明是编译好的,注意每次修改后记得及时在终端重新编译。

最后直接输入 ./dp.bash 就可以开始对拍了,ctrl+c 可以退出对拍。

我将模板的链接放到这里,自己根据需要去使用即可。

标签:file,Linux,int,clos,如何,freopen,使用,cpp,define
From: https://www.cnblogs.com/Aewrxuk/p/17646830.html

相关文章

  • 【Windows 11】安装 Android子系统 和 Linux子系统
    本文使用电脑系统:文章目录一、安卓子系统1.1安装WSA1.2使用二、Linux子系统2.1安装WSL以及WSL相关概念2.2安装一个Linux发行版2.21从MicrosoftStore安装2.22用命令安装2.23拓展三、拓展3.1存储位置3.2虚拟化技术3.3Windows虚拟内存3.3wsl帮助文件一、安卓子系......
  • axios如何取消请求,其原理是什么?
    axios可以通过创建一个CancelToken来取消一个请求,基本原理是:创建一个CancelToken的实例,它有一个executor函数,可以通过调用executor参数中的cancel函数来取消请求。在axios请求配置中指定cancelToken属性,将CancelToken实例传递进去。当我们需要取消请求时,调......
  • TypeScript使用技巧
    文章目录使用技巧TypeScript内置的工具类型keyofextends限定泛型interface与type区别TypeScript作为JavaScript的超集,通过提供静态类型系统和对ES6+新特性的支持,使JavaScript开发变得更加高效和可维护。掌握TypeScript的使用技巧,可以帮助我们更好地开发和组织JavaScript项......
  • Apipost中自定义接口字段如何配置
    Apipost项目设置中可以配置接口文档中的自定义接口字段,创建状态码字典。分享分档时会展示到文档页面状态码字典在状态码字典中可以自定义状态码即其含义自定义的状态码会在分享的API文档中展示接口属性接口属性中可以自定义接口和接口文档展示字段,在接口属性中添加一个时间类型字段......
  • Apipost中自定义接口字段如何配置
    Apipost项目设置中可以配置接口文档中的自定义接口字段,创建状态码字典。分享分档时会展示到文档页面状态码字典在状态码字典中可以自定义状态码即其含义 自定义的状态码会在分享的API文档中展示 接口属性接口属性中可以自定义接口和接口文档展示字段,在接口属性中添加一......
  • 如何复制word的图文到xhEditor中自动上传
    ​ 1.编辑器修改(可选)1.1在 ueditor/config.json 中添加代码块    /* 上传word配置 */    "wordActionName":"wordupload",/* 执行上传视频的action名称 */    "wordFieldName":"upfile",/* 提交的视频表单名称 */    "wordPathFormat":"/p......
  • docker使用的核心技术
    1.cgroup,这个用来限制cpu和内存;(通过改配置文件,让pid的cpu和内存限制在配置文件里指定的大小) 2.namespace,这个用来隔离进程/文件系统等等;(unshare-m-u/bin/bash,那么当前session就是在一个namespace里了,在这里修改hostname和加载iso文件,是不会影响宿主机的;注意:不止有-m-u还有......
  • this.$set的使用方法
    //对象的属性sex的值更新为"男"letobj={name:"六四",age:18,sex:"女"}this.$set(obj,"sex","男")//第一个参数是对象,第二个参数是更新的属性名称,第三个参数是新的内容//更新之后的obj是{name:"六四",age:18,sex:"男"}letarr=["星期一&qu......
  • linux上SQL Server 配置管理器的使用
    概述我们知道Windows平台上的SQLServer配置管理器是一个图形工具,用于管理与SQLServer关联的服务、配置SQLServer使用的网络协议以及管理SQLServer客户端计算机的网络连接配置。我们还可以使用SQLServer配置管理器来启动、暂停、恢复或停止服务,查看服务属性或更改服务......
  • Ubuntu使用apt管理安装软件包
    一、apt简介        apt是AdvancedPackagingTool的简称,是一款安装包管理工具。在Ubuntu下,我们可以使用apt命令可用于软件包的安装、删除、清理等,类似于Windows中的软件管理工具。  二、apt管理软件包的相关命令sudoapt-getupdate  更新源 ......