noip 2022 第二题 喵了个喵 meow 在 Lemon LemonLime 中 SPJ Special Judge 测评 配置 设置

article/2025/9/26 22:45:38

noip 2022 第二题 喵了个喵 meow 在 Lemon LemonLime 中 SPJ Special Judge 测评配置设置

比赛目录如下:

用户程序(meow.cpp)如下:

#include <bits/stdc++.h>
using namespace std;template<typename T>
inline void read(T &x) {x = 0; char ch = getchar();bool f = 0;while (!isdigit(ch)) f |= ch == '-', ch = getchar();while (isdigit(ch)) x = x * 10 + ch - 48, ch = getchar();if (f) x = -x;
}
template<typename T>
inline void write(T x, char c) {if (x == 0) {putchar('0'), putchar(c);return;}static int stk[20];int top = 0;while (x) stk[++top] = x % 10, x /= 10;while (top) putchar('0' + stk[top--]);putchar(c);
}const int N = 605, M = 4000005;
int T, n, m, k, a[M], bel[N], stk[N], top;
int op[M], x[M], y[M], tot, cur[N];
vector<int> b[N];inline void push1(int x) {op[++tot] = 1;::x[tot] = x;
}
inline void push2(int x, int y) {op[++tot] = 2;::x[tot] = x, ::y[tot] = y;
}inline int get_pos(int x) {return b[bel[x]][0] == x ? 1 : 2;
}
inline void popBack(int pos) {int x = b[pos].back();b[pos].pop_back();bel[x] = 0;stk[++top] = pos;
}
inline void popFront(int pos) {int x = b[pos][0];b[pos].erase(b[pos].begin());bel[x] = 0;stk[++top] = pos;
}void solve() {read(n), read(m), read(k);for (int i = 1; i <= m; ++i) read(a[i]);if (n == 1) {write(m, '\n');for (int i = 1; i <= m; ++i) write(1, ' '), write(1, '\n');return;}for (int i = 1; i <= n; ++i) b[i].clear();for (int i = 1; i <= k; ++i) bel[i] = 0;top = tot = 0; for (int i = 1; i < n; ++i) stk[++top] = i, stk[++top] = i;int empty_pos = n;for (int p = 1; p <= m; ) {int x = a[p];if (bel[x]) {if (get_pos(x) == 1) {push1(empty_pos);push2(bel[x], empty_pos);popFront(bel[x]);} else {push1(bel[x]);popBack(bel[x]);}++p;} else if (top) {bel[x] = stk[top--];push1(bel[x]);b[bel[x]].push_back(x);++p;} else {push1(-1);int tmp = tot;int pos = -1;int p1 = ++p;for (; p1 <= m; ++p1) {int y = a[p1];if (y == x) {break;} else {int b = bel[y];if (get_pos(y) == 2) {cur[b] ^= 1;} else {pos = b;break;}}}if (pos == -1) {::x[tmp] = empty_pos;for (int i = p; i < p1; ++i) {int y = a[i], b = bel[y];push1(b);}push1(empty_pos);for (int i = p1 - 1; i >= p; --i) {int y = a[i], b = bel[y];if (cur[b]) {popBack(b);cur[b] = 0;}}} else if (cur[pos] == 1) {::x[tmp] = empty_pos;bel[x] = empty_pos;b[empty_pos].push_back(x);for (int i = p; i <= p1; ++i) {int y = a[i], b = bel[y];push1(b);}popBack(pos), popBack(pos);top -= 2;cur[pos] = 0;for (int i = p1 - 1; i >= p; --i) {int y = a[i], b = bel[y];if (cur[b]) {popBack(b);cur[b] = 0;}}stk[++top] = empty_pos;empty_pos = pos;} else {::x[tmp] = pos;for (int i = p; i < p1; ++i) {int y = a[i], b = bel[y];push1(b == pos ? empty_pos : b);}for (int i = p1 - 1; i >= p; --i) {int y = a[i], b = bel[y];if (cur[b]) {popBack(b);cur[b] = 0;}}push1(empty_pos);push2(pos, empty_pos);bel[b[pos][0]] = 0;b[pos][0] = b[pos][1];b[pos][1] = x;bel[x] = pos;}p = p1 + 1;}   } write(tot, '\n');for (int i = 1; i <= tot; ++i) {write(op[i], ' ');if (op[i] == 1) {write(x[i], '\n');} else {write(x[i], ' ');write(y[i], '\n');}}
}int main() {freopen("meow.in", "r", stdin);freopen("meow.out", "w", stdout);read(T);while (T--) solve();return 0;
}

