Tipo de resposta de um, dois pontos
Dicotomia, geralmente usamos para encontrar algo, mas também podemos usar esse algoritmo simples para concluir, alguma recuperação de resposta, resposta dicotômica é na verdade um método de travessia, você pode entendê-lo como um método de travessia A com uma complexidade de tempo de O ( log 2 n), antes de tudo dissemos que ele também usa um intervalo de dados para percorrer, ou seja, ao usar esse algoritmo, devemos da respostaosaberprimeiro O(nlog 2 n) , ele pode ser executado normalmente, sob condições normais de dados.
Também temos modelos relacionados para respostas binárias. Toda a operação de encontrar o valor correto é realmente semelhante à pesquisa binária. Se você estiver interessado, pode aprender primeiro sobre a pesquisa binária e depois concluir o aprendizado das respostas binárias.
Dois códigos de resposta dicotômicos
A resposta binária é relativamente simples. Dividimos o código da resposta binária em duas partes, uma parte é uma busca de placa especial e a outra parte é uma função de verificação relativamente característica .
1. Função de busca de placa
#include <iostream>
using namespace std ;
int bsearch_1 (int l ,int r )
{
while ( l < r)
{
int mid = ( l + r ) >> 1 ;
if(chech(mid))//检查条件要为成立的时候
r = mid ;
else
l = mid + 1 ;
}
return r ;
}
//前缀二分答案: 完成之后我们再看一下是,后缀的,也就是每次遍历之后都把l确定的代码
int bsearch_2 (int l , int r )
{
while ( l < r )
{
int mid = ( l + r + 1 ) >> 1 ;
if(check (mid )) l = mid ;
else r = mid - 1 ;
}
return l ;
}
int main ()
{
//完成数据的输入输出
//最后导入数据的范围
return 0 ;
}
Entendemos algo na pesquisa do quadro. Quando não temos certeza sobre todo o intervalo na pesquisa, podemos aumentar o intervalo inteiro e, finalmente, podemos obtê-lo. Claro, nossos dados devem ser sequenciais, portanto, podemos usar o ideia de uma resposta binária para resolvê-lo.
2, verifique a função
A função check é uma função de checagem. Esta função é a chave para resolver o problema. Possui forte autonomia e é escrita de acordo com o tópico.