2015 년 제 6 회 자바 그룹 A 블루 브릿지 컵 지방 대회 실제 질문

블루 브릿지 컵의 수년에 걸친 토픽 컬럼입니다. 업데이트 될 예정이며 지난 몇 년간의 실제 질문과 답변을 공개 할 예정입니다. 친구에게 관심을 가져 주셔서 감사합니다. 당신의 좋아요와 관심은 저에게 최고의 동기입니다! ! !
매일 하나의 실제 질문을 업데이트하므로 계속 지켜봐주십시오.

Lanqiao Cup 과거 논문 및 자세한 답변


질문 1 : Furbolg는 호두를 먹는다

제목 설명
숲에 호두를 좋아하는 펄 볼그가 있습니다. 그러나 발견 한 호두를 두 개의 균등 한 부분으로 나누고 한 부분을 먹고 한 부분을 유지하는 습관이 있습니다. 균등하게 나눌 수 없으면 펄볼 그는 호두를 버리고 나눈다. 다음날 호두가 하나 남을 때까지이 과정을 계속하십시오. 어느 날 펄 볼그가 1543 개의 호두를 발견했는데,이 호두를 먹는 과정에서 얼마나 많은 호두가 잃게 될지 물어 보겠습니다.
주제 분석
주제 코드


질문 답변

3

질문 2 : 은하 폭탄

제목 설명
우주의 도로 표지판으로 사용되는 X 은하의 광대 한 공간에 떠 다니는 X 별 인공 "폭탄"이 많이 있습니다.
각 폭탄은 며칠 안에 폭발하도록 설정할 수 있습니다.
예를 들어 알파 폭탄이 2015 년 1 월 1 일에 배치되고 시간이 15 일이면 2015 년 1 월 16 일에 폭발합니다.
2014 년 11 월 9 일에 1,000 일의 타이밍으로 설치된 베타 폭탄이 있습니다. 정확한 폭발 날짜를 계산해주세요.

날짜를 입력하세요. 형식은 yyyy-mm-dd로 4 자리 연도, 2 자리 월, 2 자리 날짜입니다. 예 : 2015-02-19
형식에 따라 엄격하게 작성하십시오. 다른 단어 나 기호는 나타날 수 없습니다.
주제 분석
주제 코드


질문 답변

2017-08-05

질문 3 : 9 개의 숫자는 3 개의 그룹으로 나뉩니다.

제목 설명
에서 1부터 9까지의 숫자는 A, B, C로 설정되는 3 개의 3 자리 숫자로 구성 될 수 있으며 이제 다음 관계가 필요합니다.
B = 2 * A
C = 3 * A

A에 대한 가능한 모든 답을 적어주십시오. 공백을 사용하여 숫자를 구분하고 오름차순으로 배열하십시오.

참고 : A의 값을 제출하고 형식 요구 사항을 엄격히 준수하여 출력하십시오.
주제 분석
주제 코드


질문 답변

192 219 273 327

질문 4 : 순환 섹션의 길이

제목 설명
두 개의 정수를 나누면 순환 소수가 생성되는 경우가 있습니다. 순환 부분을 순환 섹션이라고합니다.
예 : 11 / 13 = 6 => 0.846153846153 ... 루프 섹션은 [846153]이며 총 6 자리 숫자가 있습니다.
다음 방법은 루프 섹션의 길이를 찾을 수 있습니다.

코드를주의 깊게 읽고 밑줄이 그어진 부분에 누락 된 코드를 입력하십시오.

    public static int f(int n, int m)
    {
    
    
        n = n % m;    
        Vector v = new Vector();
        
        for(;;)
        {
    
    
            v.add(n);
            n *= 10;
            n = n % m;
            if(n==0) return 0;
            if(v.indexOf(n)>=0)  _________________________________ ;  //填空
        }
    }

주제 분석
주제 코드


질문 답변

return v.size() - v.indexOf(n);

질문 5 : 다이아몬드 인쇄

제목 설명
마름모의 측면 길이를 제공하고 콘솔에 마름모를 인쇄합니다.
공백을 쉽게 비교할 수 있도록 공백을 마침표로 대체합니다.
측면 길이가 8 일 때 마름모는 다음과 같습니다.

.......*
......*.*
.....*...*
....*.....*
...*.......*
..*.........*
.*...........*
*.............*
.*...........*
..*.........*
...*.......*
....*.....*
.....*...*
......*.*
.......*

다음 프로그램은이 기능을 구현하지만 아이디어가 조금 이상합니다.
코드를주의 깊게 분석하고 밑줄이 그어진 부분에 누락 된 코드를 입력하십시오.

public class A
{
    
    
    public static void f(int n)
    {
    
    
        String s = "*";
        for(int i=0; i<2*n-3; i++) s += ".";
        s += "*";
    
        String s1 = s + "\n";
        String s2 = "";
        
        for(int i=0; i<n-1; i++){
    
    
            //System.out.println("=>"+s);
            s = "." + _____________________________________ + "*";  //填空
            s1 = s + "\n" + s1;
            s2 += s + "\n";
        }
        System.out.println(s1+s2);        
    }
    
    public static void main(String[] args)
    {
    
    
        f(8);
    }
}

주제 분석
주제 코드


질문 답변

s.substring(0, s.length()-3)

여섯 번째 질문 : 곱셈에 더하기

제목 설명
우리 모두 알고 있습니다 : 1 + 2 + 3 +… + 49 = 1225
이제 두 개의 인접하지 않은 더하기 기호를 곱셈 기호로 바꿔야 결과 2015가됩니다.

예 :
1 + 2 + 3 +… + 10 11 + 12 +… + 27 28 + 29 +… + 49 = 2015
는 요구 사항을 충족하는 답입니다.

다른 답을 찾아서 앞쪽에있는 곱셈 기호 왼쪽에있는 숫자를 제출하십시오 (예 : 10 제출).

참고 : 제출해야하는 것은 정수이며 추가 콘텐츠를 입력하지 마십시오.
주제 분석
주제 코드


질문 답변

16

질문 7 : 카드 유형 수

제목 설명
Xiao Ming은 카지노 X에 납치되어 다른 3 명과 카드를 플레이해야했습니다.
카드 한 벌 (크고 작은 트럼프 카드 제외, 총 52 장), 각 카드 13 장씩 4 명에게 균등하게 분배됩니다.
이때 갑자기 샤오밍의 머릿속에 질문이 떠올랐다.
만약 당신이 수트 만 고려하지 않고, 당신이 얻는 카드의 순서를 고려하지 않는다면, 당신은 몇 가지 종류의 초기 카드 조합을 손에 넣을 수 있습니까?

전체 숫자를 입력하고 추가 내용이나 설명 텍스트를 입력하지 마십시오.
주제 분석
주제 코드


질문 답변

3598180

질문 8 : 이동 거리

제목
은 Planet X의 주거 커뮤니티에있는 건물이 모두 동일하고 매트릭스 패턴으로 배열되어 있음을 설명합니다. 건물의 수는 1, 2, 3 ...
한 줄이 가득 차면 다음 줄의 인접한 건물과 반대 방향으로 번호가 배열됩니다.
예 : 셀 번호 매기기 너비가 6 인 경우 시작 상황은 다음과 같습니다.

1 2 3 4 5 6
12 11 1098 7
1314 15…

우리의 문제는 : 두 개의 건물 번호 m과 n을 알면 그들 사이의 최단 이동 거리를 찾아야합니다 (대각선으로 이동할 수 없음)

입력은 공백으로 구분 된 3 개의 정수 wmn이며 1에서 10000까지의 범위에있는 모든
것은 행 번호의 너비이고 m, n은 계산할 건물 번호입니다.
두 건물 사이의 최단 이동 거리를 나타내는 정수를 출력해야합니다.

예 :
사용자 입력 :
6 8 2
그러면 프로그램은 다음을 출력해야합니다.
4

다른 예 :
사용자 입력 :
4 7 20
, 프로그램은 다음을 출력해야합니다.
5

리소스 계약 :
최대 메모리 소비 (가상 머신 포함) <256M
CPU 소비 <1000ms

요구 사항에 따라 엄격하게 출력하고 "Please input ..."과 같은 추가 내용을 불필요하게 인쇄하지 마십시오.

모든 코드는 동일한 소스 파일에 저장되며 디버깅이 통과 된 후 소스 코드를 복사하여 제출합니다.
참고 : package 문을 사용하지 마십시오. jdk1.7 이상의 기능을 사용하지 마십시오.
참고 : 기본 클래스의 이름은 Main이어야합니다. 그렇지 않으면 잘못된 코드로 처리됩니다.
주제 분석
주제 코드


질문 답변

在这里插入代码片

질문 9 : 기본 주사위

제목 설명
도박 ATM은 말년에 주사위에 집착했습니다. 즉, 주사위를 구부러지지 않고 정사각형 원통을 형성하기 위해 다른 위에 놓는 것입니다.
장기간의 관찰 끝에 ATM은 안정적인 주사위의 수수께끼를 발견했습니다. 일부 숫자의 얼굴은 서로를 밀어 낼 것입니다!
먼저 주사위를 표준화 해 보겠습니다. 1의 반대는 4, 2의 반대는 5, 3의 반대는 6입니다.
m 개의 상호 배제 그룹이 있다고 가정하면 각 그룹의 두 숫자의 얼굴이 서로 가깝고 주사위가 안정적으로 일 어설 수 없습니다. Atm은 주사위를 만드는 데 가능한 여러 가지 방법을 계산하려고합니다.
주사위를 만드는 두 가지 방법은 두 가지 방법에서 해당 높이의 주사위 숫자의 방향이 동일한 경우에만 동일합니다.
너무 많은 솔루션이있을 수 있으므로 10 ^ 9 + 7 모듈로 결과를 출력하십시오.

ATM의 주사위 수를 과소 평가하지 마세요 ~

"입력 형식"
첫 번째 줄에있는 두 정수 nm
n은 주사위의 수를 나타냅니다.
다음 m 줄에는 각 줄에 두 개의 정수 ab가있어 a와 b가 서로 가까울 수 없음을 나타냅니다.