SPJ代码(chk.cpp)如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <deque>
#define STR_SIZE 10000int a[2222222];
std::deque<int> q[333];int specialJudge(FILE *in, FILE *out, FILE *ans){
// TODO: write your special judge hereint T;fscanf(in, "%d", &T);while(T--){int n,m,k;fscanf(in, "%d%d%d", &n,&m,&k);for(int i=1;i<=m;++i){fscanf(in, "%d", a+i);}int now=1;int op;if(fscanf(out, "%d", &op)!=1){return 0;}if(op<m||op>2*m){return 0;}for(int i=1;i<=op;++i){int v,s1,s2;if(fscanf(out, "%d", &v)!=1){return 0;}if(v==1){if(fscanf(out, "%d", &s1)!=1){return 0;}if(s1<=0||s1>n){return 0;}if(now<=m){if(!q[s1].empty()&&a[now]==q[s1].back()){q[s1].pop_back();}else{q[s1].push_back(a[now]);}++now;}}else if(v==2){if(fscanf(out, "%d%d", &s1, &s2)!=2){return 0;}if(s1<=0||s1>n||s2<=0||s2>n||s1==s2){return 0;}if(!q[s1].empty()&&!q[s2].empty()&&q[s1].front()==q[s2].front()){q[s1].pop_front();q[s2].pop_front();}}else return 0;}if(now<=m){return 0;}for(int i=1;i<=n;++i){if(q[i].size()){return 0;}}}return 1;
}
int main(int argc,char *argv[]){FILE * f_in=fopen(argv[1],"r");//标准输入 fpinFILE * f_out=fopen(argv[2],"r");//用户输入 fpoutFILE * f_std=fopen(argv[3],"r");//标准输出 fpansint score=atoi(argv[4]);//单个测试点分值FILE * f_score=fopen(argv[5],"w");//得分文件 FILE * f_report=fopen(argv[6],"w");//报告文件 /* compare the contents */if (specialJudge(f_in, f_out, f_std)){fprintf(f_report,"Right Output!!!");fprintf(f_score,"%d",score);}else{fprintf(f_report,"Wrong Answer");fprintf(f_score,"%d",0);}return 0; 
}

未加SPJ,测评如下:

加SPJ(将chk.cpp编译后的chk.exe文件放于spj4\data\meow\目录中,详见本文开始部分的比赛目录),测评如下:


http://chatgpt.dhexx.cn/article/EOhLfmtT.shtml

相关文章

数据库例题(创建数据库SPJ包含S、P、J和SPJ表)

目录 运行说明 例题 例题解答 运行说明 1、运行环境&#xff1a;win10 2、所需步骤&#xff1a; &#xff08;1&#xff09; 通过PowerDesigner软件创建逻辑数据模型(CDM)&#xff0c;再将其转换为物理数据模型(PDM)&#xff0c;再导出为SQL语句。 &#xff08;2&#xff…

Lemon LemonLime 中 SPJ Special Judge 使用 实践 入门 a

精度需要SPJ 入门&#xff1a; 题目&#xff0c;以整数形式给定圆的半径&#xff0c;输出该圆的周长&#xff0c;该圆的面积。 比赛目录如下&#xff1a; 标准输入输出数据如下&#xff1a; circle1.in 1 circle1.ans 6.283185 3.141593 circle2.in 2 circle2.ans 12.566370 12…

数据库---[复习2]---数据查询---设有一个SPJ数据库,包括S、P、J及SPJ4个关系模式··· ···

文章目录 问题重述数据表S表&#xff1a;P表&#xff1a;J表&#xff1a;SPJ表&#xff1a; 问题解析1. 找出所有供应商的姓名和所在城市2. 找出所有零件的名称&#xff0c;颜色&#xff0c;重量3. 找出使用供应商S1所供应零件的工程号码4. 找出工程项目J2使用的各种零件的名称…

Lemon LemonLime 中 SPJ Special Judge 使用 实践 入门 c

多解需要SPJ 入门&#xff1a; 题目&#xff1a;输出 Hello, World!&#xff0c;大小写不限。 比赛目录如下&#xff1a; 标准输入输出数据如下&#xff1a; string1.in(空文件&#xff0c;里面没有任何内容) string1.ans Hello, World! 用户程序(string.cpp)如下&#xff1a; …

Lemon LemonLime 中 SPJ Special Judge 使用 实践 入门 b

多解需要SPJ 入门&#xff1a; 题目&#xff1a;给出一个不小于12的正整数n&#xff0c;请你输出两个合数&#xff0c;使他们的和等于n,注意&#xff0c;每个测试&#xff0c;有多组测试数据. 比赛目录如下&#xff1a; 标准输入输出数据如下&#xff1a; sum1.in 2 12 13 sum1…

如何配置luogu,codeforces的spj(special judge)

洛谷的spj配置很资瓷啊&#xff0c;以下部分引用来自luogu官方链接 codeforces同理 https://www.luogu.org/wiki/show?name%E5%B8%AE%E5%8A%A9%EF%BC%9Aspecial%20judge 搞了一上午1020导弹拦截的spj step1 先从链接中下载那个testlib-master文件解压后&#xff0c;在那个…

SPJ数据库例题(数据库实验)

题目内容&#xff1a; 设有一个SPJ数据库&#xff0c;包括S&#xff0c;P&#xff0c;J&#xff0c;SPJ四个关系模式&#xff1a; S&#xff08;SNO&#xff0c;SNAME&#xff0c;STATUS&#xff0c;CITY&#xff09;&#xff1b; P&#xff08;PNO&#xff0c;PNAME&#xff0…

mysql建立spj_数据库概论——SQL练习一(SPJ零件问题)

系统: MySQL 8.0.19 题目: 三张表: S(SNO, SNAME, STATUS, CITY) P(PNO, PNAME, COLOR, WEIGHT, CITY) J(JNO, JNAME,CITY) SPJ(SNO, PNO, JNO, PRICE, QTY) S表示供应商,各属性依次为供应商号,供应商名,供应商状态值,供应商所在城市; P表示零件,各属性依次为零件号,…

SPJ数据库例题

1道论述题&#xff1a; 书本P71页习题6&#xff1a; 设有一个SPJ数据库&#xff0c;包括S&#xff0c;P&#xff0c;J&#xff0c;SPJ四个关系模式&#xff1a; S&#xff08;SNO&#xff0c;SNAME&#xff0c;STATUS&#xff0c;CITY&#xff09;&#xff1b; P&#xff08;P…

sql spj

一 select sno,snamevar from student; select sno,snamevar,sdeptvar from student; select * from student; select snamevar,2014-age from student; select snamevar,‘year of birth’,2014-age,lower(sdeptvar) from student; select snamevar from student where …

浅谈online judge平台 spj [special judge] 使用 | 修改问题

浅谈oj平台 spj 使用 | 修改问题 首先&#xff1a;参数对应返回值代码提交几种spj第一种&#xff1a;简单的一类特判第二种&#xff1a;多组输入的特判第三种&#xff1a;需要判断特殊情况[impossible]第四种&#xff1a;带有[testlib.h]的spj第五种&#xff1a;GCPC [German C…

