示例#1
0
def generate_case():
    test_data = cyaron.IO(file_prefix="tree", data_id=session['token'])
    t = cyaron.Graph.tree(random.randint(1000, 10000))
    session['queries'] = random.randint(2000, 20000)
    cnt_edges = len(t.edges) - 1
    test_data.input_write(cnt_edges, session['queries'])
    test_data.input_writeln()
    test_data.input_writeln(t)
    data[session['token']] = []
    for i in range(session['queries']):
        query = (random.randint(0, cnt_edges), random.randint(0, cnt_edges))
        test_data.input_writeln(query)
        data[session['token']].append(query)
    test_data.output_gen('./ans')
    ans[session['token']] = []
    with open('tree' + session['token'] + '.out') as f:
        for i in f.readlines():
            ans[session['token']].append(i)
    os.remove('./tree' + session['token'] + '.in')
    os.remove('./tree' + session['token'] + '.out')
    ret = str(cnt_edges) + ' ' + str(session['queries']) + '\n'
    ret += t.to_str() + '\n'
    ret += str(data[session['token']][0][0])+' ' + \
        str(data[session['token']][0][1])+'\n'
    checked[session['token']] = False
    return ret
示例#2
0
def gerenateData(_n):
    for i in range(0, len(_n)):
        data_output = cy.IO(file_prefix="data",
                            data_id=i + 1,
                            disable_output=False)
        data_output.input_writeln(_n[i])
        data_output.input_write(cy.Vector.random(_n[i], [(1, 1000)]))
        data_output.output_gen("mergeSort.exe")  # 待测试的排序程序
示例#3
0
文件: gen.py 项目: hkr04/OI
import random
import cyaron

n_lst=cyaron.ati([0,1,1,8,8,50,50,1000,1000,10000,10000])
m_lst=cyaron.ati([0,1,8,8,8,50,50,100, 100, 1000, 1000])


for i in range(1,11):
    test_data=cyaron.IO(file_prefix="divide",data_id=i)

    n=n_lst[i]
    m=m_lst[i]

    bjmax=min(m//4,10)
    if bjmax<1:
        bjmax=1
    bjmin=max(1,bjmax//10)
    wmax=max(n/m*3//2,1)
    if i==5:
        bjmax=1
    if bjmin>bjmax:
        bjmin=bjmax

    test_data.input_writeln(n,m)

    w=[random.randint(1,wmax) for i in range(m)]
    if sum(w)<n:
        w[random.randint(0,len(w)-1)]+=n-sum(w)

    test_data.input_writeln(w)
示例#4
0
import cyaron
import random

n_lst=cyaron.ati([0,15,13,14,15,5e3,5e3,5e3,5e5,5e5,5e5])
m_lst=cyaron.ati([0,1, 13,14,15,5e3,5e3,5e3,5e5,5e5,5e5])

for i in range(1,11):
    test_data=cyaron.IO(file_prefix="vote",data_id=i)

    n=n_lst[i]
    m=m_lst[i]

    test_data.input_writeln(n,m)

    w=cyaron.Vector.random(num=n,position_range=[(1,2000)],mode=1)

    test_data.input_writeln(w)

    for i in range(n):
        x=random.choice((1,2,3,4))
        if x==1 or x==2:
            y=random.randint(1,m)
        else:
            y=random.randint(0,m)
        test_data.input_writeln(x,y)

    #test_data.output_gen("D:/OI/Problems/Hanakiko_daily_1/data/vote/std.exe")
示例#5
0
import cyaron

example_datas = [1, 2]
secret_datas = list(range(3, 51))

for i in enumerate(example_datas):
    test_data = cyaron.IO(file_prefix="moore_example_",
                          data_id=i[0],
                          output_suffix=".ans")
    test_data.input_writeln(i[1])
    test_data.output_gen("std.exe")

for i in enumerate(secret_datas):
    test_data = cyaron.IO(file_prefix="moore_secret_",
                          data_id=i[0],
                          output_suffix=".ans")
    test_data.input_writeln(i[1])
    test_data.output_gen("std.exe")
示例#6
0
    ('0' * 100, 100),
    ('01' * 50, 0),    
    ('01' * 50, 1),
    ('01' * 50, 2),
    ('1100' * 25, 0),
    ('1100' * 25, 1),
    ('1100' * 25, 2),
    ('1100' * 25, 3),
    ('1' * 50 + '0' + '1' * 49, 100),
    ('1' * 50 + '0' + '1' * 49, 49),
    ('1' * 50 + '0' + '1' * 49, 50),
    ('1' * 50 + '0' + '1' * 49, 0),    
]

for i in range(len(example_datas)):
    test_data = cyaron.IO(file_prefix="crack_example_", data_id=i, output_suffix=".ans")

    n = len(example_datas[i][0])
    m = example_datas[i][1]
    s = example_datas[i][0]
    test_data.input_writeln(n, m)
    test_data.input_writeln(s)

    test_data.output_gen("std.exe")

for i in range(len(datas)):
    test_data = cyaron.IO(file_prefix="crack_hidden_", data_id=i, output_suffix=".ans")

    n = len(datas[i][0])
    m = datas[i][1]
    s = datas[i][0]
import cyaron as cy

n = [7, 20, 30]
m = [20, 40, 60]

for i in range(3):
    data_output = cy.IO(file_prefix="data",
                        data_id=i + 1,
                        disable_output=False)
    data_output.input_writeln(n[i], m[i])
    graph = cy.Graph.graph(n[i], m[i], directed=False,
                           weight_limit=(2, 10))  #建立n个点m条边的边权范围在2.10的有向图
    data_output.input_write(graph)
    data_output.output_gen("Dijkstra.exe")
    cy.Compare.program("Dijkstra.exe",
                       input=data_output,
                       std_program="SPFA.exe")