рдЦрдВрдбреЛрдВ рдХреЗ рджреЛ рдЖрдпрд╛рдореА рд╡реГрдХреНрд╖ (рддрддреНрд╡реЛрдВ рдХреЗ рд╕рдореВрд╣ рд╕рдВрд╢реЛрдзрди рдХреЗ рд╕рд╛рде)

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдФрд░ рдХрдерди


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рд╛рдЗрдЯ рдХреЗ рдХрдИ рдкрд╛рдардХреЛрдВ рдиреЗ рдЗрд╕ рддрд░рд╣ рдХреА рдЙрдкрдпреЛрдЧреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЦрдВрдбреЛрдВ рдХреЗ рдкреЗрдбрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реБрдирд╛ рд╣реИред рдФрд░ рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЖрдк рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рд░реЛрдЪрдХ рд╕рд╛рдордЧреНрд░реА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ ( рдпрд╣рд╛рдВ , рд╣рдмреНрд░ рдкрд░ рд▓реЗрдЦ: рдПрдХ рдФрд░ рджреЛ , Google, рдЕрдВрдд рдореЗрдВ)ред
рдпрд╣рд╛рдВ рдореИрдВ рдЦрдВрдбреЛрдВ рдХреЗ рд╡реГрдХреНрд╖ рдХреЗ рджреНрд╡рд┐-рдЖрдпрд╛рдореА рдорд╛рдорд▓реЗ рдХреЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реВрдВрдЧрд╛, рдФрд░ ( рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд╡рд┐рдкрд░реАрдд) рдореИрдВ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рдореВрд╣ рд╕рдВрд╢реЛрдзрди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдкреЗрдбрд╝ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛ред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реЗрдЧрдореЗрдВрдЯ рдХреЗ рдкреЗрдбрд╝ рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлреЗрдирд╡рд┐рдХ рдкреЗрдбрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ - рдпрд╣ рд╕реЗрдЧрдореЗрдВрдЯ рдХреЗ рдкреЗрдбрд╝ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рдЫреЛрдЯрд╛ рд╕реНрдерд┐рд░ рд╣реИ, рдФрд░ рдЬрд╛рд╣рд┐рд░ рд╣реИ рдмрдбрд╝реЗ рдЖрдпрд╛рдореЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдкрд╛рд╕ рдХрдо рд╕реЗ рдХрдо рджреЛ рдордВрддреНрд░реА рд╣реИрдВ: рдпрд╣ рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рд╡рд░реНрддреА рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ (рдЗрд╕реЗ рдиреНрдпреВрдирддрдо / рдЕрдзрд┐рдХрддрдо рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдмрд╣реБрдд рд╡рд┐рдХреГрдд рд╣реЛрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рддрдм рднреА рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рдирд╣реАрдВ рджреЗрдЧрд╛ (рдЕрдзрд┐рдХрддрдо рдореЗрдВ рд╕рдВрд╢реЛрдзрди - рдХреЗрд╡рд▓ рдореВрд▓реНрдп рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХрд░реЗрдВ, рдХрдо рди рдХрд░реЗрдВ, рдиреНрдпреВрдирддрдо - рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд) )) рдФрд░ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рдореВрд╣ рд╕рдВрд╢реЛрдзрди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдмреНрд▓реЙрдХ рд▓рдВрдмрд╛рдИ рдХреЗ рдПрдХ рдореБрд╢реНрдХрд┐рд▓ рдЪрдпрди рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдЪреНрдЫрд╛ SQRT рдЕрдкрдШрдЯрди рднреА рдХрднреА-рдХрднреА рдорджрдж рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЦрдВрдбреЛрдВ рдХреЗ рдкреЗрдбрд╝ рдХреА рд╢рдХреНрддрд┐ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред

рддреЛ рдЪреБрдиреМрддреАред

