这里提供了洛谷某些题的$special\ judge$,供需要的oier拿过去对拍.

1.P3825

#include "testlib.h"

using namespace std;

int n,d;
char num[];
int m;
char ans1[];
int pi,pj,hi,hj;
char opt;
char opt1,opt2;
int main(int argc ,char* argv[]) {
registerTestlibCmd(argc,argv);
n=inf.readInt();
d=inf.readInt();
for(int i=;i<=n;i++) {
while(opt!='x'&&opt!='c'&&opt!='a'&&opt!='b') opt=inf.readChar();
num[i]=opt;
opt=;
}
opt=ans.readChar();
if(opt=='-') {
opt1=ouf.readChar();
if(opt1!='-') quitf(_wa, "On line 1 column 1, read %c, expected -1 . score:QAQ", opt1 );
opt2=ouf.readChar();
if(opt2!='') quitf(_wa, "On line 1 column 2, read %c, expected 1 . score:QWQ", opt2 );
ouf.readEof();
quitf(_ok, "congrdulation Accept answer is -1 score:pwp");
}
opt=;
for(int i=;i<=n;i++) {
opt=ouf.readChar();
if(opt!='A'&&opt!='B'&&opt!='C') quitf(_wa, "On line 1 column %d, read %c, expected A or B or C . score:qwq", i , opt );
ans1[i]=opt;
if(ans1[i]-'A'+'a'==num[i]&&num[i]!='x') quitf(_wa, "On line 1 column %d, unexpect %c, \n the car cannot run in this map . \n score:qaq", i , opt );
opt=;
}
m=inf.readInt();
for(int i=;i<=m;i++) {
opt1=opt2=;
pi=inf.readInt();
while(opt1!='A'&&opt1!='B'&&opt1!='C') opt1=inf.readChar();
pj=inf.readInt();
while(opt2!='A'&&opt2!='B'&&opt2!='C') opt2=inf.readChar();
if(ans1[pi]==opt1&&ans1[pj]!=opt2) quitf(_wa, "cannot accept the limit %d , unexpect %c in map %d score:pvp", i , ans1[pj] ,pj );
}
ouf.readEof();
quitf(_ok, " perfect answer score: qvq" );
return ;
}

P3825

2.P3506

#include "testlib.h"
using namespace std;
//testdata.in
int n,k;
int a[];
char s[];
//testdata.out
int len;
//users.out
int l;int pos;
int num[];
int main(int argc,char *argv[]){
registerTestlibCmd(argc,argv);
n=inf.readInt();
k=inf.readInt();
for(int i=;i<=n;i++) a[i]=inf.readInt();
for(int i=;i<=k;i++) {
s[i]=;
while(s[i]!='>'&&s[i]!='<'&&s[i]!='=')
s[i]=inf.readChar();
}
len=ans.readInt();
l=ouf.readInt();
if(l<len) quitf(_wa,"your answer is smaller than the standard output,expect %d found %d.score:qaq",len,l);
for(int i=;i<=l;i++) {
num[i]=ouf.readInt();
while(a[pos]!=num[i]) {
pos++;
if(pos>n) quitf(_wa,"your sloution isn't a Subsequence of the input,in %d.score:pvp.",i);
}
}
for(int i=;i<l;i++) {
char opt=s[(i-)%k+];
if(opt=='>') {
if(num[i]<=num[i+]) quitf(_wa,"your answer cannot satisfy the condition in %d.score:ovo",i);
}
else if(opt=='<') {
if(num[i]>=num[i+]) quitf(_wa,"your answer cannot satisfy the condition in %d.score:ovo",i);
}
else if(opt=='=') {
if(num[i]!=num[i+]) quitf(_wa,"your answer cannot satisfy the condition in %d.score:ovo",i);
}
}
quitf(_ok,"the answer is correct.score:qwq");
return ;
}

P3506

3.P3493

#include "testlib.h"
using namespace std;
double ous,anf;
int main(int argc,char *argv[]){
registerTestlibCmd(argc,argv);
ous=ouf.readReal();
anf=ans.readReal();
if(abs(ous-anf)<=0.001) {
quitf(_ok,"ok the answer is correct ");
}
else quitf(_wa,"wrong answer found %lf , expect %lf +-0.01",ous,anf);
return ;
}

P3493

4.P3478

