Матрица, состоящая из единиц и нулей. Нужно написать программу, которая найдет размер самой большой подматрицы в матрице, состоящей только из единиц. Работа с динамическим массивом. Пример:
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;
}
Все уже решил, вот если кому-то пригодиться
#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<<"Нету";
}
Вам наверно нужны анаграммы
#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.
Так же можно получить ангиограммы ваших нулей и единиц
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Есть Функция и шаблон для добовления комеентарив но она не работает подозреваю что проблемма в action или в том что функция GetComments не обрабатываеться
На старом сайте есть шапка, баннер сделан в формате swf у большинства браузеров Flash отключен, то есть "Нажмите чтобы показать содержимое flash"...
Нужна помощь: В Django при обработке следующего когда viewspy: