Матрица из нолей и единиц

67
07 марта 2021, 04:30

Матрица, состоящая из единиц и нулей. Нужно написать программу, которая найдет размер самой большой подматрицы в матрице, состоящей только из единиц. Работа с динамическим массивом. Пример:

1 0 0
1 1 1
0 1 1

Дает результат 2 (размер матрицы из единиц) P.S. Нужно квадратную матрицу, код написан на cpp.sh

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int min(int x, int y);
int main()
{
    srand(time(0));
    int n;
    cin >>n;
    int **x = new int*[n];
    for(int i=0; i<n; i++)
    {
        *(x+i) = new int[n];
    }
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        {
        *(*(x+i)+j)=rand()%2;
        }
    }
    int x_currentmax; //для подсчета самой минимальной ширины
    int max; //самая большая подматрица в матрице
    int i_position=0, j_position=0; //для подсчета вперед вниз
    int i_count=0, j_count=0; //для подсчета размера
    int minmax;
    for(int i=0; i<n; i++)
    {
        i_position = i;
        for(int j=0; j<n; j++)
        {
            x_currentmax =0;
            y_currentmax = 0;
            j_position = j;
            if(*(*(x+i)+j) == 1)
            {
                while(*(*(x+i_position)+j_position) == 1)
                {
                    while(*(*(x+i_position)+j_position+1) == 1 && j_position+1 <n)
                    {
                        j_position++;
                        j_count++;
                    }
                    if(j_count > x_currentmax)
                        x_currentmax = j_count;
                    else if(j_count < x_currentmax)
                        x_currentmax = j_count;
                    while(*(*(x+i_position+1)+j_position) == 1 && i_position+1 <n)
                    {
                        i_position++;
                        i_count++;
                    }
                    minmax=min(x_currentmax,i_count);
                }
                if(minmax>max)
                    max=minmax;
            }
        }
    }
    for(int i=0; i<n; i++)
    {
    for(int j=0; j<n; j++)
    {
    cout << *(*(x+i)+j) << '\t';
    }
    cout << endl;
    }
    cout << max;
}
int min(int x, int y)
{
    if(x>y)
        return y;
    else
        return x;
}
Answer 1

Все уже решил, вот если кому-то пригодиться

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
    srand(time(0));
    int n,i,j,z=0;
    bool g;
    cin >>n;
    int **x = new int*[n];
    for(i=0; i<n; i++)
    {
        *(x+i) = new int[n];
    }
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        {
        *(*(x+i)+j)=rand()%2;
        }
    }
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
            cout<<*(*(x+i)+j)<<'\t';
        cout<<endl;
    }
    for(i=2; i<=n; i++) //предпалагаемый размер подматрицы
    {
        for(j=0; j<=n-i; j++)  //строки
        {
            for(int k=0; k<=n-i; k++) //столбцы
            {
                for(int h=j;h<j+i;h++)  //строки
                    for(int p=k;p<k+i;p++)  //столбцы
                        if(x[h][p]!=1)
                            g=false;
                if(g==true)  
                    z=i;
                g=true;
            }
        }
    }
    if(z!=0)
        cout<<z<<endl;
    else cout<<"Нету";
}
Answer 2

Вам наверно нужны анаграммы

#include <map>
string s;
map <char, int> m;
cin >> s;
int l = s.size(), count = 1;
long long fact[15];
fact[1] = 1;
for (int i = 2; i <= l; i++) //заполняем массив факториалов
fact[i] = fact[i - 1] * i;
for (int i = 0; i < l; i++) //подчитываем повторения
    ++m[s[i]];
for (auto it = m.begin(); it != m.end(); it++)
if (it->second > 1) count *= fact[it->second];
cout << fact[l] / count << "\n" << endl;

Анаграммой слова называется любая перестановка всех букв слова.Например, из слова SOLO можно получить 12 анаграмм: SOLO, LOSO, OSLO, OLSO, OSOL, OLOS, SLOO, LSOO, OOLS, OOSL, LOOS, SOOL.

Так же можно получить ангиограммы ваших нулей и единиц

READ ALSO
Что мне нужно вписать в форме action=&ldquo;&rdquo;

Что мне нужно вписать в форме action=“”

Есть Функция и шаблон для добовления комеентарив но она не работает подозреваю что проблемма в action или в том что функция GetComments не обрабатываеться

100
Чем заменить *swf

Чем заменить *swf

На старом сайте есть шапка, баннер сделан в формате swf у большинства браузеров Flash отключен, то есть "Нажмите чтобы показать содержимое flash"...

148
Не передаются параметры в метод POST

Не передаются параметры в метод POST

Нужна помощь: В Django при обработке следующего когда viewspy:

121