Cliquez sur le lien résumé complet de solution PAT B -AC
Titre:
astronome britannique Eddington aimait le vélo. Il est dit de montrer son habileté à conduire, aussi définit un « numéro Eddington » E, E jour est remplie avec un cavalier sur un maximum entier miles E E. Eddington a dit à son E est égal à 87.
N de la distance de vélo de jour maintenant donné, votre numéro Eddington correspondant au E (≤ N) calculé.
Format d'entrée:
entrée de la première rangée est donnée à un nombre entier positif N (≦ 10 5. ), à savoir le nombre de jours de cycle continu; deuxième rangée donne la N non négatif entier représentant la distance de cyclage par jour.
Format de sortie:
donné nombre Eddington N de jours d'affilée.
entrée de l'échantillon:
10
6 7 6 9 3 10 8 2 7 8
Exemple de sortie:
6
Mon code:
#include<iostream>
#include<cstdio>
#include<vector>
#include<string>
#include<set>
#include<map>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<cstring>
#include<sstream>
using namespace std;
//有的时候题目是一起做的,所以会有不需要的头文件
int main()
{
int N;
cin>>N;
int num[N+1]={0};
int num_all_plus=0;
for(int i=0;i<N;i++)
{
int t;
cin>>t;
if(t>N)
{//如果数字太大就不循环加1了
num_all_plus++;
continue;
}
for(int j=1;j<t;j++)
{
num[j]++;
}
}
while(N>0)
{
if(num[N]+num_all_plus>=N)
{
cout<<N;
break;
}
N--;
}
if(N==0)cout<<"0";
return 0;
}
Lire beaucoup de réponses est le plus grand ordre décroissant trouve dans le nombre de sortie, le sentiment est pas très intuitive
Mes pensées:
Avec un tableau d'enregistrements, je dépasse le nombre de jours de kilomètres, le nombre d'entrée km t, et plus de 1
~ t-1
plusieurs jours 1 km
Remarque: lorsque plus de N, le jour compterait, que tous les jours sont +1
Mais traversal directe +1 si délai d'attente, utilisez un nombre variable de jours a enregistré plus de N combien, quand, après comparaison E peut être couplé directement avec
Note également: Si seulement un jour, entrez 1, il n'y a pas un jour est plus d'un kilomètre, donc la réponse est 0