#include "testlib.h"
using namespace std;
struct data{
int v;int next;
}edge[];
int alist[];
int cnt;
void add(int u,int v){
edge[++cnt].v=v;
edge[cnt].next=alist[u];
alist[u]=cnt;
return ;
}
int dep[];
long long anss;
long long uout;
int n;
int u,v;
int sroot,uroot;
void dfs(int fa,int x,int de){
dep[x]=de;
for(int nxt=alist[x];nxt;nxt=edge[nxt].next) {
if(edge[nxt].v==fa) continue;
dfs(x,edge[nxt].v,de+);
}
return ;
}
int main(int argc, char *argv[]){
registerTestlibCmd(argc, argv);
n=inf.readInt();
for(int i=;i<n;i++){
u=inf.readInt();
v=inf.readInt();
add(u,v),add(v,u);
}
sroot=ans.readInt();
dfs(,sroot,);
for(int i=;i<=n;i++) anss+=dep[i];
memset(dep,,sizeof(dep));
uroot=ouf.readInt(,n);
dfs(,uroot,);
for(int i=;i<=n;i++) uout+=dep[i];
if(anss>uout) quitf(_wa, "Your answer is less than the correct answer,found %d,expect %d ,score:qwq", uout, anss);
else if(anss==uout) quitf(_ok, "your answer is correct (ying ying ying) ,score:qaq" );
else if(anss<uout) quitp(2.0, "the spj or the data has been attacked ,please connect kkksc03 to fix the data or spj ,score:QAQ" );
return ;
}

P3478

5.P3474

#include "testlib.h"
using namespace std;
long long mp[][];
int n;
long long k,now;
int yy1,xx1,yy2,xx2;
char opt;
int main(int argc,char *argv[]){
registerTestlibCmd(argc,argv);
k=inf.readLong();
n=inf.readInt();
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
mp[i][j]=inf.readLong();
opt=ans.readChar();
if(opt=='N'){
opt=ouf.readChar();
if(opt!='N') quitf(_wa,"wrong answer ,expect NIE,found %c,score:qwq",opt);
opt=ouf.readChar();
if(opt!='I') quitp(0.2,"wrong answer ,expect IE,found %c,score:qwq",opt);
opt=ouf.readChar();
if(opt!='E') quitp(0.6,"wrong answer ,expect E,found %c,score:qwq",opt);
quitf(_ok,"correct answer ,score:pwp");
}
yy1=ouf.readInt();
xx1=ouf.readInt();
yy2=ouf.readInt();
xx2=ouf.readInt();
for(int i=xx1;i<=xx2;i++)
for(int j=yy1;j<=yy2;j++){
now+=mp[i][j];
}
if(now>*k) quitf(_wa,"your sloution is lager than 2*k.score:pvp");
if(now<k) quitf(_wa,"your sloution is less than k.score:qvq");
quitf(_ok,"ok,correct! score:qaq");
return ;
}

P3474

6.P3022

#include "testlib.h"
using namespace std;
struct data{
int u;int v;
}edge[];
int cnt;
void add(int u,int v){
edge[++cnt].u=u;
edge[cnt].v=v;
return ;
}
int n,m;
int u,v;
int now;
int d[];
bool ins[];
int usr;int anf;
int main(int argc,char* argv[]) {
registerTestlibCmd(argc,argv);
n=inf.readInt();
m=inf.readInt();
// printf("%d %d\n",n,m);
for(int i=;i<=m;i++) {
u=inf.readInt();
v=inf.readInt();
add(u,v);
// printf("%d %d\n",u,v);
}
anf=ans.readInt();
usr=ouf.readInt();
// printf("%d %d\n",anf,usr);
if(anf==-){
if(usr==-) quitf(_ok,"the answer is -1 . score:qaq");
else quitf(_wa,"wa……expect -1 found %d . score:qwq",usr);
}
for(int i=;i<=usr;i++){
now=ouf.readInt(,m);
if(ins[now]==true) quitf(_wa,"your sloution has been retain the edge %d before the operation %d/%d.score: qvq",now,i,usr);
ins[now]=true;
d[edge[now].u]++,d[edge[now].v]++;
}
for(int i=;i<=n;i++) {
if(!d[i]&) quitf(_wa,"the degrees of the point %d isn't an odd ,is %d .score:pvp",i,d[i]);
}
quitf(_ok,"the answer is correct"); return ;
}

P3022

7.P2164

#include "testlib.h"
using namespace std;
const double eps = 0.1;
int n,m;
double a1,a2;
int main(int argc, char *argv[]){
registerTestlibCmd(argc, argv);
n=inf.readInt();
m=inf.readInt();
for(int i=;i<=m;i++) {
a1=ans.readDouble();
a2=ouf.readDouble();
if(abs(a1-a2)>eps) quitf(_wa,"wrong answer on line %d.score:qaq",i);
}
quitf(_ok,"correct answer.score:qwq");
return ;
}

P2164

8.P1871

