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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Almaz17
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 3
#1

Лимит по времени - C++

15.12.2013, 19:01. Просмотров 240. Ответов 3
Метки нет (Все метки)

Как можно сделать еще быстрее?
Время работы 1.046 сек. Хотелось бы меньше 1.00 секунды

C++ (Qt)
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
#include "stdafx.h"
#include <iostream>
#include <conio.h> 
 
using namespace std;
 
int main()
{
    int n, i, s, k, a[65535];
    cin >> n;
    for(i=0; i<n; i++)
    {
        cin >> a[i];
        for(s=1, k=0; s<a[i]; k++)
        {
            s=s+k;
        }
        s==a[i] ? a[i]=1 : a[i]=0;
    }
    for(i=0; i<n; i++)
    {
        cout << a[i] << ' ';
    }
    _getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2013, 19:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Лимит по времени (C++):

Просрочен лимит времени - C++
Я решал задачу, вот она: Проблема в том, что я когда заносил в массив данные через scanf, то она выполнялась 2,5 секунды, а когда я...

Счастливый билет (Лимит Времени) - C++
Всем привет! Контестер пишет Time Limit. Подскажите что можно сделать чтоб моя программа работала быстрее. Что можно изменить или добавить?...

Лимит - C++
Составить прог-у которая найдет лимит 1 + 1/2^2 + 1/3^2 + ... +1/n^2

Лимит char в msvc - C++
В настройках не ставил /J. Однако почему то компилятор не выдаёт ошибку если пишу: char ftp = -100; char ftp = 250; По дефолту char...

Лимит памяти для решений задач - C++
Чем руководствуются авторы задач, устанавливая лимт памяти для программ-решений? Например, простая задча. Её решение, сохранённое в...

Как увеличить лимит на количество символов в консоли - C++
Использую консоль для вывода информации В определенный момент старая информация затираеться Можно как то увеличить лимит на количество...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
15.12.2013, 19:38 #2
Цитата Сообщение от Almaz17 Посмотреть сообщение
Как можно сделать еще быстрее?
см комментарии:
Цитата Сообщение от Almaz17 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
for(i=0; i<n; i++)
 {
 cin >> a[i];
 for(s=1, k=0; s<a[i]; k++)// вот этот цикл повторяется n раз, а s вычисляется всегда по одному сценарию. Окончание подсчета s зависит только от значения a[i]. Не проще завести еще один массив, там один раз просчитать значение s для значений от 1 до максимального a[i], и тогда смысл этого цикла отпадет. Можно будет сразу из этого массива брать значение s для заданного a[i]
 {
 s=s+k;
 }
 s==a[i] ? a[i]=1 : a[i]=0;
 }

Не по теме:

на будущее: условие задачи не плохо бы писать

Almaz17
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 3
15.12.2013, 21:23  [ТС] #3
Цитата Сообщение от valeriikozlov Посмотреть сообщение
см комментарии:

Не по теме:

на будущее: условие задачи не плохо бы писать

http://acm.timus.ru/problem.aspx?space=1&num=1209 Здесь дана задача.

Нет ли другой альтернативы. А то сделать массив из 2^31 -1 элементов я не умею
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
16.12.2013, 06:36 #4
Создаете массив, хватит размера 65536. В него записываете значения индексов где стоят единицы: 1 2 4 7 11 ...
Затем считав очередное Kj ищете его в этом массиве с помощью двоичного поиска. Нашли, выводите 1, не нашли, выводите 0.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2013, 06:36
Привет! Вот еще темы с ответами:

Проверка на правильность времени, и показ времени - C++
Подскажите, что нужно возвращать в функцию bool is_correct(TIME t); и как эту функцию коректности времени всунуть в функцию void...

File_get_contents лимит времени на выполнение - PHP
Подскажите пожалуйста, допустим я хочу прочитать содержимое удаленного файла при помощи file_get_contents, но если файл недоступен то...

В час ночи появляется окошечко. Лимит времени 15 минут. Потом комп отключается. - Удаление вирусов
С недавних пор появляется окошечко написано лимит времени 15 минут. По прошествии 15 минут комп выключается. Как это убрать?

Расчет времени пуска,установившегося времени,времени торможения и паузу для лифта - Механика
t0=(3600/h)*(1-E) - пауза.ЕЕ можно взять произвольно(самим). А остальное надо высчитывать. tуст=(3600/h)*E-tп-tт Для построения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.12.2013, 06:36
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru