2014-02-12 3 views
-6

Я сделал программу, которая занимает 1,01 секунды, а ограничение времени составляет 1 секунду. Поэтому мне нужен способ увеличить скорость ввода или вывода.Получить ввод быстрее в C++

Мне нужно взять два слова: {(не пробел) может быть верхним. lower, numbers} как вход, что является самым быстрым способом сделать это. Я не буду размещать свой код здесь, так как это постоянный конкурс, и я хочу объяснять немного простым способом.

Это код, мне нужен лучший способ ввода этих двух слов. любые другие предложения приветствуются.

#include <iostream> 
#include <cstring> 
using namespace std; 

int main() 
{ 
    std::string a, b; 
    int number_cases=0,i,j,count=0; 
    cin>>number_cases; 
    while(number_cases!=0) 
    { 
     cin>>a; 
     cin>>b; 
     for(i=0;i<a.size();i++) { 
      for(j=0;j<b.size();j++) { 
       if(a[i]==b[j]) { 
        count++; 
        b[j]='#'; 
        break; 
       } 
      } 
     } 
     cout<<count<<endl; 
     count=0; 
     --number_cases; 
    } 
} 
+2

Недостаточно информации, чтобы что-то диагностировать .. извините. «Включите оптимизацию, сделайте это в многоядерном режиме». Это слишком широкие предложения. –

+2

Вам нужно значительно расширить это описание того, что вы делаете сейчас, так как оно соответствует его неопровержимому –

+2

Это слишком расплывчато для любого, чтобы дать полезный ответ. Без кода выявление проблем с производительностью невозможно. Голосование закрывается. – TypeIA

ответ

0

Если вам нужно только минимальное ускорение, замена входных STL/вывода функции C++ с более старыми функциями C будет делать трюк.

cout<<count<<endl; 

может быть

printf("%i\n",count); 

C++ операторы потока противоречивы, но в целом они являются более устойчивыми, а вход С/вывода операции быстрее.

0

Ваш вход не является тем, что занимает время.

Ваши сравнения персонажей - это вложенные петли! Это сложность O (n.m) и будет очень плохо работать для больших строк. Рассмотрим две строки из 1024 символов.

Если вы описали проблему, мы можем дать вам подсказки, но это ваш конкурс.

Достаточно сказать, что вход скорее всего не ваше беспокойство.

Смежные вопросы