比赛场次 | 482 |
---|---|
比赛名称 | 20160421s |
比赛状态 | 已结束比赛成绩 |
开始时间 | 2020-08-14 19:00:00 |
结束时间 | 2020-08-14 23:00:00 |
开放分组 | 全部用户 |
注释介绍 |
题目名称 | 病毒编码 |
---|---|
输入输出 | virusb.in/out |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试点数 | 10 简单对比 |
用户 | 结果 | 时间 | 内存 | 得分 |
---|
对一种计算机病毒的加密编码方式是这样决定的。对于一个存储单元,有Flag域与Data域。Flag域由M+2位二进制数表示,设从左向右数第一位为X1,第二位为X2,剩余M位组成一个二进制整数C。Data域为N位二进制数。
对于输入的共N+M+2个二进制位的Flag与Data域,被攻击的电脑会给出一个长度为N的二进制校验序列Test,病毒程序可以花费1的单位时间对Flag,Data,Test任意一位进行修改,以达到伪装欺骗的目的。现要用最短的时间使得该存储单元通过对方的校验码。
校验公式:(Data[i],Test[i]均为从左向右数第i位表示的二进制数)
Test[i]=Data[(i+(X2*2-1)*C) mod N] xor X1 (0<=i<N)
当N次校验全部通过时该存储单元通过校验。
第一行包含两个整数M,N
第二行为一个长度为N的01串描述Data域
第三行为一个长度为N的01串描述Test串
(Flag域在攻击对方之前全为0)
输出一个整数,表示最短的伪装时间除以1005060097的余数
4 8
11011011
10010000
3
数据范围和注释
对于30%的数据,1<=N<=1000,1<=M<=10。
对于100%的数据,1<=N<=100000,1<=M<=16。
样例解释:Flag=100110或110010 ,Data与Test不变
在此键入。