O(∩_∩)O哈哈~第一篇原创博客。终于结束了我“无敌转载王”的称号了!!!好开心!

(⊙v⊙)嗯,看到标题觉得我是神犇的人,请再次仔细看看标题,是“自动AC”,而非“AC自动”哦!这是利用lemon评测软件的bug实现AC目标的程序。

第一次接触到这个东西是今年暑假。我在XX学堂进行学习。一位DALAO AK了。我们都很震惊。这时一位仁兄举报了他,我们才发现他使用了自动AC机。

话不多说,先上代码。

  1. #ifndef __linux__
  2. #include<windows.h>
  3. #endif
  4. //#include<cstdlib>
  5. //#include<sys/types.h>
  6. //#include<unistd.h>
  7. #include<dirent.h>
  8. #include<string>
  9. #include<vector>
  10. #include<cstring>
  11. #include<algorithm>
  12. using namespace std;
  13. string f=__FILE__;int n,l;
  14. typedef std::pair<int,string> p;
  15. vector<p>v;char s[];
  16. inline char*rread(int&r,char*s)
  17. {
  18. r=;
  19. while(*s<''||*s>'')s--;
  20. for(int b=;*s>=''&&*s<='';b*=,s--)
  21. r+=b*(*s-'');
  22. return s;
  23. }
  24. #include<iostream>
  25. int main()
  26. {
  27. f=f.substr(,f.find_last_of('.',f.length()));
  28. #ifdef __linux__
  29. DIR*dir=opendir(("../../data/"+f).c_str());
  30. dirent*ptr;
  31. while((ptr=readdir(dir))!=NULL)
  32. if((l=strlen(ptr->d_name))>&&
  33. (string(ptr->d_name).rfind(".out",l)==l-||
  34. string(ptr->d_name).rfind(".ans",l)==l-))
  35. {
  36. rread(n,ptr->d_name+strlen(ptr->d_name));
  37. v.push_back(p(n,string(ptr->d_name)));
  38. }
  39. realpath(".",s);
  40. #else
  41. f=f.substr(f.find_last_of('\\',f.length())+,f.length());
  42. WIN32_FIND_DATA d;
  43. HANDLE hFind=FindFirstFile(("..\\..\\data\\"+f+"\\*").c_str(), &d);
  44. do if((l=strlen(d.cFileName))>&&
  45. (string(d.cFileName).rfind(".out",l)==l-||
  46. string(d.cFileName).rfind(".ans",l)==l-)){
  47. rread(n,d.cFileName+strlen(d.cFileName));
  48. v.push_back(p(n,string(d.cFileName)));
  49. }while (FindNextFile(hFind, &d) != );
  50. FindClose(hFind);
  51. GetModuleFileName(NULL,s,);
  52. #endif
  53. rread(n,rread(l,s+strlen(s)));
  54. sort(v.begin(),v.end());
  55. #ifdef __linux__
  56. system(("cp -f ../../data/"+f+'/'+v[n].second+" "+f+".out").c_str());
  57. #else
  58. system(("copy ..\\..\\data\\"+f+'\\'+v[n].second+" "+f+".out").c_str());
  59. #endif
  60. return ;
  61. }

当时我们看到这个程序都惊呆了,因为根本看不懂……哪位看懂的DALAO也不用给我解释了,反正我不会懂的……

现在,我自己研究了一下,写了自己的简单易懂的版本……

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<algorithm>
  5. using namespace std;
  6. char in[];
  7. int main()
  8. {
  9. int num1,num2,id,n1,n2;
  10. freopen("****.in","r",stdin);//****为题目名称
  11. freopen("****.out","w",stdout);
  12. scanf("%d",&n1);
  13. scanf("%d",&n2);
  14. fclose(stdin);
  15. for (int i=;i<=;i++)
  16. {
  17. sprintf(in,"..\\..\\data\\****\\****%d.in",i);
  18. freopen(in,"r",stdin);
  19. scanf("%d%d",&num1,&num2);
  20. if (num1==n1&&num2==n2)
  21. {
  22. id=i;
  23. break;
  24. }
  25. fclose(stdin);
  26. }
  27. sprintf(in,"..\\..\\data\\****\\****%d.ans",id);
  28. freopen(in,"r",stdin);
  29. string ans;
  30. cin>>ans;
  31. cout<<ans<<endl;
  32. return ;
  33. }

非常简单,就是先读入两个数(当然可以多读几个,提高准确率,但一般两个足够了),然后进入到存数据的文件夹(即程序中的data文件夹)。利用循环,打开每一个输入文件,对比前两个数据,如果一样,那么说明我们找到了正确的读入文件(这就是为什么多读几个能更准确,但是一般来说前两个数都一样的不同两个输入文件太少了,所以一般两个即可)。记下这是第几组的输入文件,然后打开对应的输出数据,读入答案,输出。AC了!!!

