Lemonlime
SPJ
首先是 spj.cpp 的写法,下面是 \(lemon\) 的写法(一些线上 \(OJ\) 的写法都和 \(luogu\) 的类似,洛谷写的挺详细的,挂个链接):
模板
[code]#include #include #include #include //模板粘下来就行using namespace std;const int N = 5e5 + 10;int n,nn;int a[N],b[N] , an[N], bn[N],d[N];bool vis[N];vectorq[N];setp[N];ifstream fin,fout,fstd;//模板粘下来就行ofstream fscore,freport;//模板粘下来就行void dfs(int u) { vis=0; for(auto v:q) { if(p.find(v)!=p.end()||vis[v]) { continue; } }}int main(int argc , char *argv[]) { //模板粘下来就行 fin.open(argv[1]);//打开data的.in文件 fout.open(argv[2]);//打开选手的输出文件 fstd.open(argv[3]);//打开data的.out文件,对于部分题目没有也可以 fscore.open(argv[5]);//判分用的 int sc = atoi(argv[4]);//这个会返回每个点多少分 int jd = 1;//得分的权重,最后返回sc*jd fin >> n; //这个会读入.in的文件 for(int i=1;i> a >> b;d[a]++;d[b]++; q[a].push_back(b); q[b].push_back(a); } int k; fstd >> k;//这个会读入data的.out文件里的数据 fout >> nn;//这个会读入选手的输出文件里的数据 if(nn>n+1) jd=0; if(k==-1) { if(nn!=-1) jd=0; } else { for(int i=1;i>an>>bn;d[an]--;d[bn]--; p[an].insert(bn); p[bn].insert(an); } dfs(1); int f=0; for(int i=1;i |