题解 [email protected]洛谷 | [email protected] 【Limit】

题意:给定两个多项式 P(x),Q(x)P(x),Q(x),求 limx+P(x)Q(x)\displaystyle\lim_{x\to+\infty}\frac{P(x)}{Q(x)} 的值。


乍一看好像很难,但考虑当 xx 趋近于无穷大时,多项式除最高次项以外的影响可以忽略。

经过少许数学推导和大量猜测,当 PP 的次数低于 QQ 时,这个极限为 00;当 PP 的次数高于 QQ 时,这个极限为 \infty-\infty;当次数相同时,这个极限为 PP 最高次项与 QQ 最高次项的比值,记得约分。


代码:

养成了一个习惯,就是用 veryImportantVariable 来存一些完全没用但要读入的东西(((

//By: [email protected]_er(122461)
#include <bits/stdc++.h>
#define loop while(true)
#define rep(x,y,z) for(ll x=y;x<=z;x++)
#define per(x,y,z) for(ll x=y;x>=z;x--)
#define fil(x,y) memset(x, y, sizeof(x))
using namespace std;
typedef long long ll;

int n, m, a, b, veryImportantVariable;

int main() {
	scanf("%d%d", &n, &m);
	if(n < m) return puts("0/1"), 0;
	scanf("%d", &a); rep(i, 1, n) scanf("%d", &veryImportantVariable);
	scanf("%d", &b); rep(i, 1, m) scanf("%d", &veryImportantVariable);
	if(a * b < 0) a = abs(a), b = abs(b), putchar('-');
	if(n > m) return puts("Infinity"), 0;
	int qwq = __gcd(a, b); a /= qwq; b /= qwq;
	printf("%d/%d\n", a, b);
	return 0;
}