HUSTOJ SPJ 示例

什么是 SPJ SPJ 是 Special Judge 的意思。 什么时候使用 SPJ 当题目答案不止一个的时候&#xff0c;我们就必须使用 SPJ。 如何使用 SPJ 题目中打开 SPJ 首先&#xff0c;我们需要在出题的时候&#xff0c;增加 SPJ 选项&#xff0c;如下图所示。 题目保存后&#xff0…

《数据库原理与运用》上机实验之SPJ

《数据库原理与运用》上机实验之SPJ 前言一、关系模式二、使用SQL语句创建、修改基本表1.对基本表字段名的增加2.对基本表字段名的增加3.索引 二、使用SQL语句对数据库表的单表查询1.对指定列的查询2.对表达式计算和改变表达方式的查询3.消除重复行的查询4.WHERE条件查询5.分组…

SPJ数据库查询

起始 SQL语句建表 建表 后续图示为在SQL Server Management Studio中快捷创建的&#xff0c;并不是代码创建的。 CREATE TABLE S ( SNO CHAR(2) UNIQUE, SNAME CHAR(6), STATUS CHAR(2), CITY CHAR(4));CREATE TABLE J (JNO CHAR(2), JNAME CHAR(8), CITY CHAR(4) ); CREATE …

二 DeepinV20版本安装

安装 https://www.deepin.org/zh/download/ 准备工作&#xff1a;一个U盘&#xff0c;4G就够&#xff1b;镜像包&#xff1b;老毛桃或是官网提供的启动工具。 分区规划&#xff1a;至少3个区&#xff0c; 一个挂 / &#xff08;建议至少10G&#xff09;, SWAP分区&#xff08…

Windows10+deepin双系统安装(选用意义,安装教程)

1.为什么选用deepin 为什么要选用deepin&#xff0c;想必能看到该篇文章&#xff0c;肯定知道deepin是linux系统&#xff0c;而linux系统的发行版众多&#xff0c;至于具体那些&#xff0c;又有什么区别&#xff0c;请读者参考https://blog.csdn.net/bernin/article/details/83…

Deepin安装NVIDIA显卡驱动

显卡驱动可以通过官方库安装&#xff0c;本文使用官方NVIDIA 驱动手动安装。 时间&#xff1a;2020.8 系统版本&#xff1a;Deepin v20 beta Nvidia驱动安装 1 下载驱动 进入NVIDIA官网下载Linux驱动&#xff1a;NVIDIA官网驱动下载 找到对应驱动后下载&#xff0c;记住下载位…

【系统 win10 deepin】双系统安装(win10和deepin双系统)

概述 所有的事情都源自于一只蝙蝠&#xff0c;在这个无聊且漫长的寒假&#xff0c;终于能够实现躺在家里也能为国家做出贡献的时候了。 既然闲着也是闲着&#xff0c;那为何不折腾一下自己的电脑呢。 相信很多猿在虚拟机里已经体验过linux系统&#xff0c;那么怎么在实体机上怎…

Deepin重装Win10

Deepin重装Win10 分享荣耀magicbook 8256 全盘安装deepin后&#xff0c;重装win10之旅。 如有需要请务必先看完再做&#xff01;&#xff01;&#xff01;会清除电脑硬盘上的全部数据&#xff01;&#xff01;&#xff01;请自行备份&#xff01;&#xff01; 重装win10系统我…

【Deepin】 Deepin 系统安装教程

安装过程 准备准备足够的磁盘空间下载格式化制作启动盘 安装设置U盘启动项根据引导安装新建分区 设置 记录一下第N次安装Deepin系统的过程。 准备 准备足够的磁盘空间 deepin用于生活日常的话&#xff0c;不需要太大的空间。我准备了40G左右的空间&#xff08;很小&#xff0…