为了打倒邪恶管理员 Skip 蚤,跳蚤国王决定“以其人之道还治其人之身”。
跳蚤国王事先在 Skip 蚤的电脑中留下了后门。跳蚤国王计划通过后门攻破管理员 skip 蚤。
一个后门可以用一个非空序列
对于长度为
对于任意一个序列
现在,你已经知道了 Skip 蚤的电脑的后门,和表示它的长为
求出攻破它花费的时间
由于本题中
输入格式
一行,两个整数,分别为
随机数生成器的 C++
代码如下 :
namespace GenHelper
{
unsigned z1,z2,z3,z4,b;
unsigned read()
{
b=((z1<<6)^z1)>>13;
z1=((z1&4294967294U)<<18)^b;
b=((z2<<2)^z2)>>27;
z2=((z2&4294967288U)<<2)^b;
b=((z3<<13)^z3)>>21;
z3=((z3&4294967280U)<<7)^b;
b=((z4<<3)^z4)>>12;
z4=((z4&4294967168U)<<13)^b;
return (z1^z2^z3^z4);
}
void srand(int x)
{
z1=x;
z2=(~x)^0x233333333U;
z3=x^0x1234598766U;
z4=(~x)+51;
}
}
using namespace GenHelper;
您要首先调用一次 srand(seed)
,然后连续调用 read()
,第
输出格式
输出一行一个整数,表示
样例一
input
3 1
output
1484747852
explanation
生成的序列为
样例二
input
5 2
output
16835609
样例三
input
100 3
output
2637589059
限制与约定
对于所有数据,
子任务编号 | 分值 | |
---|---|---|
1 | ||
2 | ||
3 | ||
4 |
时间限制 :
空间限制 :