Вниз  Разбор интересных задач
- 7.10.2011 / 15:22
Freddy
  Пользователь

Freddy 
Сейчас: Offline
mrEDitor, тогда формулируй правильнее, изменение length и изменение ссылки на объект - далеко не одно и то же.
- 7.10.2011 / 16:29
Melodic
  Пользователь

Melodic 
Сейчас: Offline
Freddy (17.09.2011/22:16)Идея в следующем: введём систему координат, совместив её начало с центром окружности, тогда абсцисса и ордината разобьют окружность на четыре равные части, проведём прямые y=x и y=-x, тогда окружностьFreddy, проблемка )) сектора у меня расположены не так)) т.е. окружность на секторы делят не оси и у=х,у=-х. Эти линии делят сектора пополам, а не являются границами секторов)
Красные линии границы секторов.

Изменено Melodic (7.10 / 16:33) (всего 3 раза)


Прикрепленные файлы:
секторы.png (2.47 кб.) Скачано 243 раза
- 7.10.2011 / 21:59
Freddy
  Пользователь

Freddy 
Сейчас: Offline
Melodic, принцип решения тот же, но теперь окружность разбивается прямыми y=0,5x, y=2x, y=-0,5x, y=-2x. Отсюда смотрим, например, если координаты конца вектора (6;2), так как ордината меньше, чем половина от абсциссы, то вектор лежит в первом секторе, если дана точка (2;6), то ордината больше, чем удвоенное произведение абсциссы, значит вектор лежит в третьем секторе.
- 8.10.2011 / 11:50
Melodic
  Пользователь

Melodic 
Сейчас: Offline
Freddy, можно это в коде?) с геометрией всегда проблемы были :gg:
- 10.10.2011 / 19:50
Freddy
  Пользователь

Freddy 
Сейчас: Offline
Melodic,
  1. private static int getIndex(int x, int y) {
  2.         if (x > 0)
  3.             if (y > 0)
  4.                 if (x > 2 * y)
  5.                     return 1;
  6.                  else if (y > 2 * x)
  7.                     return 3;
  8.                  else
  9.                     return 2;    
  10.              else if (x < 2 * Math.abs(y))
  11.                 return 12;
  12.              else if (Math.abs(y) < 2 * x)
  13.                 return 10;
  14.              else
  15.                 return 11;
  16.         else
  17.             if (y>0)
  18.                 if(2*Math.abs(x)<y)
  19.                     return 4;
  20.                 else if(2*y<Math.abs(x))
  21.                     return 6;
  22.                 else
  23.                     return 5;
  24.             else if (y < 2*x)
  25.                 return 9;
  26.             else if (x<2*y)
  27.                 return 7;
  28.             else return 8;          
  29.     }

- 16.11.2011 / 19:06
XakepPRO
  Модератор форума

XakepPRO 
Сейчас: Offline
Я в шоке. Сегодня увидел задачу:
Программа считывает двузначное число и выводит через пробел каждую цифру отдельно.
Входные данные:
   Натуральное число из промежутка от 10 до 99 включительно.
Выходные данные:
   Два одноцифровых числа, разделенных пробелом.

Лимит времени: 0.3 секунды
Лимит памяти: 16 MB

Казалось бы, ничего сложного нет, вывести N div 10 и N%10 (N div 10, N mod 10).
Но нет, по времени по проходит.

Можно прочитать как строку и вывести первый и второй символ этой строки, но тоже не подходит.

Писать на асме нельзя :gg:
- 16.11.2011 / 19:09
JUST_IF
  Пользователь

JUST_IF 
Сейчас: Offline
XakepPRO, интересно
- 16.11.2011 / 19:18
XakepPRO
  Модератор форума

XakepPRO 
Сейчас: Offline
JUST_IF (16.11.2011/18:09)
XakepPRO, интересно
Я после этой задачи окончательно понял, что я нуб :gg:
- 16.11.2011 / 19:19
JUST_IF
  Пользователь

JUST_IF 
Сейчас: Offline
XakepPRO, не один ты, как это сделать? :)
- 16.11.2011 / 19:42
LPzhelud
  Пользователь

LPzhelud 
Сейчас: Offline
XakepPRO, Странные вы, я на яве за 300 миллисекунд 20 раз выведу это, а не 1, да и только потому, что вывод в консоль медленный
__________________
 Эль Презеденте

Изменено LPzhelud (16.11 / 20:18) (всего 1 раз)
Наверх  Всего сообщений: 751
Фильтровать сообщения
Поиск по теме
Файлы топика (34)