模拟26—「神炎皇·降雷皇·幻魔皇」
神炎皇
emmm,是个数学题,乱搞搞着搞着就会做了。
其实这种题不能怕费时间,无脑乱撞总能撞准。
首先看数据范围,\(1e14\),看起来像个根号的算法。
努力想平方,根号之类,无脑乱撞发现如果都除去\(\mathrm {gcd}\),然后乘上一个东西,就出现平方了。
具体看土哥博客。
\(tick:\)欧拉函数是\(k\)以内与\(k\)互质的数的个数,也是和为\(k\)的互质数对的个数。
降雷皇
线段树上记录最长前面的转移项和他有几个就行了,考试每加够取模油炸了。
幻魔皇
分类讨论\(\mathrm{Lca}\)是黑色还是白色就行了。
发现枚举深度会\(\mathrm{TLE}\)所以直接搞一个前缀和就行了。
code
#include <cstdio>
#include <cstring>
#include <algorithm>
#define int long long
#define R register int
#define printf Ruusupuu = printf
#define scanf Ruusupuu = scanf
#define freopen rsp_5u = freopen
int Ruusupuu ;
FILE * rsp_5u ;
using namespace std ;
typedef long long L ;
typedef double D ;
const int N = 1e4 + 10 ;
const int P = 123456789 ;
inline void of(){ freopen( "in.in" , "r" , stdin ) , freopen( "out.out" , "w" , stdout ) ; }
inline void cf(){ fclose( stdin ) , fclose( stdout ) ; }
inline int read(){
int w = 0 ; bool fg = 0 ; char ch = getchar() ;
while( ch < '0' || ch > '9' ) fg |= ( ch == '-' ) , ch = getchar() ;
while( ch >= '0' && ch <= '9' ) w = ( w << 1 ) + ( w << 3 ) + ( ch - '0' ) , ch = getchar() ;
return fg ? -w : w ;
}
int n , fib [N] , ans [N] ;
void sc(){
n = read() ;
}
void work(){
fib [1] = fib [2] = 1 ;
for( R i = 3 ; i <= n ; i ++ ) fib [i] = ( fib [i - 1] + fib [i - 2] ) % P ;
for( R i = 2 ; i <= n ; i ++ )
ans [i] = ( ans [i] + fib [i - 1] * fib [n - i] ) % P ;
for( R i = 1 ; i < n ; i ++ ){ //黑儿子距离
ans [i + 1] = ( ans [i + 1] + ( fib [i - 1] * ( fib [n - i + 1] - 1 + P ) % P ) % P ) % P ;
for( R j = 3 ; j < n ; j ++ ) // 白儿子距离
ans [i + j] = ( ans [i + j] + ( fib [i - 1] * fib [j - 2] ) % P * ( fib [n - max( i , j ) + 1] - 1 + P ) % P ) % P ;
}
for( R i = 1 ; i <= 2 * n ; i ++ ) printf( "%lld%c" , ans [i] % P , ( i == 2 * n ) ? '\n' : ' ' ) ;
}
signed main(){
// of() ;
sc() ;
work() ;
// cf() ;
return 0 ;
}
考完试之后还是能自己推出来,其实感觉\(\mathrm{Fib}\)找规律的题不是太难,只要静下心推就行,你会发现你想要的东西都能表示成\(\mathrm{Fib}\)数列。
总结
1.\(\mathrm{T1}\)这种数学题要分配点时间,因为这种题只要能推出来能和暴力拉出来很多分。
2.\(\mathrm{T2}\)拍出来错误数据之后就很着急,本来距考试结束还有\(1.5\)小时,但是就是一直调没用的浪费掉了,没取模真的是毛病,克服秘籍就是看\(lzy\)盗版我的\(\mathrm{OI}\)宝典
$The \ light \ has \ betrayed \ me$

浙公网安备 33010602011771号