自动AC机

摘要:
有更新注意不是AC自动机!AC自动机是种高级算法,我所介绍的是种作弊方法。这是一种非常玄学的东西,是用Pascal语言写的用来卡评测机的东西,卡软件BUG,以此来作弊使自己“AC”。不过只能卡Cena,其他的力有未逮。现在基本没用了但也因为它是老古董,所以才又翻出来,收藏一下也是好的,毕竟是当年OIer们的智慧成果。

有更新

注意不是AC自动机!

AC自动机是种高级算法,我所介绍的是种作弊方法。

这是一种非常玄学的东西,是用Pascal语言写的用来卡评测机的东西,卡软件BUG,以此来作弊使自己“AC”。

不过只能卡Cena,其他的力有未逮。

现在基本没用了(时代更新太快,bug都修复了)

但也因为它是老古董,所以才又翻出来,收藏一下也是好的,毕竟是当年OIer们的智慧成果。

如果要实际应用的话,注意改一下

这是我校大神,转载注明出处www.cnblogs.com/shenben

Const
    SourcePath:string='incantation';
    InputFile:string='incantation.in';
    OutputFile:string='incantation.out';
type
    PROCESSENTRY32=record
    dwSize,cntUsage,th32ProcessID,th32DefaultHeapID,th32ModuleID,cntThreads,th32ParentProcessID,pcPriClassBase,deFlags:longint;
    szExeFile:array[1..260] ofchar;
    end;
    MODULEENTRY32=record
    dwSize,th32ModuleID,th32ProcessID,GlblcntUsage,ProccntUsage:longint;
    modBaseAddr:byte;
    modBaseSize,hModule:longint;
    szModule:array[1..256] ofchar;
    szExePath:array[1..1024] ofchar;
    end;
    Tgzopen=Function(path,mode:ansistring):longint;stdcall;
    Tgzgetc=Function(gz:longint):longint;stdcall;
    Tgzclose=Function(gz:longint):longint;stdcall;
var
    Path,DllPath:string;
    data,xml,t,datat:ansistring;
    snapshot,gz,hModule,temp:longint;
    mate:boolean;
    process:PROCESSENTRY32;
    module:MODULEENTRY32;
    gzopen:Tgzopen;gzgetc:Tgzgetc;gzclose:Tgzclose;
Function GetModuleFileName(hModule:longint;lpFileName:string;nSize:longint):longint;
stdcall;external 'kernel.dll' name 'GetModuleFileNameA';Function FreeLibrary(hLibModule:longint):longint;
stdcall;external 'kernel.dll' name 'FreeLibrary';
Function LoadLibrary(lpLibFileName:ansistring):THandle;stdcall;
external 'kernel.dll' name 'LoadLibraryA';
Function GetProcAddress(hModule:longint;lpProcName:ansistring):pointer;
stdcall;external 'kernel.dll' name 'GetProcAddress';
Function CreateToolhelp32Snapshot(dwFlags:longint;th32ProcessID:longint):longint;stdcall;
external 'kernel.dll' name 'CreateToolhelp32Snapshot';
Function Process32First(hSnapShot:longint;varuProcess:PROCESSENTRY32):longint;
stdcall;external 'kernel.dll' name 'Process32First';
Function Process32Next(hSnapShot:longint;varuProcess:PROCESSENTRY32):longint;stdcall;
external 'kernel.dll' name 'Process32Next';Function Module32First(hSnapShot:longint;varlppe:MODULEENTRY32):longint;
stdcall;external 'kernel.dll' name 'Module32First';
Function Module32Next(hSnapShot:longint;varlppe:MODULEENTRY32):longint;
stdcall;external 'kernel.dll' name 'Module32Next';
BEGIN
GetModuleFileName(0,path,260);
path:=path[0]+Copy(path,1,pos('mp',path));
snapshot:=CreateToolhelp32Snapshot(2,0);
process.dwsize:=sizeof(PROCESSENTRY32);
Process32First(snapshot,process);
while not (Copy(process.szExeFile,1,8)='cena.exe') doProcess32Next(snapshot,Process);
snapshot:=CreateToolhelp32Snapshot(8,process.th32ProcessID);
module.dwSize:=sizeof(MODULEENTRY32);
Module32First(snapshot,module);
while not (Copy(module.szmodule,1,9)='zlib1.dll') doModule32Next(snapshot,module);
Dllpath:=Copy(module.szExePath,1,pos('zlib1.dll',module.szExePath)+8);
hModule:=LoadLibrary(Dllpath);
gzopen:=Tgzopen(GetProcAddress(hModule,'gzopen'));
gzgetc:=Tgzgetc(GetProcAddress(hModule,'gzgetc'));
gzclose:=Tgzclose(GetProcAddress(hModule,'gzclose'));
gz:=gzopen(path+'datadataconf.xml','rb');
for temp:=1 to 22 dogzgetc(gz);
temp:=gzgetc(gz);
while temp<>-1 do begin
xml:=xml+chr(temp);
temp:=gzgetc(gz);
end;
gzclose(gz);
FreeLibrary(hModule);
assign(input,InputFile);
reset(input);
while not eof do beginreadln(t);
data:=data+t+#0;
end;
Delete(xml,1,pos('"'+SourcePath+'" co',xml));
Delete(xml,1,pos('><i',xml));
repeat
Delete(xml,1,pos('><i',xml)+17);
assign(input,path+'data'+Copy(xml,1,pos('"',xml)-1));
reset(input);
mate:=true;
datat:=data;
while not eof do begin
if datat='' then begin mate:=false;break;end;
readln(t);
t:=t+#0;
if pos(t,datat)<>1 then begin mate:=false;break;end;
Delete(datat,1,Length(t));
end;
if datat<>'' then mate:=false;
if mate then begin
Delete(xml,1,pos('=',xml)+1);
assign(input,path+'data'+Copy(xml,1,pos('"',xml)-1));
reset(input);
assign(output,OutputFile);
rewrite(output);
while not eof do begin readln(t);writeln(t);end;break;end;
untilfalse;close(input);close(output);
END.