рдПрдХ NxM рдлрд╝реАрд▓реНрдб рд╣реИ, рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП:
  1. рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╕рдВрддреЛрд╖рдЬрдирдХ рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрджрд▓реЗрдВред x рдкрд░ </ x <= x2, y1 <= y <= y2 рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрддреЛрд╖рдЬрдирдХ
  2. X1 <= x <= x2, y1 <= y <= y2 рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рдХрд╛рдУрдВ рд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдлрд╝рдВрдХреНрд╢рди (рд╕рд╛рд╣рдЪрд░реНрдп рдмрд╛рдЗрдирд░реА рдСрдкрд░реЗрд╢рди) рдХреЗ рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВред

рдпрд╣рд╛рдВ рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛, рдЬрд╣рд╛рдВ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдпреЛрдЧ рд╣реИред рдореБрдЭреЗ рддреБрд░рдВрдд рдпрд╣ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ рд╕реНрд╡рдпрдВ рдЗрд╕ рдирд┐рд░реНрдгрдп рдкрд░ рдкрд╣реБрдБрдЪ рдЧрдпрд╛ (рд▓рдЧрднрдЧ 15 рдШрдВрдЯреЗ рдХреЗ рднреАрддрд░), рдЗрд╕рд▓рд┐рдП рдореИрдВ рдПрдХ рд╕рд░рд▓ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЛ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдХрд░рддрд╛, рдФрд░ рдореБрдЭреЗ рдпрд╣ рд╕реБрдирдиреЗ рдореЗрдВ рднреА рдЦреБрд╢реА рд╣реЛрдЧреАред

рд╡реГрдХреНрд╖ рдХреА рд╕рдВрд░рдЪрдирд╛



рдЫрд╡рд┐

рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЦрдВрдбреЛрдВ рдХреЗ рджреЛ-рдЖрдпрд╛рдореА рд╡реГрдХреНрд╖ рдЦрдВрдбреЛрдВ рдХреЗ рд╡реГрдХреНрд╖реЛрдВ рд╕реЗ рдЦрдВрдбреЛрдВ рдХреЗ рд╡реГрдХреНрд╖ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ (рдЧрд╣рд░рд╛рдИ X_DEPTH рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдореЗрдВ рдЧрд╣рд░рд╛рдИ Y_DEPTH рдХрд╛ "рдиреЗрд╕реНрдЯреЗрдб" рд╡реГрдХреНрд╖ рд╣реИ)ред рдЗрд╕рдХреЗ рдмрд╛рдж, рдкреЗрдбрд╝ рдХреА рдЧрд╣рд░рд╛рдИ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рд▓рдШреБрдЧрдгрдХ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд╣ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдХреГрддрд┐ 1 рдЧрд╣рд░рд╛рдИ рдХрд╛ рдПрдХ рдкреЗрдбрд╝ рджрд┐рдЦрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдореЗрдВ рдЧрд╣рд░рд╛рдИ рдХрд╛ рдПрдХ рдкреЗрдбрд╝ рд╣реЛрддрд╛ рд╣реИред 2. рдРрд╕рд╛ рдкреЗрдбрд╝ рдлрд╛рд░реНрдо рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ [X1; x2] shows [0; 1], [y1; y2] shows [0; 3]ред

рд╣рдо рдЗрди рдкреЗрдбрд╝реЛрдВ рдХреЗ рдХреЛрдиреЗ (рдмрд╛рд╣рд░реА рдФрд░ рд╕рднреА рдиреЗрд╕реНрдЯреЗрдб) тАЛтАЛрдХреЛ рд╕рд╛рдзрд╛рд░рдг рдПрдХ рдЖрдпрд╛рдореА рдкреЗрдбрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЦреНрдпрд╛ рджреЗрддреЗ рд╣реИрдВред
рдлрд┐рд░ рд╕рдВрд▓рдЧреНрди рдПрдХ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖ рдХреЛ рд╕рдордиреНрд╡рд┐рдд [x] [y] рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдЧреА, x рдмрд╛рд╣рд░реА рдкреЗрдбрд╝ рдХреЗ рд╢реАрд░реНрд╖ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╕реНрдерд┐рдд рд╣реИ, рдФрд░ y рдЖрдВрддрд░рд┐рдХ рд╣реИред

рд╣рдо рдПрдХ рд╕реЗрдХреНрдЯрд░ рдХреЛ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЧрдард┐рдд рдПрдХ рдЖрдпрдд рдХрд╣рддреЗ рд╣реИрдВ X1 <= x <= x2, y1 <= y <= y2ред рддрдм рдиреЗрд╕реНрдЯреЗрдб рд╕рдмрдЯреНрд░реА рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрддрд╛ рд╣реИред

"рдиреЗрд╕реНрдЯреЗрдб" рдкреЗрдбрд╝ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдореЗрдВ, рд╣рдо рдЪрд╛рд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗ:

рдХрдВрдкреНрдпреВрдЯрд░ рдХреА рдореЗрдореЛрд░реА рдореЗрдВ, рдпрд╣ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЪрд╛рд░ рджреЛ рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕рдВрдЪрд╛рд▓рди рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ


рдЬрдм рд╣рдо рд╕рдВрд╢реЛрдзрди рдСрдкрд░реЗрд╢рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдЖрдпрд╛рдореА рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рджрд┐рдП рдЧрдП рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╢реАрд░реНрд╖ рд╕реВрдЪреА рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрджрд▓ рджреЗрдВрдЧреЗред рдЬрдм рдПрдХ рд╣реА рд╕реЗрдХреНрдЯрд░ рдкрд░ рдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реЗрдВрдЧреЗред

рдпрджрд┐ рд╣рдо рд╢реАрд░реНрд╖ [x0] [y0] рдХреЗ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рд╕реЗрдХреНрдЯрд░ [x0_1; x0_2] [y0_1; y0_2] рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рддреЛ рдпрд╣ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реЗрдХреНрдЯрд░ рд╕рд╣рд┐рдд рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (x; y): X1 <= x0_1 рдФрд░ x0_2 <= x2 рдФрд░ y1 <= y0_1 рдФрд░ y0_2 <= y2ред рдЕрд░реНрдерд╛рддреН, рдпрд╣ xth, Y рдХреЗ рд▓рд┐рдП y рдХреЗ рд╕реЗрдЯ X рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдФрд░ рдлрд┐рд░ XYY рдХреЗ рд╕рднреА рдЬреЛрдбрд╝реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЙрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред
рдареАрдХ рд╣реИ, рдЗрди рд╕рдорд╛рди рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдКрдкрд░ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдЖрдпрд╛рдореА рдкреЗрдбрд╝ рдкрд░ рдПрдХ рдкреНрд░рд╢реНрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВред

рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЬреЛрдбрд╝реА (x; y) рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ xl, xr, yl, yr - рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдЯреЗрдХреНрд╕ рдХреЗ secotra рдХреА рд╕реАрдорд╛, рд╕рд╛рде рд╣реА xc рдФрд░ yc - xth рдФрд░ yth axes рдХреЗ рд╕рд╛рде рдЪреМрд░рд╛рд╣реЛрдВ рдкрд░ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдВрд╢реЛрдзрди рд╕рдВрдЪрд╛рд▓рди


  1. рдпрджрд┐ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдЯреЗрдХреНрд╕ рдХрд╛ рдХреНрд╖реЗрддреНрд░ рд╢рд╛рдорд┐рд▓ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╡реИрд▓ рд╡рд░реНрдЯрд┐рдХреНрд╕ рд╡рд░реНрдЯрд┐рд╕ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ (рд╡реИрд▓ рдХреЛ рдПрдХреНрд╕рде рдФрд░ рдпрде рджреНрд╡рд╛рд░рд╛ рд╕рднреА рд╡рдВрд╢реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП):
    рдЬреЛрдбрд╝ + = рдШрд╛рдЯреА;
  2. рдпрджрд┐ рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдХреНрд╖реЗрддреНрд░ рдХреЗрд╡рд▓ xth рд╕рдордиреНрд╡рдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ, рддреЛ add_y рдмрджрд▓реЗрдВ:
    add_y + = val * xc;
  3. рдпрджрд┐ рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдХреНрд╖реЗрддреНрд░ рдХреЗрд╡рд▓ yth рд╕рдордиреНрд╡рдп рдореЗрдВ рд╣реИ, рддреЛ add_x рдмрджрд▓реЗрдВ:
    add_x + = val * yc;
  4. рдпрджрд┐ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдПрдХ рдХреНрд╖реЗрддреНрд░ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ:
    рдорд╛рди + = рд╡реИрд▓ * xc * yc;

