질문 표면 :
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
싱글! 또 하나! Jige 여전히 하나! DS 수준의 코드 농부 Jige 여전히 하나! 그래서, 발렌타인 데이가 214 또는 77인지, 자신의 삶을 미워, 그는 미워! Jige 두 숫자 (214)을 관찰하고 (77), 발견 : 2 + 1 + 4 = 7 7 + 7 = 7 * 2 77 = 7 * 11 결국 그 최종 분석 및 7과 관련이 때문에 모든 것을 알았다! 그래서 그는 모든 것을 7에 대해 지금도 수는 싫어! 그리고 어떤 종류의 그것에 숫자 7의? - 다음과 같은 세 가지 조건의 정수 충족 하나, 우리는이 정수와 7에 대해 말한다면 1 , 그것은 7 정수 조금있다 2 , 각 비트 정수 7의 정수 배수까지 추가는, 3 이 정수 7의 정수 배수, 이제 질문은 : Jige 특정 범위와 광장 숫자 7과 관련이없는 내 알고 싶어요. 입력 입력 데이터의 첫 번째 라인은 케이스 번호 T (것이다 . 1 <= T <= 50예), 다음 행 T T는 경우를 나타내고, 각각의 경우 두 개의 양의 정수의 L, R (하나 개의 줄을 포함 . 1 <= L <= R & LT <= 10 ^ 18 ). 출력 계산 [L, R] 독립된 숫자 7 승, 10의 결과 ^ 9 + 7 모듈 동작 출력. 입력 샘플 . 3 . 1 . 9 (10) . (11) . (17) . 17 샘플 출력 236 221 0
질문의 의미 :
다음의 세 가지 상태의 정수 충족 한 7 정도 인 경우
(1), 7의 정수이고;
(2), 결합 정수는 각각 7의 정수배이며;
(3), 정수 7의 정수이고 시간;
주어진 간격과 7 독립적 번호 내에서 사각형을 찾는.
https://blog.csdn.net/Estia_/article/details/83479031
이 블로그는 분명 좋은 아이디어를 Daoting,하지만하여 작성 내가 이해하지 못했다 구조의 내부의 코드 내부의 구조 ,,
코드 :
#INCLUDE < 문자열 .H> #INCLUDE <iostream> #INCLUDE <STDIO.H> #INCLUDE <알고리즘> #INCLUDE <cmath> 은 USING 공간 STD, 타입 정의 긴 롱 LL; CONST LL + 1E9 = MOD . 7 ; 구조체 노드 { LL CNT ; // A A A 7 LL SUM; // 모든 함께 및 7의 정수배 LL의 sqsum; // SE 일곱의 정수배 } DP [ 20된다 [] 10 ] [ 10 ] INT 위한 자리 [ 25 ]; LL P [ 25 ] 공극 초기화 () { P [ 0 ] = 1이다. ] 대 ( INT I = 1. ; I < 20이며 ; I ++ ) P [I]는 = (P [I- 1. * 10 ) % MOD; / / 방법 속성 할당에 구조하는? ? // (; I <20 인 I ++ INT I = 0)에 대한 // { // 대 (INT J = 0; J <10; J ++) // { // 대 (INT = 0 K; K <10; ++ K ) // { // DP [I] [J] [K] .CNT = -1; // } // } // } } 노드 DFS ( INT 렌 INT P1, INT P2, 부울 제한) { 경우 (LEN == - 1 ) { 노드 PP; pp.cnt = (! P1 = 0 && (P2)! = 0 ); pp.sum = pp.sqsum = 0 ; 반환 쪽을; // 반환 1; } 만약 (최대 == 0 && DP [LEN] [P1] [P2] .CNT) //- IF (! 제한 == 0 && DP [LEN] [P1] [P2] .CNT = 1) // 와 현재의 비트 수는 통계가 리턴 ; DP [LEN] [P1] [P2] ; LL 업 IF = (한도 = 1 ) 최대 = 자리 [LEN] 다른 최대 = 9 ; 노드 PP, QQ가; // 왜 집단적으로 정의되지? ? ? ? WA? ? qq.sum = = = qq.sqsum qq.cnt 0 ] 대 ( INT I = 0 ; I는 <최대 = I ++ ) { IF (I == . 7 ) 계속해서 , PP = DFS (렌 . (1) , (I + P1 ) %7 (N2 * 10 + I) % 7 , 제한 && 난 == 까지); qq.com + = PC; qq.com % = 개조; qq.sum + = (pp.sum + ((p [LEN * I) 개조 %) * %의 PC 모드) %의 모드; qq.sum % = 개조; qq.sqsum + = (pp.sqsum + (( 2 * P [LEN * I) 개조 %) * pp.sum) %의 모드; qq.sqsum % = 개조; qq.sqsum + (PC * P [LEN]) %의 개조를 P [LEN * I는 I * %% 개조를 개조하는 단계; qq.sqsum % = 개조; } 만약 (최대 == 0 ) //완성 된 상태에서는 DFS 직접 반환 할 때, 다음 번까지이다 DP [렌] [P1] [P2] = ; QQ 복귀 QQ를; } 해결 LL (LL X) { INT NUM = 0 ; // 자릿수 그동안 (X) { 위한 자리 [NUM은 ++] X가 % = 10 ; // 문제가없는 이유를 알 수없는 권리 ++ 납입 X / = 10 ; } 반환 DFS (NUM- 1. , 0 , 0 , 1을. ). sqsum; //이 위에서 아래에서 높은 횡단 } INT ) (주 { // memset 함수 (DP, 0, sizeof의 (DP는)); // 필요한 비트 수는 -1 DP 겉보기에 한 번 비워 취소 빈 두를 비우는 것은 쓰기 문 0 필요 없다 , 초기화 () INT T; CIN >> T, 그동안 (T- - ) { LL L, R & LT; CIN >> L >> R & LT는; // 로 정의 INT WA LL ANS = 해결 (R LT) -solve (L- . 1 ) ANS = (ANS % + MOD MOD) MOD %; //는 제외 방지 << COUT ANS << ; ENDL를 // (N-) << ENDL을 1-N-해결 COUT << +]. // 상부 및 하부 경계를 법원 << 해결 (m) -solve ( N-1) << ENDL; } 반환 0 ; }
해결하려면 :
일부 문제는 기록의 맥락에서 해결해야 할, 나는의 질문을보고 싶지 않아
생각:
이 질문에 나는 몇 시간을 변경? ? ?
다음 쓰기, 영어를 볼 수있는 오후를 마무리 할 수도 있었다 ,,,, 난 아직 완료하지 않은,
정말 너무 많은 음식 정말 ,, 증오 철 아, 그냥입니다 ,,, 질문의 일을,
왜 노드 내부 재정의 할 필요가, 아에 영향을주지 않습니다? ? ?
내부 CNT 청나라 청나라 -1 불분명하거나 영향을주지 않습니다
나는 폭발 배치 할
영어 보지, 붐 ~