自动AC机

  首先,本博客只供娱乐,请不要用于大型考试中.如果被告了也不要怪我.

  考虑评测的原理:10组或20组或更多的数据放在data文件夹里,lemon每次用一个.in文件读入到你的程序里,你的程序会跑出来答案到.out里,lemon再与data里的.out文件进行比对.

  而这个可能称得上算法的东西主要是通过枚举找到当前测试的是哪一组数据,然后去data文件夹里找到.out文件并读入答案,输出答案.这样当然是对的.

  首先深刻理解freopen这个函数:

freopen("123.in","r",stdin);
freopen(const char*, const char*, FILE*) 

 

  前两个都带*,说明是指针啊.也就是说我们平常用的"123.in"都是文件地址的指针.(最后一个大概是说明类型的,先不管).

  那有没有想过为什么可以直接打开这个叫123.in的文件呢?因为它与.cpp在同一个文件夹里.那么现在如何打开指定位置的文件呢?给出指定的文件位置即可.比如这个123.in可以这样写.

freopen("C:\\Users\\Administrator\\Desktop\\当前代码\\123\\123.in","r",stdin);

  这里都是两个"\\",原因在于,别的没有问题,只有C:后如果用\的话过不了编译,不知道为什么.

  这样的话就可以开始写题了.

  昨天做了一道名为ball的题,以此为例说明一下.

  首先还是正经的把数据读入进来.

  

  然后要清楚in文件的命名规则.在评测机的文件地址是什么,命名方式是1.in还是01.in?

  大多是情况下是不清楚的,我们需要一个函数istream,长得很像某个头文件对吧.这个函数需要头文件

#include<fstream>

  然后我们来判断你要打开的文件是否存在,否则会导致程序运行时错误.

  

 

 

 

  暂时没有什么好的方法,只好复制个30次以确保01-09,1-9,10-20都能试一遍.

  

  1.不用fclose好像也没有问题.

  2.init()里一定要把所有的数据都输入进来.

  3.好像不能用fread快读,用getchar也不差啥.

  4.交互题就算了吧?

  5.题答题不好弄吧?

转载于:https://www.cnblogs.com/qywyt/p/10390086.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值