Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Олимпиады

Страница: 1 |

 

  Вопрос: Победителям олимпиад! Добавлено: 22.12.03 17:12  

Автор вопроса:  DaSharm | Web-сайт: dasharm.com | ICQ: 780477 

Я живу в Украине, в городе Тернополь.Недавно у нас проводилась городская олимпиада по программированию. Результаты пока не известны, но я уверен, что первое место не мое. Вся проблема в последнем задании (Ну не понимаю я его и все!). Может вы сделаете его.

Привожу без изменений:

---------------Задание 4.Химия (45 баллов)---------

Дано N веществ и таблица их взаимодействий, т. е., a[i,j]=0, если i вещество не

взаимодействует с j веществом и a[i,j]=k (1<=i,j,k<=N), если при их взаимодействии

получается k вещество.

В пробирку одно за другим насыпаются вещества.Оказавшись вместе, онм могут вступить

в реакцию.

Вновь созданное вещество, возможно, реагирует с тем, что лежит ниже его и. т. д.

Известно, что реакция взаимодействия состоится мгновенно и только между двумя

соседними шарами.

ТЕХНИЧЕСКОЕ ЗАДАНИЕ

Описать алгоритм, который определяет по заданной последовательности, которые вещества

останутся в пробирке.

Данные про взаимодействие веществ подаются в виде текстового файла input.txt, в первой

строке которого указано количество N веществ (N<=10), а в следующих N задано по N чисел,

определяющих таблицу взаимодействий.

С клавиатуры вводится только порядок засыпания веществ.

ПРИМЕР

файл input.txt

3

032

301

210

При вводе с клавиатуры

1

2

3

Выход: 3

------------------Конец----------

Примечание: это задание делали и 10 и 11 класники (я в 10ом).

Ответить

  Ответы Всего ответов: 12  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 22.12.03 17:35

Чего ж тут непонятного?

При засыпании вещества в пробирку проверяешь, реагирует ли оно с тем, которое снизу. Если нет, идешь дальше. Если да, проводишь реакцию, т.е. заменяешь 2 слоя на один, проверяешь то же самое дальше, пока реакция не прекратится. И так для всех веществ. Что в этой задаче сложного? (странная у вас какая-то городская олимпиада...)

Ответить

Номер ответа: 2
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #2
Добавлено: 22.12.03 17:41

А ты пример напиши

Ответить

Номер ответа: 3
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #3
Добавлено: 22.12.03 18:28

С грехом пополам, но этот код, накатанный за 15 минут (долго вспоминал, как Split работает :)) работает. Думаю, разберешься:

Private Sub Command1_Click()

Dim a(100, 100), l() As String, k() As String, p(100), res(100)

f = FreeFile

Open "c:\win98\рабочий стол\input.txt" For Input As f

Line Input #f, n

For i = 1 To n

Line Input #f, s

l() = Split(s, " ")

For j = 0 To n - 1

a(i, j + 1) = Val(l(j))

Next

Next

Close

k() = Split(Text1, " ")

sp = 0

For i = 0 To UBound(k)

p(sp) = Val(k(i))

If sp > 0 Then

Do Until a(p(sp), p(sp - 1)) = 0

p(sp - 1) = a(p(sp), p(sp - 1))

sp = sp - 1

If sp = 0 Then Exit Do

Loop

End If

sp = sp + 1

Next

For i = 0 To sp - 1

res(p(i)) = 1

Next

d = ""

For i = 1 To 100

If res(i) = 1 Then d = d & i & vbCrLf

Next

MsgBox d

End Sub

Мне прак по химии оформлять надо, а я тут задачи по программингу решаю :)

Ответить

Номер ответа: 4
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #4
Добавлено: 22.12.03 19:02

Не работает (по крайней мере поставленных задач не решает)

Обясни мне одно: структуру input.txt.

Ответить

Номер ответа: 5
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #5
Добавлено: 22.12.03 19:26

3

0 3 2

3 0 1

2 1 0

В текстовое поле вводишь 1 2 3

Все работает.

Ответить

Номер ответа: 6
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #6
Добавлено: 22.12.03 19:49
Я не понимаю структуру input.txt, может обясниш?

Ответить

Номер ответа: 7
Автор ответа:
 NovichoK



Вопросов: 72
Ответов: 147
 Профиль | | #7 Добавлено: 22.12.03 20:20

А где ты тут структуру input.txt увидел?

input.txt - это файл....

Ответить

Номер ответа: 8
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #8
Добавлено: 22.12.03 20:43

Какая еще структура input.txt???

3 - линейный размер массива

Дальше сам массив. Если n реагирует с m, то a[n][m] содержит продукт p, иначе 0.

Если уж ты и задание не понял, стоит ли вообще браться за олимпиады?

Ответить

Номер ответа: 9
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #9
Добавлено: 22.12.03 20:54
ТОГДА ЧТО ЗНАЧИТ ЭТА СТРОКА: 3 0 13 ЭТО ЧТО?0 ЭТО ЧТО?1 ЭТО ЧТО?Где вещества а где результат взаимодействия?

Ответить

Номер ответа: 10
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #10
Добавлено: 22.12.03 21:01

Мне ответить или это шутка такая?

a[1][1]=0 a[1][2]=3 a[1][3]=2

a[2][1]=3 a[2][2]=0 a[2][3]=1

a[3][1]=2 a[3][2]=1 a[3][3]=0

Ответить

Номер ответа: 11
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #11
Добавлено: 22.12.03 23:07

Бли-и-и-и-и-и-и-н!!!!!!!!!!!!!!

Вот ты меня просветил!!!

И как я не догадался!

Спасибо, учту на следующий раз.

Ответить

Номер ответа: 12
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #12
Добавлено: 22.12.03 23:59

Учти уж, пожалуйста. Но в олимпиадах тебе рановато участовать, имхо.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам