火龙信奥
  • 首页
  • 课程
  • 题库
  • 打卡
    • 代码对战
    • 快速对战
  • 题单
  • 团队
  • 荣誉墙
  • 商城
  • 登录 / 注册

SPJ中的check

作者: 作者的头像   huolong , 时间:2025-01-02 17:29:18 , 所有人可见, 阅读  33

浮点精度

#include <cstdio>
#include <cmath>
#define AC 0
#define WA 1
const double eps = 1e-3;
int main(int argc, char *args[]) {
    FILE *f_in = fopen(args[1], "r");
    FILE *f_user = fopen(args[2], "r");
    FILE *f_out = fopen(args[3], "r");
    int ret = AC;
    int t;
    double a, x;
    fscanf(f_in, "%d", &t);
    while (t--) { //从输入中读取数据组数 t
        fscanf(f_out, "%lf", &a);
        fscanf(f_user, "%lf", &x);
        if (fabs(a - x) > eps) {
            ret = WA; // Wrong Answer
            break;
        }
    }

    fclose(f_in);
    fclose(f_out);
    fclose(f_user);
    return ret;
}

多种解

#include <cstdio>
#include <cstring>

#define AC 0
#define WA 1


const int N=510;

int h[N],e[N],ne[N],idx;
int d[N];  // 入度
int a[N];
int n;

void add (int a, int b) {
    e[idx] = b, ne[idx] = h[a], h[a] = idx ++ ;
}

bool judge() {
    for(int j=1; j<=n; j++) {
        int id=a[j];
        if(d[id]!=0) {
            return false;
        }   
        for(int i=h[id]; i!=-1; i=ne[i]) {
            int u=e[i];
            d[u]--;
        }
    }
    return true;
}

int main(int argc,char *args[]) {
    memset (h,-1,sizeof h);
    FILE * f_in = fopen(args[1],"r");//标准输入
    FILE * f_user = fopen(args[2],"r");//用户输出
    FILE * f_out = fopen(args[3],"r");//标准输出
    int ret = AC;

    fscanf(f_in, "%d", &n);
    for (int i = 1; i <= n; i ++ ) {
        int son;
        while(fscanf(f_in, "%d", &son)==1 ,son) {
            add(i, son);
            d[son] ++ ;
        }
    }

    for (int i = 1; i <= n; i ++ ) {
        fscanf(f_user, "%d", &a[i]);
    }

    if(!judge()) {
        ret = WA;
    }

    fclose(f_in);
    fclose(f_out);
    fclose(f_user);
    return ret;
}

注意:必须要在本地编译器编译通过!

—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com

©2026加盟我们 | 关于我们 | ACM课程 | 常见问题 | 成果墙 | 评测记录 | 浙ICP备2021013995号
在线画图 | OI WIki | 打字练习
火龙信奥
请输入登录信息


请完成安全验证
验证码底图 滑块
向右拖动滑块完成验证
请输入用户名 / 绑定的手机号码



请输入注册信息(手机号验证码注册)





验证码5分钟有效,60秒内不可重复获取,每日最多3次

微信登录

微信登录二维码

正在生成二维码...

账号已过期,请续期。
去续期

绑定手机号

📱

为了更好地保护您的账号安全,享受完整的平台服务

请您尽快绑定手机号码