IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> реализуемо ли
.helga
сообщение 1.01.2007 22:55
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Женский

Репутация: -  1  +


Реализуемо ли это в Делфи??


1 Провести минимальное количество прямых через столбцы и строки матрицы таким образом, чтобы они проходили через все нули, содержащиеся в таблице
2 Найти наименьший из элементов, через которые не проходит ни одна прямая
3 Вычесть его из всех элементов, через которые не проходят прямые
4 Прибавить его ко всем элементам, лежащим на пересечении прямых
5 Элементы, через которые проходит только одна прямая, оставить неизменными


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
.helga
сообщение 2.01.2007 6:51
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Женский

Репутация: -  1  +


на недо-паскале:


program z;
uses crt;
var
mart: array [1..100, 1.. 100] of integer;
i,ii,m:integer;

procedure lines;
var
max_a, max_b, counter: integer;

begin

for i:=1 to m do
for ii:=1 to m do
if matr[i,ii]=0 then
inc(counter);
if counter=0 then break
else

max_b:=0;
counter:=0;

{максимальное кол-во нулей по строкам}
for i:=1 to m do
begin
for ii:=1 to m do
if matr[i,ii]=0 then
inc(counter);
if counter>max_b then
begin
max_b:=counter;
b:=ii; {запоминаем строку}
counter:=0;
end;
end;

max_a:=0;
{максимальное кол-во нулей по столбцам}
for ii:=1 to m do
begin
for i:=1 to m do
if matr[i,ii]=0 then
inc(counter);
if counter>max_a then
begin
max_a:=counter;
a:=i; {запоминаем столбец}
counter:=0;
end;
end;

{
если максимально кол-во нулей по строкам больше максимального
кол-ва нулей по столбцам, "вычеркиваем" строку и наоборот
}
if max_a<max_b then
begin
for i:=1 to m do
if matr[i,b]=0 then matr[i,b]:=matr[i,b]*100;
end
else
begin
for ii:=1 to m do
if matr[a,ii]=0 then matr[a,ii]:=matr[a,ii]*100;
end;

lines;
end;


procedure steps;
var
min: integer;

begin
{поиск минимального элемента}
min:=100;
for i:=1 to m do
for ii:=1 to m do
if matr[i,ii]<min then
min:=matr[i,ii];

{вычитаем минимальный элемент из незачеркнутых элементов матрицы}
for i:=1 to m do
for ii:=1 to m do
if a[i,ii]<100 then a[i,ii]:=a[i,ii]-min;

{прибавляем минимальный элемент к элементам, находящимся на пересечении прямых}
for i:=1 to m do
for ii:=1 to m do
if a[i,ii]>=10000 then a[i,ii]:=a[i,ii]/10000+min

{возвращаем "зачеркнутым" посредством умножения на 100 элементам их исходное значение}
for i:=1 to m do
for ii:=1 to m do
if a[i,ii]>=100 then a[i,ii]:=a[i,ii]/100.
end;

begin
lines;
steps;
end.



чувствую, что здесь косяков ой как много.. особенно с тем, что я пыталась оформить рекурсией..

