bzoj1966 [AHOI2005]病毒检测 结论+暴力
这个题注意到*为一串合法的病毒串提供了空间,所以对于一串字符串,病毒串的依据是多种的
这时候就需要确定一种构造方法,根据选择空间的变化,显然靠左的要先选
然后就是匹配带?的串,KMP没法匹配,所以只能暴力(其实n^3不应该是正解)
非常难调,没有优美的写法
码:
#include<iostream>
#include<cstdio>
#include<cstring>
char str[1005],ch[555];
int len,len2,lin,n,i,j,k,sp[1005],wz[1005],stz,ndz,cnt,ans,wzcnt;
int main()
{scanf("%s",str);len=strlen(str);stz=-1;for(i=0;i<len;i++){if(str[i]=='*'&&str[i-1]=='*')continue;if(str[i]=='*')++cnt;str[++stz]=str[i];}len=stz+1;scanf("%d",&n);if(cnt==0){for(i=1;i<=n;i++){scanf("%s",ch);len2=strlen(ch);for(j=0;j<len2;j++){if(ch[j]!=str[j]&&(str[j]!='?'))break;}if(j==len&&len==len2)++ans;}}if(cnt>=1){stz=-1;wz[0]=-1;for(j=0;j<len;j++){if(str[j]=='*')wz[++wzcnt]=j; }wz[++wzcnt]=len;
for(i=1;i<=n;i++)
{scanf("%s",ch);len2=strlen(ch);int o=1,lin=0;//0~1;bool bx=0;if(str[0]=='*')o++,lin++;if(o!=wzcnt)//for(j=0;j<len2;j++) {if(o==1&&j!=0){bx=1;break; } for(k=j,lin=wz[o-1]+1;k<len2&&(str[lin]==ch[k]||str[lin]=='?');)++lin,k++;if(lin==wz[o]){o++;lin++;if(lin==wz[wzcnt-1]+1)break; }}if(lin!=wz[wzcnt-1]+1)bx=1;if(bx==1)continue;if(str[len-1]=='*'){ans++; }elseif(len2-k>=wz[wzcnt]-wz[wzcnt-1]-1){ for(j=len2-1,k=wz[wzcnt]-1;j>=(len2-(wz[wzcnt]-wz[wzcnt-1]-1))&&(ch[j]==str[k]||str[k]=='?');j--,k--);if(j==(len2-(wz[wzcnt]-wz[wzcnt-1]-1))-1)ans++;}}}printf("%d",n-ans);}
bzoj1966 [AHOI2005]病毒检测 结论+暴力相关推荐
- bzoj1966:[AHOI2005]病毒检测
传送门 我也没想到map如此垃圾,bitset优秀啊 直接trie树上搜索就好了 代码: #include<cstdio> #include<iostream> #includ ...
- BZOJ1966 VIRUS病毒检测
目录 BZOJ1966 VIRUS病毒检测 题解 code BZOJ1966 VIRUS病毒检测 题目传送门 题解 一道比较神的\(Dp\),首先我们记\(f[i][j]\)表示模板串匹配到第\(i\ ...
- BZOJ1966: [Ahoi2005]VIRUS 病毒检测
BZOJ1966: [Ahoi2005]VIRUS 病毒检测 Description 科学家们在Samuel星球上的探险仍在继续. 非常幸运的,在Samuel星球的南极附近,探险机器人发现了一个巨大的 ...
- 1966: [Ahoi2005]VIRUS 病毒检测
1966: [Ahoi2005]VIRUS 病毒检测 Time Limit: 3 Sec Memory Limit: 64 MB Submit: 360 Solved: 143 [Submit][ ...
- KMP算法之病毒检测
什么是KMP算法? KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特--莫里斯--普拉特操作(简称KMP算法).KMP ...
- PHP文件在线检测病毒,VIRSCAN 在线病毒检测客户端
/**** 本程序以及提供的源码仅供技术交流使用. 作者不作任何类型担保,在任何情况下都不对使用本软件造成的任何损失或任何相应而生. 间接.附带的损失承担任何责任. ****/importwin.ui ...
- 基于深度学习的病毒检测技术无需沙箱环境,直接将样本文件转换为二维图片,进而应用改造后的卷积神经网络 Inception V4 进行训练和检测...
话题 3: 基于深度学习的二进制恶意样本检测 分享主题:全球正在经历一场由科技驱动的数字化转型,传统技术已经不能适应病毒数量飞速增长的发展态势.而基于沙箱的检测方案无法满足 APT 攻击的检测需求,也 ...
- 勒索病毒恐难暴力破解 国内比特币平台尚买币潮
5月12日晚间,WannaCry(又称Wanna Decryptor)蠕虫病毒在全球超过74个国家爆发,已有至少4.5万台机器受到感染,我国部分高校网络系统沦为重灾区,中石油加油站网络支付系统也受到影 ...
- 马斯克再次进行新冠病毒检测 预计今天出结果
11月15日消息,特斯拉CEO埃隆·马斯克周六时间表示,自己"很有可能"感染了中等程度的新冠肺炎,但继续对测试的准确性表示怀疑,称"不同实验室的结果大相径庭". ...
最新文章
- 大三下学期第一周总结
- 复制内存时检测到可能的io争用条件_这篇高并发服务模型大科普,内部分享时被老大表扬了...
- 模拟撞击_模玩资讯:EPOCH 汽车撞击测试用模拟假人与实验车辆
- [转]MySQL日志——Undo | Redo
- 修复被破坏的 vs 工程设置(续)
- 西门子安装未找到ssf文件_V5.3安装时显示NO SSF FILE FOUND对话框,我该怎么解决啊? 谢谢!-工业支持中心-西门子中国...
- JEECG社区招募新人啦
- 编写Dockerfile的最佳实践
- 为啥有的人能受穷,却不能吃苦?
- 网络映射连接不上_Mac连接不上无线网络的解决方法
- java读取文件 classpath_Java读取Classpath文件
- 如何更改计算机时间和日期,如何更改电脑日期?电脑教程:然后修改
- 私有化+国产化,这款安全可靠的知识管理系统超赞
- numerov算法matlab,常微分方程边值问题
- 异步清零和同步清零的区别
- 把我给另外一个朋友的炒股劝告发给你一遍,希望你可以得到帮助!
- PT100高精度测温电路 AD623+REF3030(转)
- C语言实现简易三子棋,支持双人对战,电脑可拦截
- 工具集电子书等4G资料免费分享(IT 信安菜鸟入门必备)
- 2017MMC智慧出行体验周 Mobile Mobility Connectivity 2017