"출력 형식"은
한 줄에 숫자가 있으며 이는 10 ^ 9 + 7 모듈로 답을 의미합니다.

"샘플 입력"
2 1
1 2

"샘플 출력"
544

"데이터 범위"
30 % 데이터의 경우 : n <= 5
60 % 데이터의 경우 : n <= 100
100 % 데이터의 경우 : 0 <n <= 10 ^ 9, m <= 36

리소스 계약 :
최대 메모리 소비 (가상 머신 포함) <256M
CPU 소비 <2000ms

요구 사항에 따라 엄격하게 출력하고 "Please input ..."과 같은 추가 내용을 불필요하게 인쇄하지 마십시오.

모든 코드는 동일한 소스 파일에 저장되며 디버깅이 통과 된 후 소스 코드를 복사하여 제출합니다.
참고 : package 문을 사용하지 마십시오. jdk1.7 이상의 기능을 사용하지 마십시오.
참고 : 기본 클래스의 이름은 Main이어야합니다. 그렇지 않으면 잘못된 코드로 처리됩니다.
주제 분석
주제 코드



질문 10 : 재해 후 재건

제목은
Pear City에 N (<= 50000) 주거 지역이 있고 주거 지역 사이에 M (<= 200000) 양방향 도로가 연결되어 있음을 설명합니다. 이 두 정착지는 양방향 도로를 통해 도달 할 수 있습니다. 이 상황은 최근까지도 계속되었으며, 심각한 지진으로 M 도로가 모두 파괴되었습니다.
지진 후 Pear는 이러한 도로 중 일부를 수리 할 계획이며 i 번째 도로를 수리하려면 Pi의 시간이 걸립니다. 그러나 Pear는 모든 점을 연결하려는 것이 아니라 특별히 레이블이 지정된 일부 점을 선택하여 연결합니다.
Pear는 Q (<= 50000) 쿼리를 가지고 있습니다. 그가 요청할 때마다 숫자가 [l, r] 사이이고 숫자가 mod K = C 인 모든 점을 선택하고 일부 경로를 복구하여 연결되도록합니다. 모든 도로 수리가 동시에 시작될 수 있기 때문에 수리 완료 시간은 가장 오랜 시간이 걸리는 도로, 즉 관련 도로 중 Pi의 최대 값에 따라 다릅니다.

Pear가 각 문의에 필요한 최소 시간을 계산하도록 도와 줄 수 있습니까? 여기서 조회는 독립적입니다. 즉, 이전 조회의 수리 계획이 실행되지 않았습니다.

[입력 형식]
첫 번째 줄에있는 세 개의 양의 정수 N, M, Q는 제목에 설명 된 의미를 갖습니다.
다음 M 라인에서 각 라인에는 Xi와 Yi를 연결하는 양방향 도로를 나타내는 세 개의 양의 정수 Xi, Yi, Pi가 있으며 Pi를 수리하는 데 시간이 걸립니다. 자체 루프가있을 수 있고 가장자리가 무거울 수 있습니다. 1 <= Pi <= 1000000.

다음 줄 Q에는 각 줄에 4 개의 양의 정수 Li, Ri, Ki, Ci가 있습니다. 이는 이번에 문제의 지점이 숫자 Mod Ki = Ci 인 구간 [Li, Ri]의 모든 지점임을 나타냅니다. 문의와 관련된 점이 두 개 이상 있는지 확인하십시오.

[출력 형식]
출력 Q 라인, 각 라인 양의 정수는 해당 문의에 대한 답변을 나타냅니다.

[샘플 입력]
7 10 4
1 3 10
2 6 9
4 1 5
3 7 4
3 6 9
1 5 8
2 7 4
3 2
1017 6
7 6 9
1 7
1 7 3 1
2 5 10
3 7 2 1

[샘플 출력]
9
6
8
8

[데이터 범위]
20 % 데이터의 경우 N, M, Q <= 30
40 % 데이터의 경우 N, M, Q <= 2000
100 % 데이터의 경우 N <= 50000, M <= 2 * 10 ^ 5, Q <= 50000. Pi <= 10 ^ 6. Li, Ri, Ki는 모두 [1, N] 범위에 있고 Ci는 [0, Ki에 해당함) 범위에 있습니다.

리소스 계약 :
최대 메모리 소비 (가상 머신 포함) <256M
CPU 소비 <5000ms

요구 사항에 따라 엄격하게 출력하고 "Please input ..."과 같은 추가 내용을 불필요하게 인쇄하지 마십시오.

모든 코드는 동일한 소스 파일에 저장되며 디버깅이 통과 된 후 소스 코드를 복사하여 제출합니다.
참고 : package 문을 사용하지 마십시오. jdk1.7 이상의 기능을 사용하지 마십시오.
참고 : 기본 클래스의 이름은 Main이어야합니다. 그렇지 않으면 잘못된 코드로 처리됩니다.
주제 분석
주제 코드



추천

출처blog.csdn.net/kiwi_berrys/article/details/112294795