#include "testlib.h"
//#include <iostream>
using namespace std;
string pos[]={"Success","Already","Conflict","on","with","off"};
int n,m;bool ins[];char opt;int now;//题解部分
int a,b,c;int lst;//多解检验部分
string ous;int cnt;//选手输出部分
string anf;//标准答案部分
int main(int argc,char *argv[])
{
registerTestlibCmd(argc,argv);
n=inf.readInt();m=inf.readInt();
for(int i=;i<=m;i++){
opt=;
while(opt!='-'&&opt!='+') opt=inf.readChar();
now=inf.readInt();
if(opt=='+') {
anf=ans.readToken();ous=ouf.readToken();
// cout<<anf<<endl<<ous<<endl;
if(anf!=ous) quitf(_wa,"wrong answer on operation %d .score:qaq",i);
if(anf==pos[]) ins[now]=true;
else if(anf==pos[]) {
anf=ans.readToken();ous=ouf.readToken();
if(ous!=anf) quitp(0.2,"wrong answer on operation %d,expect on.score:qoq",i);
}
else if(anf==pos[]) {
anf=ans.readToken();ous=ouf.readToken();
if(anf!=ous) quitp(0.2,"wrong answer on operation %d,expect with .score:qoq",i);
cnt=ans.readInt();cnt=ouf.readInt(,n);
if(ins[cnt]!=true) {
quitf(_wa,"on operation %d,the machin %d hasn't been opened .score:qwq",i,cnt);
}
if(__gcd(cnt,now)==){
quitf(_wa,"on operation %d,the machin %d(opened) and the %d(will be opened) are not Conflict,score:pwp",i,cnt,now);
}
}
}
if(opt=='-') {
anf=ans.readToken();ous=ouf.readToken();
if(anf!=ous) quitf(_wa,"wrong answer on operation %d.score:qaq",i);
if(anf==pos[]) ins[now]=false;
if(anf==pos[]) {
anf=ans.readToken();ous=ouf.readToken();
if(anf!=ous) quitp(0.2,"wrong answer on operation %d,expect off.score:qoq",i);
}
}
}
quitf(_ok,"ok,correct answer");
return ;
}

P1871

9.P1248

#include "testlib.h"

using namespace std;
int n;
int a[];
int b[];
int sans;int uans;
int num[];
bool ins[];
int now_a;int now_b;
int now_ans;
int main(int argc ,char* argv[]) {
registerTestlibCmd(argc,argv);
n=inf.readInt();
for(int i=;i<=n;i++) a[i]=inf.readInt();
for(int i=;i<=n;i++) b[i]=inf.readInt();
sans=ans.readInt();
uans=ouf.readInt();
if(sans!=uans) {
quitf(_wa, "wrong answer On line 1 column 1, read %d, expected %d. score:qwq", uans, sans);
}
for(int i=;i<=n;i++) num[i]=ouf.readInt(,n),ins[num[i]]=true;
for(int i=;i<=n;i++) if(!ins[i]) quitf(_wa, "your solution cannot slove the product %d.score:qaq",i);
for(int i=;i<=n;i++) {
int now=now_a+a[num[i]];
if(now>now_b) now_b=now+b[num[i]];
else now_b=now_b+b[num[i]];
now_a+=a[num[i]];
}
now_ans=max(now_a,now_b);
if(now_ans==uans) quitf(_ok, "The answer is correct.");
else if(now_ans<uans) quitp( 0.5 , "your sloution is smaller than your min time score:QAQ");
else quitf(_wa, "your sloution is bigger than your min time score:QWQ");
return ;
}

P1248

10.P4293

#include "testlib.h"
using namespace std;
const int maxn = ;
int n;
double m[maxn],c[maxn];
bool oc[maxn];
void rdin(){
n=inf.readInt();
for(int i=;i<=n;i++) {
m[i]=inf.readReal();
c[i]=inf.readReal();
}
return ;
}
double calc ( int a , int b ) { return m[a] * m[b] * ( c[a] - c[b] ) ; }
double cb,ck;
bool idok ( int x ) { return ( x >= and x <= n ); }
void rdout(){
int a,b;a=ouf.readInt();b=ouf.readInt();
if( idok(a) && idok(b) && a != b ) cb = calc( a , b );
else cb = - ; ck = ;
int k,pr;k=ouf.readInt();memset(oc,,sizeof(oc));pr=ouf.readInt();
if(!idok(pr)) { ck = - ; return ;}
oc[pr] = true;
int fr = pr;
int r1a = -, r1b = -, r2a = -, r2b = -;
for(int i=;i<k;i++) {
int x;x=ouf.readInt();
if( !idok(x) || oc[x] ) { ck = - ; return ;}
oc[x]=true;
double tmpc = calc( pr ,x );
ck += tmpc;
if(tmpc < ) {
if (r1a == -) r1a = r1b = i;
else if (i == r1b + ) r1b = i;
else if (r2a == -) r2a = r2b = i;
else if (i == r2b + ) r2b = i;
else { ck = -; return ; }
}
pr = x;
}
ck += calc(pr , fr );
if (r2b == k- && r1a == ) ;
else if (r2a != - ) ck = - ;
return ;
}
void rdas(){
int a,b;a=ans.readInt();b=ans.readInt();
if( idok(a) && idok(b) && a != b ) cb = calc( a , b );
else cb = - ; ck = ;
int k,pr;k=ans.readInt();memset(oc,,sizeof(oc));pr=ans.readInt();
if(!idok(pr)) { ck = - ; return ;}
oc[pr] = true;
int fr = pr;
int r1a = -, r1b = -, r2a = -, r2b = -;
for(int i=;i<k;i++) {
int x;x=ans.readInt();
if( !idok(x) || oc[x] ) { ck = - ; return ;}
oc[x]=true;
double tmpc = calc( pr ,x );
ck += tmpc;
if(tmpc < ) {
if (r1a == -) r1a = r1b = i;
else if (i == r1b + ) r1b = i;
else if (r2a == -) r2a = r2b = i;
else if (i == r2b + ) r2b = i;
else { ck = -; return ; }
}
pr = x;
}
ck += calc(pr , fr );
if (r2b == k- && r1a == ) ;
else if (r2a != - ) ck = - ;
return ;
}
double cb_ans,ck_ans;
void rdans() {
rdas();
cb_ans = cb;
ck_ans = ck;
}
const double eps = 1e-;
bool ok ( double r , double e) {
if( r >= e - eps) return true;
if( r/e >= - eps) return true;
return false;
}
void processout() {
rdout();
int t = ;
if( ok ( cb , cb_ans ) ) t++;
if( ok ( ck , ck_ans ) ) t+=;
if(t == ) quitf(_ok,"ok ,the answer is correct");
else if( t == ) quitp(0.5,"Right 2");
else if( t == ) quitp(0.5,"Right 1");
else quitf(_wa,"wrong answer");
}
int main(int argc,char *argv[]){
registerTestlibCmd(argc,argv);
rdin();
rdans();
processout();
return ;
}

