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

нужна оптимизация приложения - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Реализовать подпрограммы посредством: А) процедур; Б) функции. http://www.cyberforum.ru/cpp-beginners/thread540587.html
По заданным вещественным числам a_0,a_1,… ,a_30,b_0 ,b_1,… b_30,c_0,c_1,…,c_30,x,y,z. вычислить величину ((a_0 x^30+a_1 x^29+⋯+a_30 )^2-(b_0 y^30+b_1 y^29+⋯+b_30 ))/(c_0 (x+z)^30+c_1 (x+z)^29+⋯+c_30 ) Реализовать подпрограммы посредством: А) процедур; Б) функции.
C++ Дан файл f:file of real. Найти наибольшее из значений компонент. Дан файл f:file of real. Найти наибольшее из значений компонент. http://www.cyberforum.ru/cpp-beginners/thread540586.html
Сортировка(2) C++
Во входном файле содержится информация об каждом из n студентов некоторого вуза, разделённого пробелами: 〈фамилия〉 〈имя〉 〈отчество〉 〈пол〉 〈возраст〉〈курс〉, причем в фамилии – не более 12 букв, пол указывается буквами М и Ж, возраст – целое от 16 до 35, курс – целое от 1 до 5. Ввести эту информацию и напечатать номер курса, на котором наибольший процент мужчин.
C++ Сортировка
Даны действительные числа a_1,…,a_n. Получить попарно различные целые j_1,…,j_n, такие, что 1≤k_j≤n,k=1,…,n, и a_j1≥a_j2≥⋯≥a_jn. Воспользоваться методом: А)Сортировки прямым выбором; Б) «шейкерной» сортировки.
C++ Дано: a:array[1…n] of real;p:real;k:integer;(a[1]<=a[2]<=⋯<=a[n],0<k≤n). http://www.cyberforum.ru/cpp-beginners/thread540581.html
Дано: a:array of real;p:real;k:integer;(a<=a<=⋯<=a,0<k≤n). Удалить из a элемент с номером k (т.е. a) и вставить элемент, равный p, так, чтобы не нарушилась упорядоченность.
C++ Простой класс на основе заданной структуры данных с++ Помогите пожалуйста... Необходимо разработать программу, реализующую простой класс на основе заданной структуры данных. подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
08.04.2012, 18:22     нужна оптимизация приложения
вот так проходит все тесты:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <stdio.h> 
double mas[100000][20];
int N, K;
bool zn[20], null[20];
 
bool func(int a, int b)
{
    if(null[a] && null[b])
        return false;
    if(null[a] && zn[b])
        return false;
    if(zn[a] && null[b])
        return true;
    if(zn[a] && !zn[b])
        return true;
    if(!zn[a] && zn[b])
        return false;
    int l=0, r=0, k;
    double tmp=1.;
    while(true)
    {
        while(r<K && tmp<=1.)
        {
            tmp*=mas[r++][b];
            k=0;
        }
        while(l<K && tmp>=1.)
        {
            tmp/=mas[l++][a];
            k=0;
        }
        if(k==0)
            k++;
        else
        {
            if(zn[b] && tmp<1.)
                return true;
            if(!zn[b] && tmp>1.)
                return true;
            return false;
        }       
    }
}
 
int main() 
{
    scanf("%d%d",&N, &K);
    int i, j, res;
    for(i=0; i<K; i++)
        for(j=0; j<N; j++)
        {
            scanf("%lf", &mas[i][j]);
            if(mas[i][j]<0)
            {
                mas[i][j]*=-1.;
                zn[j]=!zn[j];
            }
            else
                if(mas[i][j]==.0)
                    null[j]=true;
        }
    res=N-1;
    for(i=N-2; i>=0; i--)
        if(func(res, i))
            res=i;
    printf("%d\n", res+1);
    return 0; 
}
 
Текущее время: 20:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru