문제에 lzoi 레이스 시뮬레이션 솔루션

질문 : 출석 제목
원제 : 제목 mtoi 리그
동향 : 진정한 서명 타이틀 (제목 또는 B D1A 타이틀의 인기를 증가).
테스트 사이트 : 기본적인 수학 능력을 플레이어의
어려움을 생각 : 개선 -
코드 난이도 : 인기 제목

용액 : 80 % 열거 폭력
100 % : 주 (a 배타적 b) <= ( A + B의), 배타적 OR까지의 모든 숫자.

문제 B : 서브 테마 보내
D2A [다기능 지방과 지방 팀] : 가죽 원래 제목의
위치를 : 리그 타이틀 D1B는 플레이어의 기본 능력을 조사 하였다. 플레이어에게 70 점을 보냅니다. 긍정적 인 접근을 얻기 솔루션 두 종류의 70 %가 확장 될 수
계산, 더 배낭 DP : 테스트 사이트를
난이도 생각을 : 개선 된
코드 어려움을 : 증가 +

여러 이전 폭력 열거 데이터를 해결할 수 있습니다.
데이터의 50 % : DP를 생각해 보자. [I] [X] [F를 설정 y는] 전 X가 파란색 캠프를 선택하기 전에 학교를 나타내고, Y는 오리 파벌을 선택했습니다. 그는 쉽게 이동했다. 당신은 스크롤 배열 최적화를 사용할 수 있습니다.
추가 데이터의 20 % : 주목 K = 0, 다음 "선택 캠프"와 "선택 도당은"이 두 작업은 비 간섭하는 찾을 수 있습니다. 그럼 당신은 직접 할 수 있습니다.
오름차순으로 도시의 숫자에 따라 모든 학교를 생각해 보자.
상기 I DP 도시가 [I] [J] f를 나타내고, 파란색 캠프 가지는 J의 수를 선택한다.
g [I] [J] DP가 J를 갖는 오리 도당의 수를 선택하고, i 번째 학교를 나타낸다.
그것은 일반 배낭에 따라 전송 될 수 있습니다. 그럼 그냥 곱셈의 원리를 이용하여 답을 계산합니다.
100 % 데이터 참고 모든 데이터 K <= 30이므로 멘토 소수 등 어떤 학교가 없다. DP 따로 추출 할 수있다.
그러나 F 위에 g을 수정할 수로 정의된다 : F [J]의 I DP 도시 (학교의 선호 서비스가없는)는 (i 밖으로 스크롤)을 나타내고, J 갖는 오리 도당의 수를 선택한다.
g [J] DP는 i 번째 학교 (NO 선호) ((I)가 스크롤)을 나타내고, J 갖는 오리 도당의 수를 선택한다. 쉽게 이동 할 수 있습니다.
[I] [j]가 현재의 도시를 대표하는 설정 F1을 고려 블루 캠프에서 (학교의 적어도 선호도가 있어야합니다), 그리고 오리 J 파벌에 개인이있다 번호 제도 (는 z [I] -j의 개인 파벌이있다) . 설정 (F2) [I] [J] 현재 도시가 빨간색 캠프 (학교의 적어도 선호도가 있어야합니다)이다. J 및 보유 도당 개별 프로그램 (AP A [i]를 -j 개별 진영과 Z) 번호.
각 DP F2 후 통합 (F1)에 대한 기여도를 고려한다.
마다 F2 F1 내지 제 사본.
그런 다음 자신의 취향에 따라 전송 된 모든 학교를 열거.
업데이트 완료 F1에서 F2 후,이 도시는 빨간색 또는 파란색 캠프 캠프를 선택 열거 할 수 있습니다. F1 [XA의 [를 I] 사용 [ Y] + F2 [X] [Y] 업데이트 F1 [X] [Y]
(이 전면 의미는 다음과 같습니다 모두 빨간 캠프를 선택했습니다 : 모두가 후자를 의미하는 것은, 파란색 캠프를 선택했습니다).
마지막 F1 [X] [Y] 및 F를 열거 X, Y는, g 응답 업데이트.
피트 : 학교 도시를 건너 뛰거나 20 점하지 않기.

C 제목 : 물 질문
원래 제목 : loj noip 시뮬레이션 게임 D1C 제목 : 투어
, 리그 타이틀 D1C 선수의 사고 능력을 검사 : 오리엔테이션. 다양한 알고리즘의 효과.
테스트 사이트 : 이분법, 행렬 곱셈, 곱셈, 민주당 등의
어려움을 생각 : 증가 +
코드 어려움 : 개선 -
데이터의 앞에 : 블라인드 DP, 블라인드 열거 명 (이 방법을 고려하지 않는 질문 (이동)를 실제로 쓰기에는 너무 약한 아니다 아웃). 일부 부품은 포인트를 얻을 수 있습니다.
알고리즘 아웃 : f를하자 [내가] [j]가 이제 명소로 표현하고, I, J 잉여 달러, 당신은 최대 거리를 취할 수있는 명소에 연료를 공급해야한다.
J <p [i]는 다음 F [I] [J] = 경우 0.
그렇지 않으면 다음 급유 위치 J를 열거입니다. 다음 전사 식을 구하는 :
F [I] [J] = 최대 {F [K] JP를 [I]를] + W가 [I]는 [J]를 [분 (C는 [I], C)]}
설명 : K는 w는 도시를 재충전하는 다음 [I] [J] [K]를 경과는 i에서 j까지의 거리의 최대 K도를 초과하지 않는 나타낸다.
W [] [] []는 폭력 DP를 계산 될 수있다. I에 열거하는 것이 가능 출발시 L 일 수
w 후, [L] [J] [ K-1] w는 전송 될 수있다 [I] [J] [ K].
그러나 폭력 DP 너무 느리다. 고려 두배.
상태 정의를 변경하려면,
[I]가 [J] [K]가 I-를 나타내고 W> K ^ 2 내지 J는 최대 거리 경로를 초과하지 않는다. L은 전송을위한 통과 점을 열거 할 수 있습니다. 식 :
[I]는 [J]는 [K]는 분 W = {W [I] [L] [-K 1.] + W [L]는 [K]는 [K-1.]}
이 계산 실제로 매트릭스 곱셈 유의 대체 * +, + (가)을 분으로, 사실 연관된다.
전처리는 w [i]는 수있다 [J] [ K] ( 즉, 행렬 로그).
w는 [I] [J] 질문 [ 분 ([C를 I, C)는, 응답에 의해 매트릭스의 1 × N의 행렬을 사용할 수있다. 의 값이 1 × N 행렬의 [1] [i]를 비트는 0이고, 다른 하나는 무한하다. 최소 (c [i]는, C ) 이진 분할하고 각 비트 매트릭스에 대응 곱한다.
F를 주목 [I]를 [] 단조, 두 정수 J, K (j를 <k)를 가지고 , F는 [I] [J] < = F [I] [K]. (사실, "당신이 더 갈 수있는 더 많은 돈을 내가 시작"입니다). 사용자 f를 할 수있다 [I]는 [제 1 절반의 위치 (D) (P)보다 크면, 이는 질문 p를 응답을 감산함으로써 얻어 질 수있다.
그리고, 각각의 검색어에 대해 상술 한 바와 같이 처리 될 수있다.

요약 :이 작년보다 약간 적은 어렵다, D2, D1 작년의 경주 시뮬레이션보다 큽니다. 기본적인 기술 테스트 선수에 초점을 맞춘.
평균 플레이어의 경우, 10 분에, 얼마 지나지 생각하는 어떤 문제가 당신이 밖으로 생각할 수있는
백팩 (DP)의 인기로 너무 오래 B 그룹 제목, 당신은 50 점, 좋은 결과를 얻을 수 있습니다. 그리고 해당 K = 0을주의하는 것이 선택 및 캠프 도당은 70 포인트를 얻을 수 서로 독립적 선택합니다.
문제 C 캐주얼 폭력이 좋은 결과에 이르기까지, 0에서 60까지 얻을 수 잤어요.
1 = I는 160-130 사이 줄 것으로 예상된다. 2백40분 이상 몇몇 선수, AK의 적은.
제목을 쓸 때 어떤 냄비, 조건을 놓친 문제가, 나중에 조심해야합니다.
늦은 아침에, 적시에 학생들에 대한 질문에 대답하지 않았다. 또한 일부 데이터 포트가 여기에 사과.

추천

출처www.cnblogs.com/rilisoft/p/11518682.html