P4293

11.P3596

#include "testlib.h"
using namespace std;
const int maxn = 1e6 + ;
struct in{int u;int v;}qus[maxn << ];
struct data{int v;int next;}edge[maxn<<];int alist[maxn];int cnt;
void add(int u,int v){edge[++cnt].v=v;edge[cnt].next=alist[u];alist[u]=cnt;return ;}
int maxx,xx1,yy1,xx2,yy2;
int minn;int anss;int maxd;int po;int dis[maxn];
void dfs(int x,int fa) {
if(x==xx2&&fa!=yy2) {
int v=yy2;dis[v]=dis[x]+;
if(dis[v]>maxd) maxd=dis[v],po=v;dfs(v,x);
}
if(x==yy2&&fa!=xx2) {
int v=xx2;dis[v]=dis[x]+;
if(dis[v]>maxd) maxd=dis[v],po=v;dfs(v,x);
}
for(int next=alist[x];next;next=edge[next].next) {
if(x==xx1&&edge[next].v==yy1) continue;
if(edge[next].v==xx1&&x==yy1) continue;
if(edge[next].v==fa) continue;
dis[edge[next].v]=dis[x]+;
if(dis[edge[next].v]>maxd) maxd=dis[edge[next].v],po=edge[next].v;
dfs(edge[next].v,x);
}
}
int n,m;int u,v;bool che1,che2;
int main(int argc,char *argv[]){
registerTestlibCmd(argc,argv);
n=inf.readInt();
for(int i=;i<n;i++) u=inf.readInt(),v=inf.readInt(),qus[i].u=u,qus[i].v=v;
anss=ans.readInt();maxx=ouf.readInt();
if(anss<maxx) quitf(_wa,"wrong answer on line 1 cloum 1 ,found %d ,expexct %d.score:qaq",maxx,anss);
xx1=ans.readInt();yy1=ans.readInt();xx2=ans.readInt();yy2=ans.readInt();
xx1=ouf.readInt();yy1=ouf.readInt();xx2=ouf.readInt();yy2=ouf.readInt();
for(int i=;i<n;i++){
if((qus[i].u==xx2&&qus[i].v==yy2)||(qus[i].u==yy2&&qus[i].v==xx2)) {che2=true;continue;}
if((qus[i].u==xx1&&qus[i].v==yy1)||(qus[i].u==yy1&&qus[i].v==xx1)) {che1=true;continue;}
add(qus[i].u,qus[i].v),add(qus[i].v,qus[i].u);}
if(che1!=true||che2==true) quitf(_wa,"your sloution isn't correct .");
dis[] = ;dfs(,);dis[po]=;dfs(po,);
if(maxd!=maxx) quitf(_wa,"wrong answer.the sloution isn't equle to your answer on line 1");
memset(dis,,sizeof(dis));po=;maxd=;memset(edge,,sizeof(edge));memset(alist,,sizeof(alist));
anss=ans.readInt();maxx=ouf.readInt();che1=che2=;
if(anss>maxx) quitf(_wa,"wrong answer on line 2 cloum 1 ,found %d ,expexct %d.score:qaq",maxx,anss);
xx1=ans.readInt();yy1=ans.readInt();xx2=ans.readInt();yy2=ans.readInt();
xx1=ouf.readInt();yy1=ouf.readInt();xx2=ouf.readInt();yy2=ouf.readInt();
for(int i=;i<n;i++){
if((qus[i].u==xx2&&qus[i].v==yy2)||(qus[i].u==yy2&&qus[i].v==xx2)) {che2=true;continue;}
if((qus[i].u==xx1&&qus[i].v==yy1)||(qus[i].u==yy1&&qus[i].v==xx1)) {che1=true;continue;}
add(qus[i].u,qus[i].v),add(qus[i].v,qus[i].u);}
if(che1!=true||che2==true) quitf(_wa,"your sloution isn't correct .");
dis[] = ;dfs(,);dis[po]=;dfs(po,);
if(maxd!=maxx) quitf(_wa,"wrong answer.the sloution isn't equle to your answer on line 2");
quitf(_ok,"the answer is correct");
return ;
}

P3596

12.P3529 等待update

#include "testlib.h"
using namespace std;
const int maxn = ;
int n,m,r,t,k;bool ins[maxn][maxn];
int ouss;int anss;int slo[maxn];int u,v;
struct data{
int id;int pro;int tim;
friend bool operator < (const data &a,const data &b) {return a.tim<b.tim;}
}qwq[maxn];int cnt;int nxt[maxn];
int main(int argc, char *argv[]) {
registerTestlibCmd(argc,argv);
n=inf.readInt();m=inf.readInt();r=inf.readInt();t=inf.readInt();k=inf.readInt();ouss=ouf.readInt();anss=ans.readInt();cnt=ouss;
if(ouss<anss) quitf(_wa,"wrong answer on line 1 cloum 1,expect %d,found %d",anss,ouss);ouss=ouf.readInt();anss=ans.readInt();
if(ouss>anss) quitf(_wa,"wrong answer on line 1 cloum 2,expect %d,found %d",anss,ouss);
for(int i=;i<=k;i++) u=inf.readInt(),v=inf.readInt(),ins[u][v]=true;
for(int i=;i<=cnt;i++) {qwq[i].id=ouf.readInt();qwq[i].pro=ouf.readInt();qwq[i].tim=ouf.readInt();}sort(qwq+,qwq++cnt);
for(int i=;i<=cnt;i++) {
if(nxt[qwq[i].id]>qwq[i].tim) quitf(_wa,"wrong answer on line %d+1,people %d cannot work on time %d",i,qwq[i].id,qwq[i].tim);
if(slo[qwq[i].pro]!=) quitf(_wa,"wrong answer on line %d+1,the problem %d han been sloved before.",i,qwq[i].pro);
if(ins[qwq[i].id][qwq[i].pro]==false) quitf(_wa,"wrong answer on line %d+1,the person %d cannot slove the problem %d.",i,qwq[i].id,qwq[i].tim);
nxt[qwq[i].id]=qwq[i].tim;slo[qwq[i].pro]=qwq[i].tim+r;}
int all = ;
for(int i=;i<=m;i++) all+=slo[i];
if(all==anss) quitf(_ok,"ok the answer is correct ");
else quitf(_wa,"wrong answer,your sloutiion isn't equle to your answer.");
return ;
}

P3529

13.P3520 未完成

//#pragma gcc optimize(2)
#include "testlib.h"
using namespace std;
const int maxn = 1e6 + ;
const int maxm = 2e7 + ;
struct pre{int u;int v;bool val;bool end;}pre[maxm];
struct data{int v;int next;int val;}edge[maxn << ];int alist[maxn];int cnt;
void add(int u,int v,int val)
{edge[++cnt].v=v;edge[cnt].val=val;edge[cnt].next=alist[u];alist[u]=cnt;return ;}
int n,m;int u,v,vals,vale;
void rdin() {
n=inf.readInt();m=inf.readInt();
for(int i=;i<=m;i++)
pre[i].u=inf.readInt(),pre[i].v=inf.readInt(),
pre[i].val=inf.readInt(),pre[i].end=inf.readInt();
return ;
}
char opt;int ouss;int num;bool ins[maxn];int now[maxn];bool inss[maxn];
bool che(int fa,int x,int pos,int now_num) {
if(pos==now_num) return true;bool qaq=false;
for(int next=alist[x];next;next=edge[next].next){
if(edge[next].v==fa) continue ;
if(edge[next].v==now[pos+]) qaq=true,pre[(next+)>>].val^=;
}
if(qaq==true) return che(x,now[pos+],pos+,now_num);
return false;
}
bool work() {
memset(ins,false,sizeof(ins));memset(now,,sizeof(now));num=ouf.readInt();
for(int i=;i<=num+;i++) now[i]=ouf.readInt(),ins[now[i]]=true;
bool book = che(now[num],now[],,num+);
if(!book) return false;
return true;
}
int main(int argc, char *argv[]) {
registerTestlibCmd(argc,argv);opt=ans.readChar();
if(opt=='N') {
opt=ouf.readChar();if(opt!='N') quitf(_wa,"on line 1 cloum 1 ecpect NIE found %c",opt);
opt=ouf.readChar();if(opt!='I') quitf(_wa,"on line 1 cloum 1 ecpect IE found %c",opt);
opt=ouf.readChar();if(opt!='E') quitf(_wa,"on line 1 cloum 1 ecpect E found %c",opt);
quitf(_ok,"ok the answer is correct.");
}
rdin();ouss=ouf.readInt();
for(int i=;i<=m;i++) add(pre[i].u,pre[i].v,pre[i].val),add(pre[i].v,pre[i].u,pre[i].val);
for(int i=;i<=ouss;i++) if(!work()) quitf(_wa,"wrong answer ,your sloution isn't a single ring on line %d+1",i);
for(int i=;i<=m;i++) if(pre[i].val!=pre[i].end) quitf(_wa,"wrong answer ,your sloution cannow slove the road %",i);
quitf(_ok,"ok,the answer is coerrect");
return ;
}