论自动AC机的更多相关文章

  1. 关于自动AC机

    嗯,,,,自动AC机 在cena评测时: Const SourcePath:string='incantation'; InputFile:string='incantation.in'; Outpu ...

  2. Censoring【自动AC机】【水题毁我青春】【20190614】

    这题简直比注水猪肉还水QAQ. 以前做过KMP的Censoring单串匹配,果断选择自动AC机w 对短串建自动AC机 长串去机子里匹配 用个栈边匹配边弹出 记得弹出一个串后把匹配点指向栈顶就ojbk ...

  3. 自动AC机qwq(大雾)以及trie图fail图的一些结论

    1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<string&g ...

  4. 自动AC机

    可以在lemon和cena环境下使用. #include<iostream> #include<cstdio> #include<cstring> #include ...

  5. 继续node爬虫 — 百行代码自制自动AC机器人日解千题攻占HDOJ

    前言 不说话,先猛戳 Ranklist 看我排名. 这是用 node 自动刷题大概半天的 "战绩",本文就来为大家简单讲解下如何用 node 做一个 "自动AC机&quo ...

  6. 三极管的妙用之C118自动刷机

    首先咱们要搞清楚咱们自动刷机的原理,不谈修改固件那么高深的东西,简单的就是控制开机键. 使用继电器来控制基本上算是上个世纪的想法吧,之前博主也做过,做出来的感觉其实也很不错,就像是一个收藏品.因为继电 ...

  7. BZOJ 1704: [Usaco2007 Mar]Face The Right Way 自动转身机( 贪心 )

    贪心...先枚举k, 然后从左往右扫一遍, 发现位置p的牛的状态不符合就将 [p, p + k ) 的牛都转身, 假如p + k - 1 已经超过了最右边牛的位置那这个k就不符合要求. 符合要求的就可 ...

  8. 【bzoj1704】[Usaco2007 Mar]Face The Right Way 自动转身机 贪心

    题目描述 农夫约翰有N(1≤N≤5000)只牛站成一排,有一些很乖的牛朝前站着.但是有些不乖的牛却朝后站着.农夫约翰需要让所有的牛都朝前站着.幸运的是约翰最近买了一个自动转身机.这个神奇的机器能使K( ...

  9. [bzoj1704][Usaco2007 Mar]Face The Right Way 自动转身机_贪心

    Face The Right Way 自动转身机 bzoj-1704 Usaco-2007 Mar 题目大意:不想描述题意系列++... ...题目链接 注释:略. 想法:我们直接枚举k,然后从左往右 ...

随机推荐

  1. 接口中的方法都自动的被设置为public,接口中的域被自动设置为public static final

    接口中的方法都自动的被设置为public,接口中的域被自动设置为public static final

  2. •C#进阶系列——WebApi接口测试工具:WebApiTestClient

    阅读目录 一.WebApiTestClient介绍 二.WebApiTestClient展示 三.WebApiTestClient使用 1.如何引入组件 2.如何使用组件 四.总结 正文 前言:这两天 ...

  3. Python Django mysqlclient安装和使用

    一.安装mysqlclient 网上看到很过通过命令:pip install mysqlclient 进行安装的教程,但是我却始终安装失败,遇到的错误千奇百怪,后来通过自己下载mysqlclient客 ...

  4. wget的url获取方式

    获取方式 每次用wget都是在网上查相应的url,但以前没怎么关注过这个url是怎么获取到的,这里总结一下 这里以下载jekins为例: 打开jekins网站:https://jenkins.io/d ...

  5. 错误 4 error C2039: “Sleep”: 不是“boost::this_thread”的成员

    检查是否是在x64下运行的. #include <pcl/io/openni2_grabber.h> #include <pcl/visualization/cloud_viewer ...

  6. 【转】使用Scanner输入字符串时next()和nextLine()区别

    在实现字符窗口的输入时,很多人更喜欢选择使用扫描器Scanner,它操作起来比较简单.在编程的过程中,我发现用Scanner实现字符串的输入有两种方法,一种是next(),一种nextLine(),但 ...

  7. Java 之 字符输出流[writer]

    一.字符输出流 java.io.Writer 抽象类是表示用于写出字符流的所有类的超类,将指定的字符信息写出到目的地.   它定义了字节输出流的基本共性功能方法. void write(int c) ...

  8. UI5-技术篇-Expand与Deep 服务测试

    1.SEGW创建服务 2.创建Data Model 2.1Entity Types ZRICO_USR 设置主键.排序字段.过滤字段 ZRICO_USRITM设置主键  2.2Associations ...

  9. dao 接口定义了一个方法,报错 The method xxx is undefined for the type xxx;

    转自:https://blog.csdn.net/panshoujia/article/details/78203837 持久层(DAO层)下的一个接口 ,eclipse报了一个The method ...

  10. PL/SQL Developer_如何快速获得表名或全部列名的文本形式

    转自:https://blog.csdn.net/xwnxwn/article/details/53388887 操作过程: 例1:以“逗号”格式获取“用户表名”的文本 使用scott登陆到PL/SQ ...