[DP] luogu P2467 엘프 족

https://www.luogu.org/problem/P2467

분석

우리는 (순서가 합법적 인 경우에) 이상한 특성을 얻을 필요가 :

속성 1 : I 및 I + 1에 인접하지 않은 때, 난 + 1 스위칭 가능한 옵션 인

속성 2 : 각 숫자를 n-AI + 1로 변환을 위해, 실행 가능한 옵션, 봉우리와 계곡과 상황이 켜집니다

속성 3 : 법적 순서는 완전히 거꾸로 그것은 합법적 인 순서입니다

그때는 1 피크로 ~ J를 도면 부호 1 [I] [J] f를 거기

그런 다음 식을 가지고 : [I]는 [j]가 F가 F = [I] [J-1] + F [I-1] [I-J + 1]

1, 2 각 대회의 성격, 생각을 그릴 수 있습니다

마지막으로, 후 통계 프로그램 별 두 마무리의 수, 대응하는 속성 3

 

사용법 #include <iostream> 
#INCLUDE <cstdio>
 사용  스페이스 성병; 
타입 정의  LL;
CONST의  INT의 N = 4.2e3 + 10 ;
INT의 N; 
LL의 P [F 2 ] [N], ANS; 

INT 의 main () { 
    는 scanf ( " % d 개 %의 LLD " , 및 N, P); 
    F [ 0 ] [ 2 ] = 1 ;
     ( INT I = 3 , Q = 1 ; i가 <= N; I ++와 Q ^ = 1 )
         에 대한( INT에 J = 2 , J <= I, J ++ ) 
            F [Q] [J] = (F [Q] [J - 1 ] + F [Q ^ 1 ] [I-J + 1 ]) %의 P;
    위한 ( int로 난 = 2 ANS = (ANS + F [N 및 내가 ++; i가 N = <) (1) [I]) %의 P; 
    의 printf ( " %의 LLD는 " * ans와 2 % P)를; 
}
코드보기

 

추천

출처www.cnblogs.com/mastervan/p/11367337.html