五一蹲大牢 贰

1 跳跃(jump.c/cpp/pas)

1.1 题目描述

总共有 L 个荷叶围成一个圆环,我们将最南边的荷叶开始,逆时针依次对荷叶编号为 0、1、2、…、L-1。青蛙 A、B 初始分别在第 x、y 个荷叶上, 它们同时开始沿逆时针跳动,每个单位时间,青蛙 A 会向前跳 n 个荷叶,青蛙 B 会向前跳 m 个荷叶。这样一直下去,问它们是否会在某个时刻跳>到同一> 个荷叶上,如果会则输出需要的最少跳跃次数,如果不会则输出一行 “Impossible”。

1.2 输入格式

仅一行,五个整数 x, y, n, m, L,含义如题意所述。

1.3 输出格式

输出一行,“Impossible”或一个整数,如题意所述。

1.4 样例输入

1 5 3 2 10

1.5 样例输出

4

1.6 数据范围与约定

对于 20%的数据 x, y, m, n, L<100;
对于 100%的数据 x≠y<2000000000, 0<m,n<2000000000, 0<L<2100000000。


设时间为t,则 x+nt≡y+mt(mod L),移项得 (n-m)t-kL=y-x,可以用扩欧解决。


2 方程 (equation.c/cpp/pas)
2.1 题目描述

求解+= 的正整数解 (x, y) 的数目。

2.2 输入格式

第一行为一个整数 n。

2.3 输出格式

输出一行一个整数,表示满足上式的正整数解 (x, y) 的数目,答案对 109+7 取模。

2.4 样例输入

4

2.5 样例输出

21

2.6 数据范围与约定

对于 20%的数据,n <= 5;

对于 40%的数据,n <= 100;

对于 100%的数据,1 <= n <= 106


考场上试着推了几下式子没推出来,应设x=m+k,则+=,化简得,即求的质因子数,各自乘二加一再累乘。


3 离散对数 (log.c/cpp/pas)

3.1 题目描述

对于,找到 x 的最小正整数解,无解则输出一行 “No solution”。

3.2 输入格式

第一行一个整数 n,表示有 n 组数据。

接下来 n 行,每行三个整数 A, B, P。

3.3 输出格式

输出 n 行,每行一个整数表示答案,或“No solution”表示找不到正整数解。

3.4 样例输入

3
2 1 5
2 3 5
3 3 5

3.5 样例输出

0
3
1

3 .6 数据范围与约定

对于前 20%的数据,保证 P<=1000;

对于前 70%的数据,保证 n<=5;

对于 100%的数据,保证 1<=n<=200,1<=A, B<P,2<=P<231 且为质数。


基于分块思想,的大步小步令p=n*m,则枚举i,使,移个项,满足gcd(a,p)=1,否则不能把有a-m即没有逆元,然后把a0~n-1存入hash表,枚举i,查看aim是否在表中,当m=n=时复杂度O()。

--2022.5.1

posted @ 2022-05-01 19:21  夏天海里的余  阅读(44)  评论(0)    收藏  举报