Diretório de artigos
Pergunta A
Pergunta A: Conversão de nove para decimal
A pontuação total para esta pergunta: 5 pontos
[Descrição do problema]
Nove inteiro positivo ( 2022 ) 9 (2022)_9( 2 0 2 2 )9Converter para decimal igual a quê?
Análise:
( 2022 ) 9 = 2 ∗ 9 3 + 2 ∗ 9 1 + 2 ∗ 9 0 = 1478 (2022)_9=2*9^3+2*9^1+2*9^0=1478( 2 0 2 2 )9=2∗93+2∗91+2∗90=1 4 7 8
Resposta:
1478
Pergunta B
Pergunta B: Data de Shunzi
Pontuação total desta pergunta: 5 pontos
[Descrição do problema]
Xiao Ming gosta muito de Shunzi. Uma sequência refere-se a três números consecutivos: 123, 456, etc. Uma data direta refere-se a uma data em que qualquer número consecutivo de três dígitos é uma sequência na notação yyyymmdd de uma data. Por exemplo, 20220123 é uma data direta, porque parece uma data direta: 123; enquanto 20221023 não é uma data direta, não tem uma data direta. Xiao Ming quer saber quantas datas Shunzi existem em todo o ano de 2022.
Análise:
Esta questão testa a capacidade de raciocínio. Como o ano já está determinado, resta apenas julgar se o 2022mmdd contém uma sequência.
- Existem 12 valores para mm, ou seja, 01~12. Apenas 01, 11 e 12 são elegíveis, e não são possíveis retas em outros meses.
- Para 2022-01-dd, apenas 2022-01-23 é elegível
- Para 2022-11-dd, apenas 2022-11-23 é elegível
- Para 2022-12-dd, apenas 2022-12-30 e 2022-12-31 são elegíveis
Resposta:
Então a resposta é: 4
Pergunta C
Pergunta C: Estatísticas
Limite de tempo: 1.0s Limite de memória: 256.0MB Pontuação total para esta pergunta: 10 pontos
[Descrição do problema]
Xiao Ming decidiu começar a trabalhar duro para se preparar para a competição da Taça Ponte Azul a partir da próxima segunda-feira. Ele planeja resolver o problema a todos os dias de segunda a sexta-feira e o problema b todos os dias no sábado e no domingo. Por favor, ajude Xiao Ming a calcular, de acordo com o plano, em que dia ele atingirá o número de questões maior ou igual a n?
【Formato de entrada】A
linha de entrada contém três inteiros a, be n.
Análise: Esta questão é uma subquestão, que pode ser resolvida usando um loop while.
Responda:
#include<iostream>
using namespace std;
int main() {
int a = 0, b = 0, n = 0;
cin >> a >> b >> n;
int day = 0;
while (n > 0) {
day++;
if (day % 7 == 0 || day % 7 == 6) //周六、周天
n -= b;
else
n -= a;
}
cout << day << endl;
return 0;
}
Pergunta D
Pergunta D: Poda de arbustos
Limite de tempo: 1,0 s Limite de memória: 256,0 MB Pontuação total para esta pergunta: 10 pontos
[Descrição do problema]
Alice deseja concluir uma tarefa de poda de arbustos.
Há N arbustos bem alinhados da esquerda para a direita. Alice poda um arbusto todas as noites para que a altura do arbusto se torne 0 cm. A ordem de poda de arbustos de Alice é começar com o arbusto mais à esquerda e podar um arbusto à direita a cada dia. Quando o arbusto mais à direita for aparado, ela se virará e começará a aparar o arbusto à esquerda no dia seguinte. Gire a direção novamente até que o arbusto mais à esquerda tenha sido aparado. E assim por diante.
O arbusto crescerá 1 cm de altura de manhã à noite e não no resto do tempo. Na manhã do primeiro dia, a altura de todos os arbustos é de 0 cm. Alice quer saber até que altura cada arbusto pode crescer.
Análise:
Esta questão pode ser deduzida por simulação para obter o comprimento máximo de cada arbusto. Suponha que esses N arbustos sejam: n 1 n_1n1、n 2 n_2n2、…、n N n_NnN。
- com n 1 n_1n1Por exemplo, o tempo mais alto é quando Alice acaba de completar um ciclo (ou seja, da esquerda para a direita e da direita para a extremidade mais à esquerda), neste momento a altura é 2(N-1).
- para n 2 n_2n2, em um processo da esquerda para a direita, n 2 n_2n2do que n 1 n_1n1Corte um dia depois; n 2 n_2 no processo da direita para a esquerdan2do que n 1 n_1n1cortado um dia antes; então n 2 n_2n2do que n 1 n_1n12 cm mais baixo, então n 2 n_2n2A altura máxima é: 2(N-2)
- E assim por diante, quando i<=N/2, ni n_ineuA altura máxima de é: 2(Ni)
- Quando i>N/2 forma uma relação simétrica com i<N/2, que pode ser obtida por simulação direta: 2 ∗ ( i − 1 ) 2 * (i - 1)2∗( eu−1 )
Responda:
#include<iostream>
using namespace std;
int main() {
int N = 0;
cin >> N;
int height = 0;
for (int i = 1; i <= N; i++) {
if (i <= N / 2) {
height = 2 * (N - i);
}
else {
height = 2 * (i - 1);
}
cout << height << endl;
}
return 0;
}
Pergunta E
Pergunta E: Subtração da base X Limite de
tempo: 1,0 s Limite de memória: 256,0 MB Pontuação total para esta pergunta: 15 pontos
[Descrição do problema] O
sistema básico especifica quantos dígitos são adicionados uns aos outros.
A base X é uma base muito mágica, pois a base de cada dígito não é fixa! Por exemplo, digamos um certo número de base X, o dígito mais baixo é binário, o segundo dígito é decimal e o terceiro dígito é octal, então o número de base X 321 é convertido em um número decimal de 65.
Agora existem dois inteiros A e B representados pela base X, mas a base específica de cada dígito ainda é incerta. Sabemos apenas que A e B são a mesma regra de base, e cada dígito é até N base, e o menor é binário. Por favor, calcule o menor resultado possível de AB.
Observe que você precisa garantir que A e B sejam legais na base X, ou seja, o número em cada dígito
Pergunta F
Pergunta F: Contando submatrizes Limite de
tempo: 1,0 s Limite de memória: 256,0 MB Pontuação total para esta pergunta: 15 pontos
[Descrição do problema]
Dada uma matriz N × M A, conte quantas submatrizes (mínimo 1 × 1, máximo NxM) satisfazem que a soma de todos os números na submatriz não excede o inteiro dado K?
[Formato de entrada]
A primeira linha contém três inteiros N, M e K.
As próximas N linhas contêm M inteiros, representando a matriz A.
Analisar:
Pergunta G
Pergunta H
Pergunta I
Pergunta J
Observação: as respostas neste artigo são apenas para referência. Este artigo está sendo atualizado constantemente. É recomendável que você o colete!