首页 > 其他分享 >HydroOJ 从入门到入土(7)Hydro自带数据生成器使用说明(>=4.10.1)

HydroOJ 从入门到入土(7)Hydro自带数据生成器使用说明(>=4.10.1)

时间:2023-12-17 16:58:06浏览次数:28  
标签:std 4.10 int random 生成器 HydroOJ test data

Hydro更新了一个新功能, 可以直接用自带的数据生成器, 在线生成数据, 简单记录一下使用方法

目录

1. 文件准备

  • gen.py (数据生成器, 后附模版)
  • std.cpp (标准程序, 后附模版)

文件名随意, 其他的类型应该也行, 不过没试.

2.使用步骤

  1. 将以上两个文件上传到测试数据里
  2. 生成测试数据(Beta)的两个栏里, 分别填上gen.pystd.cpp
  3. 点击生成, 此时会弹出一个界面, running并且generating数据点.
  4. 成功生成完成之后, 检查一下自己的测试数据, 应该已经有若干测试数据了.

3. 注意事项

  1. 生成器只需要生成输入文件, 我用了文件读写, 不知道用 print 行不行, 用空再试
  2. 不支持 cyaron, 得自己处理 nix 下的 python 环境, 比如把 cyaron 的包手动传到 Python 里.

4. 文件模版

gen.py

import random

_n = [0, '0', '3', 'a', 'z', 'A', 'Z', '{', '@', '[', '`']
_m = [0, 10, 4, 20, 4, 20, 19, 20, 19, 15, 2500]

nums = range(10000)
for i in range(1, 11): 
    test_data = open(f"{i}.in", 'w') 

    n = random.randint(5, 100)
    ls = random.sample(nums, n)
    for i in range(n):
        ls[i] *= random.choice([-1, 1])
    test_data.write(f'{n}\n')
    test_data.write(' '.join(map(str, ls)))

    test_data.close()

std.cpp

#include <bits/stdc++.h>
using namespace std;

int a[110], n;

bool cmp(int a, int b){ return abs(a) > abs(b); }

int main(){
	cin >> n;
	for (int i = 0; i < n; ++i)
	{
		cin >> a[i];
	}
	sort(a, a+n, cmp);

	for (int i = 0; i < n; ++i)
	{
		cout << a[i] << ' ';
	}
	
	return 0;
}

标签:std,4.10,int,random,生成器,HydroOJ,test,data
From: https://www.cnblogs.com/bowen404/p/17909307.html

相关文章

  • python高级之生成器
    生成器一、生成器与yield若函数体包含yield关键字,再调用函数,并不会执行函数体代码,得到的返回值即生成器对象defmy_range(start,stop,step=1):print('start...')whilestart<stop:yieldstartstart+=stepprint('end...')g=my_range(0,3)......
  • C#_Win32_PInvoke源码生成器
    介绍一个源代码生成器,用于向C#项目添加一组用户定义的Win32P/Invoke方法和相关的类型。链接地址:https://github.com/microsoft/CsWin32还在手动添加平台调用的代码或者增加无用的程序集?微软的官方解决方案来了!特色快速将P/Invoke方法和相关类型添加到您的C#项目......
  • 【python基础之生成器】---生成器
    title:【python基础之生成器】---生成器date:2023-12-1418:54:06updated:2023-12-0619:42:00description:【python基础之生成器】---生成器cover:https://home.cnblogs.com/u/dream-ze/【一】什么是生成器?-Python中的生成器是一种特殊的迭代器,可以在需......
  • 生成器
    生成器生成器一定是迭代器,迭代器不一定是生成器可以在需要时生成数据,通过生成器,可以逐个生成序列中的元素,而无需一次性生成整个序列生成器也能用next()方法,因为生成器是一种特殊的迭代器【一】生成器的两种创建方式(1)列表生成式列表num_list=[iforiinrange(10)......
  • 生成器
    生成器1.生成器生成器是一种特殊的迭代器(迭代器不一定是生成器,但生成器一定是迭代器)生成器是由函数+yield关键字创造出来的写法,在特定情况下,用他可以帮助我们节省内存1.1生成器函数函数中有yield存在时,这个函数就是生产生成器函数deffunc():print(111)yiel......
  • 生成器
    生成器(一)什么是生成器Python中的生成器是一种特殊的迭代器,可以在需要时生成数据,而不必提前从内存中生成并存储整个数据集。通过生成器,可以逐个生成序列中的元素,而无需一次性生成整个序列。生成器在处理大数据集时,具有节省内存、提高效率的特点。生成器是一种特特殊迭代器......
  • yield关键字和生成器
    yield关键字和生成器【1】列表元组生成式num_list=[i**2foriinrange(10)]#[0,1,4,9,16,25,36,49,64,81]【2】yield关键字defgenerator():yield1yield2yield3generator=generator()print(next(generator))defeat():print('开始......
  • 迭代器、生成器
    【一】迭代器迭代器(Iterator)是Python中用于遍历可迭代对象的一种机制。可迭代对象是指那些可以被迭代的对象,例如列表、元组、字符串、集合、字典。迭代器提供了一种顺序访问可迭代对象元素的方式,而不需要事先知道对象的内部结构。迭代器是通过实现两个特殊方法来工作的:__iter......
  • 生成器
    生成器Python中的生成器是一种特殊的迭代器,可以在需要时生成数据,而不必提前从内存中生成并存储整个数据集。通过生成器,可以逐个生成序列中的元素,而无需一次性生成整个序列。生成器在处理大数据集时,具有节省内存、提高效率的特点。迭代器不一定是生成器,生成器一定是迭代器。......
  • 迭代器和生成器
    迭代器什么是迭代器迭代器指的是迭代取值的工具,迭代是一个重复的过程,每次重复都是基于上一次的结果而继续的,单纯的重复并不是迭代。为何要有迭代器迭代器是用来迭代取值的工具,而涉及到把多个值循环取出来的类型有:列表,字符串,元组,字典,集合,打开文件文件是可迭代对象,也是迭代器......