[그룹] NOIP2012 인기 보물 찾기

이 실제 도로 어려운 항목 컴퓨터가 삼일이 켜지지 돌았 다 뇌에서, 조정을 만지지 수 있기 때문에 title're 정말 문제는, 내 죽음 ™! !

P1076의 보물 찾기

생각 : 폭력 아날로그 (시간 복잡도 O (NM)로 딥 등) + 최적화 모듈 (기초가되는 모든 단순히 폭력적 TLE 될 수도 있음)한다.

AC 코드 :

#INCLUDE <비트 / stdc ++ H.>
 사용  스페이스 성병;
 길이 N, m, t, A [ 10005 ] [ 105 ], 수 [ 10005 ], 시작, ANS, P;
부울 기호 [ 10005 ] [ 105 ];
int로 주 () 
{ 
    (scanf와 " %의 LLD의 %의 LLD를 " , N, m);
    위한 (  길이 I = 1 ; I ++는, 난 <= N )
         에 대해 (  길이 , J = 0 , J ++; J <m ) 
        { 
            (는 scanf" %의 LLD의 %의 LLD " , t, & A [I] [J]); 
            [I] [j]가 로그인 = t;
            경우 (부호 [I] [J]) 수 [I] ++ ; 
        } 
    는 scanf ( " %의 LLD " , 시작);
      J = 시작;
    위한 (  길이 I = 1 ; i가 <= N; 내가 ++ ) 
    { 
        ANS + = A [i]를 [START]; 
        P가 A [i]를 [시작] % = 수를 [I];
        경우 (p의 == 0 ) p = 수 [I];
        동안 (1 ) 
        { 
            경우 (부호 [I] [J]) p-- ;
            만약 (! P가) 휴식 ; 
            J ++ ;
            만약 (j의 ==의 m) J = 0 ; 
        } 
        시작 = J 단계; 
    } 
    ANS = ANS % 20123 ; 
    의 printf ( " %의 LLD " , ANS);
    반환  0 ; 
}
정말 쉽지 ™

코어 최적화 :

p는 수 A [i]를 [시작]을 % = [I];

시작 방 번호의 층의 시작점을 나타내고, 에이블 []는 구문 최적화 방 레이어 번호는 예를 들면 개조 연산자 크게 시간 복잡도를 감소시킬 수 계단이다 :

이 계단과 방 3 층이 있지만, 실내의 액자 시작 X = 10000, 시뮬레이션 폭력은 10,000을해야하지만 10,000% 3 = 1, 그것은 1 개 거리에 있습니다.

사실, 최적화는 점없는

열쇠는 시뮬레이션주기를 조정하는 것입니다!

그동안 ( 1. ) 
        { 
            IF (부호 [I] [J])에 P--는; // 방 계단이 있는지 여부를 기록하는 [] []는 불리언 타입 로그인 
            IF (P!) BREAK , 
            J ++ ;
             IF (J = m =)는 J = 0 ; // 아날로그 환형 통로 
        }

오래 오래 열 것을 잊지 마세요

(가) 20,123%에 대한 답변을 참조하지 않았기 때문에 AC 코드는 첫 번째 제출 20 분이 소요됩니다

추천

출처www.cnblogs.com/yige2019/p/11273097.html