Sqrt рдЕрдкрдШрдЯрди

рдкрд░рд┐рдЪрдп

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

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдФрдкрдЪрд╛рд░рд┐рдХ рд╡рд┐рд╡рд░рдг

рдПрдХ рд╕рд░рдгреА A [0..n-1] рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ l рдФрд░ r рдХреЗ рд▓рд┐рдП A [l..r] рддрддреНрд╡реЛрдВ рдХреА рд░рд╛рд╢рд┐ рдХреА рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдЧрдгрдирд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛рдП рдЬреЛ рдХрд┐ рд╕рд░рдгреА рдХреА рд╕реАрдорд╛ рд╕реЗ рдЖрдЧреЗ рди рдЬрд╛рдПрдВред рд╡реНрдпрд╛рдкрдХрддрд╛ рдХреЗ рдиреБрдХрд╕рд╛рди рдХреЗ рдмрд┐рдирд╛, рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ l <= r ред


рдирд┐рд░реНрдгрдп

рд╣рдо Sqrt рдЕрдкрдШрдЯрди рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ ред рд╡рд┐рдзрд┐ рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдореВрд▓ рд╕рд░рдгреА рдХреЛ рд▓рдВрдмрд╛рдИ рдХреЗ рдмреНрд▓реЙрдХ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдкреВрд░реНрд╡-рдЧрдгрдирд╛ рдХрд░реЗрдВред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдРрд╕реЗ рдмреНрд▓реЙрдХ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ рдЯреБрдХрдбрд╝реЗред рдЕрдВрддрд┐рдо рдмреНрд▓реЙрдХ рджреВрд╕рд░реЛрдВ рд╕реЗ рдЫреЛрдЯрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ n рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рднрд╛рдЬреНрдп рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдЪрд┐рдВрддрд╛ рдХреА рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ рд╣реИред

рдмреНрд▓реЙрдХ рдХреА рд▓рдВрдмрд╛рдИ рджреЗрдВ len = (рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдореВрд▓ рдореВрд▓реНрдп рдЧреЛрд▓ рд╣реИ)ред


рдФрд░ рдЕрдЧрд░ n рд▓реЗрди рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рднрд╛рдЬреНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рдЕрдВрддрд┐рдо рдмреНрд▓реЙрдХ рдХреА рд▓рдВрдмрд╛рдИ рд▓реЗрди рдирд╣реАрдВ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдХрдоред рдЬреЛ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред

рдЕрдЧрд▓рд╛, B [i] рдореЗрдВ рдПрдХ рд╕рд░рдгреА B рдмрдирд╛рдПрдВ, рд╣рдо i-th рдмреНрд▓реЙрдХ рдХреЗ рддрддреНрд╡реЛрдВ рдХрд╛ рдпреЛрдЧ рд╕рдВрдЪрд┐рдд рдХрд░реЗрдВрдЧреЗред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдРрд╕рд╛ рдЕрдиреБрдорд╛рди рд▓рдЧреЗрдЧрд╛ рд╕рдордп рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд╕рд┐рд░реНрдл рдП рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ред

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

A = {3, 4, 8, 7, 1, 6, 1, 6}, рдлрд┐рд░ len = 3, B [0] = 15, B [1] = 14, B [2] = 7ред
рдФрд░ рд╡реЗ рд╣рдореЗрдВ рдкрд╣рд▓реА рд╕реЗ рдЫрдареА (рд╣рдо рдЦрд░реЛрдВрдЪ рд╕реЗ рд╕рдВрдЦреНрдпрд╛) рдХреЗ рддрддреНрд╡реЛрдВ рдХрд╛ рдпреЛрдЧ рдкреВрдЫрддреЗ рд╣реИрдВред



рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рд╕рд░рдгреА рдХреЗ рджреЛ рддрддреНрд╡реЛрдВ рдкрд░ рдЬрд╛рдирд╛ рд╣реИ рдФрд░ 4 рдФрд░ 8 рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдкреВрд░реНрдг рдпреЛрдЧ рдмреА [0] рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рд╕рд░рдгреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмреА [1] рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЧрд┐рдирд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ 14 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдФрд░ рдЕрдВрдд рдореЗрдВ 1 рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдЕрдВрддрд┐рдо рдмреНрд▓реЙрдХ рдХреА рдкреВрд░реА рд░рд╛рд╢рд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

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

// рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд░рдгреА рдП (рджреА рдЧрдИ) рд╣реИ рдФрд░ рдмреА рдЖрдВрд╢рд┐рдХ рд░рдХрдо рдХрд╛ рдПрдХ рд╕рд░рдгреА рд╣реИред
// рд▓реЗрди - рдмреНрд▓реЙрдХ рд▓рдВрдмрд╛рдИ

for (int i = 0; рдореИрдВ <n; i ++)
рдмреА [рдЖрдИ / рд▓реЗрди] + = рдП [рдЖрдИ]; // рдмреНрд▓реЙрдХреЛрдВ рдХреА рд░рд╛рд╢рд┐ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ

// рдПрд▓ рдФрд░ рдЖрд░ рд╕реАрдорд╛рдПрдВ рд╣реИрдВ

int i = l, sum = 0;
рдЬрдмрдХрд┐ (i <= r)
{
рдЕрдЧрд░ (i% len == 0 && i + len -1 <= r)
{
sum + = B [i / len];
i + = рд▓реЗрди;
}
рдЕрдиреНрдпрдерд╛
{
sum + = A [i];
рдореИрдВ ++;
}
}

рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛ред

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

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


All Articles