Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Нужно оптимизировать - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить количество членов последовательности, являющихся квадратами четных чисел http://www.cyberforum.ru/cpp-beginners/thread694498.html
напишите пожалуйста код на C ++ для задачи "даны натуральные числа n, a1...an, определить количество членов ak последовательности a1 ... an, являющихся квадратами четных чисел"
C++ Не работают операторы сравнения в switch Вот блин че то он ругаеться на знаки сравнения в case. Походу тут они не поддерживаються? Или как мне это реализовать.. таковы условия #include <iostream> using namespace std; int main() { ... http://www.cyberforum.ru/cpp-beginners/thread694496.html
Связной список в Си++ C++
Помогите организовать связной список. Здание:Организовать связной список, хранящий фамилии по алфовиту и оклады 10-ти сотрудников отдела. Оклад - вещественное число с двумя знаками после запятой из...
C++ Вычисление полинома n порядка и составление матрицы.?
Задача 1 Составить программу для вычисления значения полинома n-го порядка (n<30 и вводится с клавиатуры) y=a1xn+a2xn-1+...+anx+an+1, если массив A задан как константа, а значение аргумента x...
C++ Вычислить вектор D, компоненты которого равны сумме столбцов матрицы M http://www.cyberforum.ru/cpp-beginners/thread694478.html
Здравствуйте))) Помогите решить пожалуйста такую проблему. Есть программа, условие которой звучит так - "Дана матрица M (4*6). Вычислить вектор D, компоненты которого равны сумме столбцов матрицы M"....
C++ Разработать функцию, которая меняет слова, содержащие заданную комбинацию символов, на соответствующее количество символов # Разработать функцию, которая меняет в предложении все слова, содержащие заданную комбинацию символов на соответствующее количество символов #. Используя разработанную функцию, "спрятать" в заданном... подробнее

Показать сообщение отдельно
Basisd
2 / 2 / 0
Регистрация: 09.12.2010
Сообщений: 39

Нужно оптимизировать - C++

11.11.2012, 13:24. Просмотров 2356. Ответов 16
Метки (Все метки)

Есть задание, есть готовый код. Но он не проходит скоростной режим, нужно оптимизировать, помогите плз)

Требуется найти количество строк заданной длины n, состоящих из латинских строчных букв, не содержащих s в качестве подстроки. Поскольку количество подстрок может быть велико, выведите ответ по модулю 1000000007.

Входные данные:

Первая строка содержит число n(1 ≤ n ≤ 1000) - длину требуемых строк. Следующая строка содержит s которая также состоит только из строчных латинских букв, длина этой запрещенной строки m(1 ≤ m ≤ n).

Выходные данные:

Единственное число - количество возможных строк по модулю 1000000007.

Входные данные
1
a
Выходные данные
25
Входные данные
3
aa
Выходные данные
17525
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <string.h>
using namespace std;
unsigned long int kol=0;;
int n,m;
char *a,*s;
int Perebor(int k)
{
char c;
if(k==n)
{  if (!strstr(a,s)) kol++;
  return 0;
}
 
for(c='a';c<='z';c++)
{
  a[k]=c;
  a[k+1]='\0';
  if(!strstr(a,s)) Perebor(k+1);
}
return 1;
}
int main()
{
  cin>>n;
  a=new char[n+1];
  s=new char[n+1];
  cin>>s;
  m=strlen(s);
  a[n]='\0';
  Perebor(0);
  kol=kol%1000000007;
  cout<<kol<<endl;
  return 0;
}
При последнем тесте время выходит за границу 2-х секунд.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru