2019百度之星 初赛(一)(二)

前两场算是比较简单的两场了。

第一场

1001

题目大意:给定两个多项式 $f(x), g(x)$,求 $\lim_{x\rightarrow \infty} \frac{f(x)}{g(x)}$。

如果 $\deg f(x) > \deg g(x)$ 则为正无穷;如果 $\deg f(x) < \deg g(x)$ 则为 0;否则为两者最高项系数的商。

1002

题目大意:给定数轴上若干根线段。

1005

题目大意:求 ,其中

这种题好像没什么规律,于是化简式子试试看?

我们记 ,则 $a{n-1}=S{n-2}\bmod (n-1)$。设 $S{n - 2} = k(n- 1) + a{n-1}$,则有 $an = \left(S{n - 2}\bmod n\right) - a{n- 1} = -k = -\lfloor \frac{S{n - 2}} {n-1} \rfloor$。

这好像没什么用。但好像告诉我们一些和奇偶性有关的规律。按照奇偶性打一个表:

1
2
奇数:1,0,0,5,1,1,9,2,2,13,3,3,17,4,4,21,5,5,25,6,6,29,7,7,33,8,8,37,9,9,41,10,10,45,11,11,49,12,12,53,13,13,57,14,14,61,15,15,65,16
偶数:1,3,3,4,9,6,7,15,9,10,21,12,13,27,15,16,33,18,19,39,21,22,45,24,25,51,27,28,57,30,31,63,33,34,69,36,37,75,39,40,81,42,43,87,45,46,93,48,49,99

这就比较明显了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void solve(){
if (n % 2ll){
if ((n - 1ll) % 6ll == 0){
ll t = (n - 1ll) / 6ll;
printf("%I64d\n", 4ll * t + 1ll);
}else {
printf("%I64d\n", (n - 1ll) / 6ll);
}
}else {
if (n == 2ll) printf("%I64d\n", 1ll);
else if (n == 4ll) printf("%I64d\n", 3ll);
else{
n -= 4ll;
n /= 2ll;
if (n % 3ll == 0){
ll t = n / 3ll;
printf("%I64d\n", 6ll * t + 3ll);
}else {
printf("%I64d\n", n + 2ll);
}
}
}
}