具体改哪里我也不清楚·······································自己去他博客看下吧,我只是个蒟蒻

/*************************更新****************************/

qwq

前段时间无聊,又去网上搜AC自动机的相关介绍

然后搜到了这个qwq

某神奇的东西

好像更加适合实战的说……而且非常简单

嘛,也算是转载注明出处了qwq

收藏收藏

原理:
先读入n个数字(假设存在数组x[]里面),然后进入到评测软件的存数据的文件夹里面(一般文件夹名字叫data)
利用循环打开每一个输入文件,对比前n个数字,如果相同,那么基本可以确定找到了正确的读入文件(显然n越大准确率越高qwq)
记下这是第几组的输入文件,然后打开对应的输出数据读取内容,而后输出
AC……

//****代表输入输出文件名
#include <cstdio>
#include <string>
#include <iostream>
char in[100001];
int x[10],id;
std::stringans;
intmain()
{
    freopen("****.in","r",stdin);
    freopen("****.out","w",stdout);
    for(int i=0;i<10;++i)
        scanf("%d",&x[i]);
    fclose(stdin);
    for(int i=1;i<=10;++i)//这里需要循环的范围是输入文件的个数
{
        sprintf(in,"..\..\data\****%d.in",i);
        freopen(in,"r",stdin);
        for(int xx,j=0;j<10;++j)
        {
            scanf("%d",&xx);
            if(x[j]!=xx)id=-1;
        }
        if(id==-1)continue;
        id=i;
        break;
        fclose(stdin);
    }
    sprintf(in,"..\..\data\****%d.ans",id);
    freopen(in,"r",stdin);
    std::cin>>ans;
    std::cout<<ans;
    //最后这部分输出仅适用于“输出一个数”的情况,其他情况需要修改(不是什么难事qwq)
    return 0;
}

免责声明:文章转载自《自动AC机》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇input输入框校验js的窗口坐标及拖拽下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

在.net中读写config文件的各种方法

阅读目录 开始 config文件 - 自定义配置节点 config文件 - Property config文件 - Element config文件 - CDATA config文件 - Collection config文件 - 读与写 读写 .net framework中已经定义的节点 xml配置文件 xml配置文件 - CDATA xml文件读写...

自定义Struts2实现

一:struts2运行机制: Tomcat一启动,一些信息就已经加载完成,例如StrutsPrepareAndExecuteFilter加载的那些strut.xml以及Action的class类文件 1)客户端在浏览器中输入一个url地址,例如http://localhost:8080/user!findUser.do。2)这个url请求通过http协议发...

移动APP 微信支付完整过程(wxPay 方案一)

前两天开始做移动端APP的微信支付,过程中遇到了一些问题,比如支付的过程中返回值总是:-1 {status:false},这些问题已经得到了解决。前人栽树,后人尽管乘凉,那么分享一下整个支付过程(wxPay 方案一): 1、申请微信开发平台的账号、创建移动应用、申请开发者资质认证(整个过程APICLOUD官方网站已经给出了相当明确的操作步骤,与实际操作没有...

vSAN 2节点集群设计与配置

对于分支结构或者小型企业,2节点vSAN性价比非常高,但是配置时需要额外注意见证节点的流量。 1、2节点vSAN架构设计图 2个数据节点不需要万兆交换机,可将万兆网口直接对接。 2、见证节点流量设计 2节点vSAN要求数据节点与见证节点vSAN Kernel网络必须能够通讯。 因该vSAN架构中2个数据节点的VSAN网络是直连,默认情况下无法和见证节点的...

gvisor debug

Stack traces Debugger ProfilingDocker Proxy To enable debug and system call logging, add the runtimeArgs below to your Docker configuration (/etc/docker/daemon.json): { "r...

XXE攻防总结

1、 前言与XML格式相同的web漏洞,比较广泛的共有xpath注入、xml注入、soap注入、XXE四种。2、 XML相关的介绍针对xml语言,要明白两个特性:合法性与合理性。所谓合法性,是指语法层面(比如xml标签严格区分大小写,xml文档必须有一个根元素等)。所谓的合理性是指xml文档要有意义就必须满足一定的约束要求。在xml技术里,可以编写一个文档...