P3520

14.P3516

#include "testlib.h"
#include <ctime>
using namespace std;
struct lb{
int pre,nxt,val;
}x[];
int n,cnt,head,tail;
void ltof(int num)
{
while(num--)
{
int ls=x[tail].pre;
x[ls].nxt=;
x[tail].nxt=head;
x[tail].pre=;
x[head].pre=tail;
head=tail;
tail=ls;
}
}
void ttof(int num)
{
while(num--)
{
int cnt=;
int ls=head;
for(int i=;i<=;i++)
{
ls=x[ls].nxt;
}
int forth=x[ls].nxt;
int kkk=x[ls].pre;
x[forth].pre=kkk;
x[kkk].nxt=x[ls].nxt;
x[ls].pre=;
x[ls].nxt=head;
x[head].pre=ls;
head=ls;
}
}
void change(int num,int cz){
if(cz==) ltof(num);
else ttof(num);
}
char opt;int now;
char pos;
int m;
int main(int argc,char *argv[]) {
registerTestlibCmd(argc,argv);
n=inf.readInt();
for(int i=;i<=n;i++) x[i].val=inf.readInt(),x[i].pre=i-,x[i].nxt=i+;
head=,tail=n;int qnt=;
opt=ans.readChar();
if(opt=='N') {
pos=ouf.readChar();
if(pos!='N') quitf(_wa,"expect NIE found %c.score:pqp",pos);
pos=ouf.readChar();
if(pos!='I') quitf(_wa,"expect IE found %c.score:pqp",pos);
pos=ouf.readChar();
if(pos!='E') quitf(_wa,"expect E found %c.score:pqp",pos);
pos=ouf.readChar();
if(pos=='\n'||pos==||pos==) quitf(_ok,"the answer ios corect .score:qaq");
if(pos!=' ') quitf(_wa,"expect found %c.score:pqp",pos);
pos=ouf.readChar();
if(pos!='D') quitf(_wa,"expect DA found %c.score:pqp",pos);
pos=ouf.readChar();
if(pos!='A') quitf(_wa,"expect A found %c.score:pqp",pos);
pos=ouf.readChar();
if(pos!=' ') quitf(_wa,"expect found %c.score:pqp",pos);
pos=ouf.readChar();
if(pos!='S') quitf(_wa,"expect SIE found %c.score:pqp",pos);
pos=ouf.readChar();
if(pos!='I') quitf(_wa,"expect IE found %c.score:pqp",pos);
pos=ouf.readChar();
if(pos!='E') quitf(_wa,"expect E found %c.score:pqp",pos);
quitf(_ok,"the answer ios corect .score:qaq");
}
m=ouf.readInt(); if(n==&&m==) {quitf(_ok,"correct answer");return ;}
else if(n==) {quitf(_wa,"wrong answer");return ;} for(int i=;i<=m;i++){
pos=;now=;
pos=ouf.readChar();
while(pos>''||pos<'') pos=ouf.readChar();
while(pos<=''&&pos>='') now=now*+pos-'',pos=ouf.readChar();
if(now<=||now>n) quitf(_wa,"wrong output on operation %d,found %d,expect in [ 1 , %d ] .score:vov",i,now,n);
if(pos=='b') now%=;
if(pos=='a') now%=n;
change(now,pos=='b'); }
int wz=head;
while(wz!=tail){
int nxt=x[wz].nxt;
if(x[nxt].val<x[wz].val){
quitf(_wa,"wrong answer");
return ;
}
wz=nxt;
}
if(x[x[tail].pre].val>x[tail].val) quitf(_wa,"worong answer ");
else quitf(_ok,"correct answer ");
return ;
}

P3516

15.P2974

#include "testlib.h"
using namespace std;
const int maxn = ;
const int maxm = ;
string com[]={"ATTACK","MOVE"};
int n,m;char mp[maxn];//testdata.in
struct data{int v;int next;}edge[maxm << ];int alist[maxn];int cnt;
void add(const int &u,const int &v)
{edge[++cnt].v=v;edge[cnt].next=alist[u];alist[u]=cnt;return ;}
string now;int anss;int usrr;//answer compair&&users output
bool ins[maxn];bool att[maxn];bool mov[maxn];int num;
bool unicom(const int &a,const int &b)
{for(int next=alist[a];next;next=edge[next].next) if(edge[next].v==b) return true;else ;return false;}
bool move(const int &a,const int &b) {
if(!unicom(a,b)) return false;
if(mp[a]=='J'&&mp[b]=='E'&&mov[a]==false&&att[a]==false)
mov[a]=true,swap(mp[a],mp[b]),swap(mov[a],mov[b]),swap(att[a],att[b]);
else return false;return true;
}
int attack(const int &a,const int &b) {
if(!unicom(a,b)) return -;
if(mp[a]=='J'&&mp[b]=='T'&&att[a]==false) {
if(ins[b]==false) {ins[b]=true,att[a]=true;return true;}
ins[b]=true,att[a]=true;return ;
}else return -;
}
int u,v;int a,b;int pos;
int main(int argc, char *argv[]) {
registerTestlibCmd(argc,argv);
n=inf.readInt();m=inf.readInt();char opt=;
// for(int i=1;i<=m;i++) qus[i].u=inf.readInt(),qus[i].v=inf.readInt(),add(qus[i].u,qus[i].v),add(qus[i].v,qus[i].u);
for(int i=;i<=m;i++) u=inf.readInt(),v=inf.readInt(),add(u,v),add(v,u);
anss=ans.readInt();usrr=ouf.readInt();
if(anss!=usrr) quitf(_wa,"on line 1 cloum 1 expect %d found %d.score:qaq",anss,usrr);usrr=;
while(usrr!=anss) {
now=ouf.readToken();a=ouf.readInt();b=ouf.readInt();
if(now==com[]) {
int qwq=attack(a,b);
if(qwq==-) quitf(_wa,"wrong sloution ,the cow %d can't attack %d",a,b);
else usrr+=qwq;}
if(now==com[]) if(!move(a,b)) quitf(_wa,"you cannot move %d to %d",a,b);
}
quitf(_ok,"ok,the answer is correct");
return ;
}
//

P2974

16.P2565

#include "testlib.h"
using namespace std;
const double eps = 1e- ;
const int maxn = ;
int as[maxn][maxn];
int a[maxn];
int n,m;
bool pd() {
for(int i=;i<=n;i++) {
int tmp = ;
for(int j = ; j <= m ; j ++ )
for(int k = ; k <= m ; k ++ )
if( as[i][j] > as[a[i]][k] )
tmp++;
if( tmp * <= m * m ) return ;
}
return ;
}
bool ins[];
int main(int argc,char *argv[]){
registerTestlibCmd(argc,argv);
int p1,p2;
p1=ans.readInt();
if(p1 == ) {
p2=ouf.readInt();
if(p1==p2) quitf(_ok,"corrcet answer.score:ovo");
quitf(_wa,"wrong answer,expect 0 ,found %d,score:qaq",p2);
}
n=inf.readInt();
m=inf.readInt();
for(int i=;i<=n;i++) a[i]=inf.readInt();
for(int i=;i<=n;i++)
for(int j=;j<=m;j++){
as[i][j]=ouf.readInt();
if(ins[as[i][j]]==true) quitf(_wa,"on line %d,cloumb %d,the number %d had foung before.score:qwq",i,j,as[i][j]);
ins[as[i][j]]=true;
}
if(pd()) quitf(_ok,"the answer is correct.score:pwp");
else quitf(_wa,"wrong asnwer . score:pvp");
return ;
}

P2565

17.P1253

#include "testlib.h"
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn = ;
int n;
long long p[maxn];
long long l[maxn];
long long now[maxn];
long long t[maxn];
long long sums[maxn];
long long sumo[maxn];
long long anss;
long long anso;
void readin(){
// freopen("10.in","r",stdin);
n=inf.readInt();
for(int i=;i<=n;i++) l[i]=inf.readLong(),p[i]=inf.readLong(),now[i]=l[i]*p[i];
// fclose(stdin);
}
void readas(){
// freopen("10.ans","r",stdin);
for(int i=;i<=n;i++) t[i]=ans.readLong();
for(int i=;i<=n;i++) sums[i]=now[t[i]];
for(int i=;i<=n;i++) sums[i]=sums[i-]+sums[i];
for(int i=;i<=n;i++) anss+=sums[i];
// fclose(stdin);
}
void reados(){
// freopen("10.out","r",stdin);
for(int i=;i<=n;i++) t[i]=ouf.readLong();
for(int i=;i<=n;i++) sumo[i]=now[t[i]];
for(int i=;i<=n;i++) sumo[i]=sumo[i-]+sumo[i];
for(int i=;i<=n;i++) anso+=sumo[i];
// fclose(stdin);
}
int main(int argc,char *argv[]){
registerTestlibCmd(argc,argv);
readin();
readas();
reados();
// printf("%lld %lld\n%lld",anss,anso,anss-anso);
if(anss==anso) quitf(_ok,"the answer is correct");
else quitf(_wa,"the minnument time is %d , but your sloution is %d",anss,anso);
return ;
}

P1253

18.P1905 忘了放哪里了qwq找到在贴上吧qwq

给洛谷填坑的spj……的更多相关文章

  1. 网络流24题 第三题 - CodeVS1904 洛谷2764 最小路径覆盖问题 有向无环图最小路径覆盖 最大流 二分图匹配 匈牙利算法

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - CodeVS1904 题目传送门 - 洛谷2764 题意概括 给出一个有向无环图,现在请你求一些路径,这些路径 ...

  2. 洛谷P1432 倒水问题(CODEVS.1226)

    To 洛谷.1432 倒水问题 题目背景 In the movie "Die Hard 3", Bruce Willis and Samuel L. Jackson were co ...

  3. 洛谷P1432 倒水问题

    题目背景 In the movie "Die Hard 3", Bruce Willis and Samuel L. Jackson were confronted with th ...

  4. 洛谷P1162—填涂颜色

    这应该是是第一次记录洛谷题库里的题目吧: 题目描述 由数字00组成的方阵中,有一任意形状闭合圈,闭合圈由数字11构成,围圈时只走上下左右44个方向.现要求把闭合圈内的所有空间都填写成22.例如:6 \ ...

  5. #YCB#待做题目与填坑资料

    各种填坑资料(qwq) 主席树(by YL)戳 树套树(by ZSY)戳 不要问我这些题咋来的(查大佬的水表呗) 题目列表: [HDU5977]Garden of Eden [BZOJ2752][HA ...

  6. 洛谷10月月赛II题解

    [咻咻咻] (https://www.luogu.org/contestnew/show/11616) 令人窒息的洛谷月赛,即将参加NOIp的我竟然只会一道题(也可以说一道也不会),最终145的我只能 ...

  7. 不失一般性和快捷性地判定决策单调(洛谷P1912 [NOI2009]诗人小G)(动态规划,决策单调性,单调队列)

    洛谷题目传送门 闲话 看完洛谷larryzhong巨佬的题解,蒟蒻一脸懵逼 如果哪年NOI(放心我这样的蒟蒻是去不了的)又来个决策单调性优化DP,那蒟蒻是不是会看都看不出来直接爆\(0\)?! 还是要 ...

  8. 洛谷 P3178 BZOJ 4034 [HAOI2015]树上操作

    题目描述 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个操作,分为三种:操作 1 :把某个节点 x 的点权增加 a .操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 ...

  9. 洛谷 P1494 BZOJ 2038 [2009国家集训队]小Z的袜子(hose)

    //洛谷题面字体.排版我向来喜欢,却还没收录这道如此有名的题,BZOJ的题面字体太那啥啦,清橙的题面有了缩进,小标题却和正文字体一致,找个好看的题面咋这么难呐………… //2019年3月23日23:0 ...

随机推荐

  1. The web application [/zzti] registered the JDBC driver [com.microsoft.sqlserver.jdbc.SQLServerDriver

    先说下题目:因为是在我进行处理项目升级时同时遇到了上面的问题,一般都会遇到,所以就一并说了 不罗嗦了,正题: 在本地服务器中提供tomcat6,然后在myeclipse中配置severs tomcat ...

  2. Linux中shell变量$0,$?等含义

    linux中shell变量$#,$@,$0,$1,$2的基本含义: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...

  3. 基础知识 一个工具给win7 win10的同学 或者MAC 可以跳过

  4. ubuntu ufw防火墙

    由于LInux原始的防火墙工具iptables过于繁琐,所以ubuntu默认提供了一个基于iptable之上的防火墙工具ufw. ubuntu 9.10默认的便是UFW防火墙,它已经支持界面操作了.在 ...

  5. 【BZOJ2806】Cheat 【广义后缀自动机+单调队列优化dp+二分】

    题意 有M篇标准作文组成了一个作文库(每篇作文都是一个01的字符串),然后给出N篇作文(自然也是01字符串).如果一个长度不小于L的串在作文库中出现过,那么它是熟悉的.对于某一篇作文,我们要把它分为若 ...

  6. for 续2

    --------siwuxie095             (二)skip=n 忽略(屏蔽.隐藏)文本前 N 行的内容. (N 必须大于 0,不能等于 0)     格式: FOR /F " ...

  7. ICG游戏:证明,先手不是必胜就是必败。

    简介: ICG游戏:Impartial Combinatorial Games,公平的组合游戏. 以下是定义,来自网络,可能不够严谨: 1.两名选手:2.两名选手轮流行动,每一次行动可以在有限合法操作 ...

  8. jsp页面拨打电话和QQ聊天

    拨打电话: <a href="tel:手机号">拨打电话</a> 这种方式塞班.安卓与iphone都支持. 参考文章:https://blog.csdn.n ...

  9. 怎么查这个文件在linux下的哪个目录

    因为要装pl/sql所以要查找tnsnames.ora文件..看看怎么查这个文件在linux下的哪个目录 find / -name tnsnames.ora 查到: /opt/app/oracle/p ...

  10. PHP实现一维数组转二维数组的方法

    具体实现方法如下: <?php $asr[1] = array("a","b","c","d"); $asr[2] ...