да, я не писала вводы-выводы матрицы, но это ведь не суть.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
.helga   реализуемо ли   1.01.2007 22:55
мисс_граффити   Реализуемо. Скажи, у тебя есть идеи, каким алгорит...   1.01.2007 23:35
.helga   эмм.. нужно вычеркивать сначала те столбцы или стр...   2.01.2007 0:05
мисс_граффити   в принципе, думала примерно так же. единственное у...   2.01.2007 0:44
.helga   о, пришла бредовая мысля! :) а что, если ...   2.01.2007 1:07
Bokul   Вот мое решение: Пойдём от обратного: какое макси...   2.01.2007 4:21
.helga   а если безнулевых строк/столбцов не окажется? 1 ...   2.01.2007 4:39
Bokul   Ты не поняла шутки с random-ом - если безнулевых с...   2.01.2007 4:47
.helga   ну да. если в моем примере проводить только горизо...   2.01.2007 4:50
Bokul   .helga, почему ты так хочешь усложнить все? Хва...   2.01.2007 5:02
.helga   не хватит! потому что при некоторых примерах о...   2.01.2007 5:18
Bokul   Что требуется? Найти минимальное количество зач...   2.01.2007 5:27
.helga   Но зачеркивать-то с умом нужно) Чтобы остались эле...   2.01.2007 5:33
Bokul   :wacko: .helga, покажи как ты с умом зачеркнёшь вс...   2.01.2007 5:35
.helga   насчет тех примеров: зачеркну. сначала вычеркиваем...   2.01.2007 5:42
Bokul   Нет мой алгоритм и для такого не годится: 1111 110...   2.01.2007 6:05
.helga   хм. тогда кроме вычеркивания строк/столбцов с макс...   2.01.2007 6:16
Bokul   А полный код можешь привести?   2.01.2007 6:18
.helga   отредактировала чуток предыдущее. спать все-таки и...   2.01.2007 6:22
Bokul   Тот который будет компилироваться..   2.01.2007 6:28
.helga   на недо-паскале: program z; uses crt; var mart: ...   2.01.2007 6:51
Bokul   Конечно у тебя рекурсия вечная (до переполнения ст...   2.01.2007 6:56
.helga   а вот этот кусок for i:=1 to m do for ii:=1 to m...   2.01.2007 6:59
Bokul   Ты тестила свой код? Правильные результаты дает? ...   2.01.2007 7:56
volvo   2 Bokul: Copy+Paste - не наш метод... Убираем 2 фу...   2.01.2007 10:20
мисс_граффити   А как ты отличаешь элементы, расположенные на пер...   2.01.2007 12:37
Bokul   :yes2: :no1: Я сам сначала хотел сделать и...   2.01.2007 18:15
мисс_граффити   Везет тебе.... :) А вот автору темы нужно: А к...   2.01.2007 19:02
Bokul   Попробуй сделать - поймешь. :) [/quote] Мож...   2.01.2007 19:10
мисс_граффити   Попробовала. Сделала. Не поняла :( Файлик прицепл...   2.01.2007 23:00
Bokul   И не всегда правильно.. :( Ну сохраним. Вмес...   2.01.2007 23:12
мисс_граффити   А зачем нам их хранить? Надо подумать, как пост...   2.01.2007 23:27
Bokul   Ты права. Просто люблю все делать поэтапно.. ...   2.01.2007 23:38
мисс_граффити   ой... в смысле, вот так: n=5; ar:array[1..n,1...   2.01.2007 23:40
Bokul   :blink: Да. Проблема в том что в случае ког...   2.01.2007 23:47
мисс_граффити   я вот про этот вариант: n=5; ar:array[1..n,1....   2.01.2007 23:57
.helga   2 мисс_граффити основы алгоритмизации и программир...   3.01.2007 0:07
Bokul   :yes2: Положится на судьбу и воспользоватьс...   3.01.2007 0:23
мисс_граффити   к сожалению, внесенные изменения не в полной мере ...   3.01.2007 0:35
Bokul   :mega_chok: const n=5; ar:array[1..n,1...   3.01.2007 0:37
мисс_граффити   Идея такая: если безнулевых столбцов/строк больше,...   3.01.2007 0:44
Bokul   :no1: Я допустил ошибку: ...   3.01.2007 1:01
мисс_граффити   :) вроде как непринципиально... Я про немножко др...   3.01.2007 1:14
Bokul   :no1: 0 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 ...   3.01.2007 1:21
Bokul   Переделать старый алгоритм("то есть ищем, где...   3.01.2007 1:40
Bokul   Блин, написал код и для этого алгоритма, но он тож...   3.01.2007 8:43
мисс_граффити   почему? чем этот пример такой особенный??? покажеш...   3.01.2007 15:13
Bokul   uses crt; const n=5; ar:array[1..n,1..n...   3.01.2007 20:43
мисс_граффити   рассматиривать отдельно?... поскольку "развил...   3.01.2007 23:22
.helga   уже нет, мне изменили постановку задачи, теперь не...   3.01.2007 23:50
Malice   Проще всего сделать перебором, вот так, например: ...   4.01.2007 10:19
Bokul   Malice, можешь сделать небольшое пояснение алгорит...   4.01.2007 11:01
Malice   Malice, можешь сделать небольшое пояснение алгори...   4.01.2007 12:06


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 8.07.2025 11:35
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"