|
|
|
Задачка в С.
|
|||
|---|---|---|---|
|
#18+
Запутался с задачкой. Есть матрица n * m. Матрица заполнена нулями и единицами. Надо посчитать количество островков. Островок это две или более единичек вместе причем со всех сторон - слева,справа, вверху, внизу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 12:47 |
|
||
|
Задачка в С.
|
|||
|---|---|---|---|
|
#18+
А в чём именно запутался-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 13:29 |
|
||
|
Задачка в С.
|
|||
|---|---|---|---|
|
#18+
AkinaА в чём именно запутался-то? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. и тут я застрял. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 13:56 |
|
||
|
Задачка в С.
|
|||
|---|---|---|---|
|
#18+
Не-а... Попробуй реализовать вот что. Ищем "первую" единичку. Если у неё есть хотя бы один сосед-единица, заменяем её на 2, иначе на ноль. Если соседи есть (поставлили двойку), заменяем всех её единичных соседей на двойки. Повторяем, пока хотя бы у одной двойки есть сосед-единица. Т.е. фактически "заливаем" островок двойками. Проверяем матрицу. Если есть хотя бы одна единичка, повторяем, только на сей раз заменяем на тройки. Потом на четвёрки... и так до тех пор, пока в матрице не останется единиц. Последнее подставляемое число минус 1 и будет количество островков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 14:11 |
|
||
|
Задачка в С.
|
|||
|---|---|---|---|
|
#18+
Ты бы примеры показал что считать островками. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 14:16 |
|
||
|
Задачка в С.
|
|||
|---|---|---|---|
|
#18+
Dima TТы бы примеры показал что считать островками. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. все кроме по диагонали. например в последней матрице три острова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 14:24 |
|
||
|
Задачка в С.
|
|||
|---|---|---|---|
|
#18+
jenya7в последней матрице три островаЭммм... я вижу только один: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 14:32 |
|
||
|
Задачка в С.
|
|||
|---|---|---|---|
|
#18+
jenya7все кроме по диагонали. например в последней матрице три острова. Это как? Нарисуй. Как Akina предложил, замени каждую единичку на номер острова к которому она относится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 14:36 |
|
||
|
Задачка в С.
|
|||
|---|---|---|---|
|
#18+
Dima Tjenya7все кроме по диагонали. например в последней матрице три острова. Это как? Нарисуй. Как Akina предложил, замени каждую единичку на номер острова к которому она относится. ряд 2 и 3 - остров. ряд 3 - остров. ряд 3 и 4 - остров. в этом то и проблема - найти к какому острову относиться единица. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 14:58 |
|
||
|
Задачка в С.
|
|||
|---|---|---|---|
|
#18+
jenya7ряд 2 и 3 - остров. ряд 3 - остров. ряд 3 и 4 - остров. Бред какой-то... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 15:03 |
|
||
|
Задачка в С.
|
|||
|---|---|---|---|
|
#18+
jenya7Dima Tпропущено... Это как? Нарисуй. Как Akina предложил, замени каждую единичку на номер острова к которому она относится. ряд 2 и 3 - остров. ряд 3 - остров. ряд 3 и 4 - остров. в этом то и проблема - найти к какому острову относиться единица. Давай четкое определение что такое "остров". Какие острова бывают. Какой формы. В каких случаях одна и та же единица может принадлежать двум островам. PS Нет тут телепатов. Ты уже не первый раз заводишь топик "помогите сделать штуку, которую не знаю как объяснить". Если ты не знаешь, то мы откуда должны знать? Давай, не ленись, формулируй четкую постановку задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 15:17 |
|
||
|
Задачка в С.
|
|||
|---|---|---|---|
|
#18+
Dima Tjenya7пропущено... ряд 2 и 3 - остров. ряд 3 - остров. ряд 3 и 4 - остров. в этом то и проблема - найти к какому острову относиться единица. Давай четкое определение что такое "остров". Какие острова бывают. Какой формы. В каких случаях одна и та же единица может принадлежать двум островам. PS Нет тут телепатов. Ты уже не первый раз заводишь топик "помогите сделать штуку, которую не знаю как объяснить". Если ты не знаешь, то мы откуда должны знать? Давай, не ленись, формулируй четкую постановку задачи. задачка дана на английском. я ее понял так как описал. а вот оригинал. Given a map m*n of 0 and 1, implement a function of counting islands of 1’s, when island is one or more adjacent (left, right, top, bottom) ones. Diagonal ones are not considered adjacent. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 15:26 |
|
||
|
Задачка в С.
|
|||
|---|---|---|---|
|
#18+
jenya7задачка дана на английском. я ее понял так как описал. а вот оригинал. Given a map m*n of 0 and 1, implement a function of counting islands of 1’s, when island is one or more adjacent (left, right, top, bottom) ones. Diagonal ones are not considered adjacent. Тогда остров один, как Akina нарисовал 19183970 . Как решать он уже написал 19183812 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 15:31 |
|
||
|
Задачка в С.
|
|||
|---|---|---|---|
|
#18+
jenya7Островок это две или более единичек вместе причем со всех сторон - слева,справа, вверху, внизу. c английским тоже плохо... jenya7when island is one or more adjacent (left, right, top, bottom) ones ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 15:49 |
|
||
|
Задачка в С.
|
|||
|---|---|---|---|
|
#18+
jenya7Given a map m*n of 0 and 1, implement a function of counting islands of 1’s, when island is one or more adjacent (left, right, top, bottom) ones. Diagonal ones are not considered adjacent.Можно просто занулять острова, пока их не останется: Код: plaintext 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. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. Здесь используется обход в глубину (функция zero_cells), но есть и более эффективный алгоритм «затопления» острова, он так и называется, flood fill. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2016, 03:12 |
|
||
|
Задачка в С.
|
|||
|---|---|---|---|
|
#18+
Пётр Седовjenya7Given a map m*n of 0 and 1, implement a function of counting islands of 1’s, when island is one or more adjacent (left, right, top, bottom) ones. Diagonal ones are not considered adjacent.Можно просто занулять острова, пока их не останется: Код: plaintext 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. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. Здесь используется обход в глубину (функция zero_cells), но есть и более эффективный алгоритм «затопления» острова, он так и называется, flood fill. спасибо. интересное решение. я сделал по другому. там не обрабатываются все случаи. Код: 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. но у вас решение более полное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2016, 09:51 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39237487&tid=1340716]: |
0ms |
get settings: |
8ms |
get forum list: |
22ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
142ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 485ms |

| 0 / 0 |
