【vijos】在vijos的自己的域中创建题目
創建屬于自己的域
https://vijos.org/
填入對應信息即可。
創建題目
點擊題庫
往下拉,點擊創建題目
進入題目之后,點擊設置
接下來就是重點,配置數據點:(如果想直接用,后面有捷徑。)
寫一個正確答案的代碼:
例如:
生成他的exe,VS用戶按照一下流程可以找到:
點擊:Debug文件夾之后即可找到。
Devc用戶exe文件在CPP文件旁邊:
重命名為:std.exe(弄懂之后,命名隨意,這里只是用作一個示范,下面就不說了,名字都可以進行修改。)
即可看到文件擴展名。
再創建一個生成數據的exe,命名為:gen.exe,示例代碼:
#include<iostream> #include<ctime> using namespace std;double random(double a, double b)///隨機數產生器,其范圍為[a,b); {return a + (b - a) * rand() / (RAND_MAX + 1.0); }int main() {srand((unsigned)time(NULL)); // 生成隨機種子random(1, 100);int a = random(1, 800);int b = random(1, 800);cout << a << " " << b << endl;return 0; }將std.exe和gen.exe復制到同一路徑中,創建兩個文件夾:
Input和Output。
創建文本文件,輸入以下內容:
@echo off set t=50 :loopgen.exe > Input\input%t%.txtstd.exe < Input\input%t%.txt > Output\output%t%.txt set /a t-=1 if %t% neq 0 goto loop pause50為測試數據數量,就是將gen.exe生成的輸入數據放入Input\input%t%.txt中,(%t%就和C語言的%d差不多,:loop就是開始循環,if %t% neq 0 goto loop就是結束條件,set /a t-=1,t隨著循環次數的增加而減少。),Input\input%t%.txt的數據又會輸入至std.exe中,最后生成輸出數據放入Output\output%t%.txt中。
保存之后雙擊就會將數據生成在各自的文件夾中。
接下來創建配置文件:
#include<iostream> using namespace std;int main() {int TimeLimit, ProblemSum;cout << "請輸入時限(單位為秒):";cin >> TimeLimit; cout << endl;cout << "請輸入題目數目(能夠被100整除,否則最后成績計算會出現錯誤,最大不能超過60):";cin >> ProblemSum; cout << endl;cout << "已輸入至Config.ini文件中。" << endl;freopen("Config.ini", "w", stdout);cout << ProblemSum << endl;for (int i = 1; i <= ProblemSum; ++i){printf("input%d.txt|output%d.txt|%d|%d|\n", i, i, TimeLimit, 100 / ProblemSum);} }生成exe文件之后重命名為:GenConfig.exe。
移動到與run.bat同一路徑中,雙擊:
輸入:
第二行的數字要和你生成的數據點數要相同。
壓縮至data.zip中即可。
然后選擇文件上傳之后點擊更新即可。
懶人造數據方法
其實只要按照這張圖片操作就可以了
鏈接:https://pan.baidu.com/s/13hKM0MgK-Z82aXL8YPbHiQ
提取碼:Tzq6
總結
以上是生活随笔為你收集整理的【vijos】在vijos的自己的域中创建题目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vijos p1404遭遇战
- 下一篇: gitlab 邮件服务器配置