рдРрдб рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ (рдПрдХ рдЖрдпрд╛рдореА рдорд╛рдорд▓рд╛ рджреЗрдЦреЗрдВ)ред

рдЬрдм рдПрдХ рдЕрдиреБрд░реЛрдз рдореЗрдВ y-th рд╕рдордиреНрд╡рдп рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдХреНрд╖реЗрддреНрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ y-th рдореЗрдВ рдРрд╕реЗ рд╡рдВрд╢рдЬ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд░рд╛рд╢рд┐ рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣реЛрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП рд╣рдо add_x рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВред
рдЗрд╕реА рддрд░рд╣ add_y рдХреЗ рд╕рд╛рдеред

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдпрджрд┐ рдкрд┐рдЫрд▓реА рддреАрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рддреЛ рдЗрд╕ рд╢реАрд░реНрд╖ рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рдВрд╢рдЬ рдХреЗ рдмреАрдЪ, рдПрдХ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛, рдФрд░ рджреВрд╕рд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЖрдЧреЗ рд╡рд┐рддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдорд╛рди рдмрдврд╝рд╛рдПрдБред

рд╕рдВрдХреНрд╖реЗрдкрдг рдСрдкрд░реЗрд╢рди


рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдо рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдЧрдгрдирд╛ рдХрд░реЗрдВрдЧреЗред рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдЙрд╕ рдЕрдиреБрд░реЛрдз рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреА рд╕реАрдорд╛рдУрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╢реАрд░реНрд╖ (рдЗрдЪреНрдЫрд┐рдд рднрд╛рдЧ рдХреА рд╕реАрдорд╛рдУрдВ) рдХреЗ рд▓рд┐рдП рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ:

xvl = max (xl, X1), xvr = min (xr, x2), yvl = max (yl, y1), yvr = min (yr, y2)
  1. рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкрдбрд╝реА рд╕рднреА рдЕрдиреБрд░реЛрдз рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рд╢реАрд░реНрд╖ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
    Res + = * * xc * yc рдЬреЛрдбрд╝реЗрдВ;
  2. рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рднрд╛рдЧ xth рд░реЗрдВрдЬ рдореЗрдВ рд╡рд░реНрдЯреЗрдХреНрд╕ рд╕реЗрдХреНрдЯрд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:
    Res + = add_x * yc;
  3. рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рднрд╛рдЧ y- рд╡реЗрдВ рд╢реНрд░реЗрдгреА рдореЗрдВ рд╢реАрд░реНрд╖ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:
    res + = add_y * xc;
  4. рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рд╢реАрд░реНрд╖ рдХрд╛ рдХреНрд╖реЗрддреНрд░ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд╣рд┐рдд рд╣реИ (рд╣рдо рдиреАрдЪреЗ рдирд╣реАрдВ рдЬрд╛рдПрдВрдЧреЗ):
    Res + = рдореВрд▓реНрдп;


Asymptotics


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╡рд┐рд╡рд░рдг рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рд╕рдорд╛рдзрд╛рди O (N * X_DEPTH * Y_DEPTH) рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдЬрд╣рд╛рдБ N рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рдЖрдк рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ http://dl.dropbox.com/u/3693476/articles/segtree2d/segtree2d.cpp (рдлрд╝рд╛рдЗрд▓ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди, D рд╕реЗ рдлрд╝рд╛рдЗрд▓ http://dl.dropbox.com/u/ рдкрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ) 3693476 / рд▓реЗрдЦ / segtree2d / problems01.pdf )ред рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЕрдкрдирд╛ рдЕрдиреБрд░реЛрдз рдореЗрд░реЗ рдореЗрд▓рдмреЙрдХреНрд╕ george.agapov@gmail.com рдкрд░ рд▓рд┐рдЦреЗрдВред

PS рдЖрдк рд╕рднреА рдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

Source: https://habr.com/ru/post/In131072/


All Articles