B Интеграция
Значение вопросов:
Учитывая $ a_1, a_2, ..., a_n $, вычисленная $$ \ гидроразрыва {1} {π} \ int_ {0} ^ {\ infty} \ гидроразрыва {1} {\ прод \ limits_ {я = 1} ^ {п} (a_i ^ 2 + х ^ 2)} дх $$ ответить на (1E9 + 7) по модулю значения.
Идеи:
Расщепление поездки к и подход
Вы можете получить
$$ \ гидроразрыва {1} {2} \ sum_ {= 1} ^ п \ четырехъядерных \ гидроразрыва {1} {\ prod_ {J = 1, J \ пе я} ^ п \ четырехъядерных a_j ^ 2 - a_i ^ 2 } \ четырехъядерных \ гидроразрыва {1} {a_i} $$
Справка: https://www.cnblogs.com/Dillonh/p/11209476.html
#include <iostream> #include <вектор> #include <очереди> с использованием пространства имен зЬй; #define пб push_back #define фи первой #define себе второй #define отладки (х) сегг << # х << ": =" << х << епсИ; #define ошибка сегг << "-----------------------" << епсИ; #define ЗА (а, б, в) для (Int а = Ь; а <= С; ++ а) ЬурейеЕ длинные длинные LL; ЬурейеЕ длинный двойной л.д.; ЬурейиЙ пар < INT , INT > PII;ФАПЧ; Шаблон < класс Т> недействительными _R (Т & х) {CIN >> х; } Недействительными _R ( INT & х) {зсапЕ ( " % d " , & х); } Пустота _R (LL & х) {зсапЕ ( " % LLD " , & х); } Недействительными _R ( двойной & х) {зсапЕ ( " % LF " , & х); } Недействительными _R ( символ & х) {зсапЕ ( " % С " , & х); " , Х);} недействительным R () {} шаблон < класс Т, класс ... U> аннулируются R (T & головки, U & ... хвост) {_R (головка), R (хвост ...); } шаблон <Ьурепате Т> инлайн Т чтения (T & х) { х = 0 ; INT е = 0 ; символ ч = GetChar (); в то время (ч < ' 0 ' || ч> ' 9 ' ) F | = ( ч == ' - ' ), ч = GetChar (); в то время (ч> =' 0 ' && ч <= ' 9 ' ) х = х * 10 + CH- ' 0 ' , ч = GetChar (); вернуться х = п - х: х; } Const INT инф = 0x3f3f3f3f ; Const INT мод = 1e9 + 7 ; / * ********* *********** Showtime * / Const INT maxn = 1e3 + 9 ; INT A [maxn]; LL КСМ (LL а, б LL) { LL разрешением = 1 ; в то время как(б> 0 ) { если (б & 1 ) = Рез Рез * а% по модулю; = а * а% по модулю; б = B >> 1 ; } Вернуть Рез; } INT основных () { INT п; в то время как (~ зсапЕ ( " % d " , & п)) { для ( INT I = 1 ; я <= п; я ++) зсапЕ ( " % d " , & [I]); LL сумма= 0 ; для ( INT I = 1 ; г <= п; я ++ ) { LL TMP = 1 ; для ( Int J = 1 , J <= N; j ++ ) { если (я == J) продолжить ; LL с = (1LL * а [J] * а [J]% мод - 1LL * а [я] * а [я]% Mod + мод)% по модулю; TMP = TMP * КСМ (с, mod - 2 )% по модулю; } TMP= TMP * КСМ (а [I], mod - 2 )% по модулю; сумма = (сумма + TMP)% по модулю; } Сумма = сумма * КСМ ( 2 , mod - 2 )% по модулю; Е ( " % LLD \ п " , сумма); } Возвращает 0 ; }