//预先声明
//输入输出辅助
in fast_read();
vd sc_arr1(in arr[], in n);
vd pr_arr1(in arr[], in n);
vd sc_arr2(in arr[][MAX_N], in row, in col);
vd pr_arr2(in arr[][MAX_N], in row, in col);
//基础数学计算
ll norm(ll x);
ll mod_add(ll a, ll b);
ll mod_sub(ll a, ll b);
ll mod_qmul(ll a, ll b);
ll mod_fmul(ll a, ll b);
ll fibonacci1(in n);
ll fibonacci_mem(in n);
ll fib_iterative(in n);
ll factorial1(in n);
ll factorial2(in n);
vd pre_factorial();
ll Com_mod(in n, in k);
ll Com(in n, in k);
ll Per(in n, in k);
in NPer(in a[], in n);
ll pow_mod(ll base, ll exp);
ll gcd2(ll a, ll b);
ll gcd3(ll a, ll b, ll c);
ll gcdn(ll arr[], in n);
ll lcm2(ll a, ll b);
ll lcm3(ll a, ll b, ll c);
ll lcmn(ll arr[], in n);
//基础判断函数
in is_palindrome_in(in x);
in is_fibonacci(in x);
in is_factorial(in x);
in is_psquare(in x);
in is_prime(in x);
in is_power2(in x);
//基础位运算
ll set_bit(ll x, in i);
ll clr_bit(ll x, in i);
ll set_bit_rng(ll x, in i, in j);
ll clr_bit_rng(ll x, in i, in j);
ll trn_bit(ll x, in i);
ll trn_bit_rng(ll x, in i, in j);
ll swap_bit(ll x, in i, in j);
vd ext_bit_arr(ll x, in i, in j, in res[]);
ll low_bit(ll x);
in cnt_ones(ll x);
//任意进制转换
ll to_bin(ll n);
in to_bin_arrl(ll n, in arr[]);
in to_bin_arrh(ll n, in arr[]);
in to_bin_2arrl(in dec[], in bin[], in len);
in to_bin_2arrh(in dec[], in bin[], in len);
in str_to_dgt1(const char* str, in digits[]);
in to_bin_strl(const char* num_str, in bin[]);
in str_to_dgt2(const char* str, in digits[]);
in to_bin_strh(const char* num_str, in bin[]);
in to_dec1(in bin[], in len);
in to_dec2_1(in bin[], in n, in dec[]);
in to_dec2_2(in bin[], in n, in dec[]);
ll digit_change(in n, in base);
in char_to_value(ch c);
ch value_to_char(in val);
in convert_base(const ch * n, in a, in b, ch m[]);
in convert_base_s(const ch* n, in a, in b, ch result[]);
ll mod_str(const ch* num, in base, in mod);
//字符串处理
in is_palindrome_str(const ch * str);
vd rev_str_all(ch * str);
vd rev_str_range(ch * str, in start, in end);
vd det_frt_n(ch str[], in n);
vd det_end_n(ch str[], in n);
vd det_range(ch str[], in m, in n);
vd sub_str(const ch * str, ch * dest, in m, in n);
vd rep_str(const ch * str, ch * dest, in m, in n, const ch * rep, in x);
vd ist_str(const ch * str, ch * dest, in n, const ch * rep, in x);
in ch_freq(const ch * str, ch c);
in ch_freq_range(const ch * str, in m, in n, ch c);
//数组综合
vd ex_dgt(in num, in digits[]);
in max_arr(in arr[], in n);
in max_idx(in arr[], in n);
in mode_in(in arr[], in n);
db mode_db(db arr[], in n);
db median_in(in arr[], in n);
db median_db(db arr[], in n);
db p_quantile_in(in arr[], in n, db p);
db p_quantile_db(db arr[], in n, db p);
db mean_in(in arr[], in n);
db mean_db(db arr[], in n);
db variance_in(in arr[], in n);
db variance_db(db arr[], in n);
ll sum_arr_mod(const in arr[], in n);
ll mul_arr_mod(const in arr[], in n);
vd reverse_arr(in arr[], in n);
vd remove_same(const in src[], in srcSize, in dest[], in * destSize);
in count_inversions(in arr[], in n);
in count_inversions_nd(const in arr[], in n);
vd mat_mul(in A[][MAX_N], in B[][MAX_N], in C[][MAX_N], in m, in r, in n);
vd det_Mij(in A[][MAX_N], in Mij[][MAX_N], in row, in col, in n);
in mat_det(in A[][MAX_N], in n);
vd mat_tran(in A[][MAX_N], in T[][MAX_N], in m, in n);
in mat_rank(in A[][MAX_N], in m, in n);
//排序查找
vd swap(in * a, in * b);
vd swap_db(db * a, db * b);
in incmp_up(const vd * a, const vd * b);
in incmp_dn(const vd * a, const vd * b);
in dbcmp_up(const vd * a, const vd * b);
in dbcmp_dn(const vd * a, const vd * b);
in chcmp_as(const vd * a, const vd * b);
in stcmp_as(const vd * a, const vd * b);
in mult_cmp(const vd * a, const vd * b);
vd bubble_sort(in * arr, size_t n);
vd quick_sort(in arr[], in l, in r);
vd quick_sort_3w(in arr[], in l, in r);
vd quick_csort(in arr[], in l, in r, cmp_fn cmp);
vd quick_csort_3w(in arr[], in l, in r, cmp_fn cmp);
vd quick_csort_3w_db(db arr[], in l, in r, cmp_fn cmp);
in bin_search(in arr[], in n, in x);
in bin_findf(in arr[], in n, in x);
in bin_findl(in arr[], in n, in x);
db bin_solve(db low, db high, db(*f)(db));
db bin_solve_s(db low, db high);
//几何综合
in is_line(ll x1, ll y1, ll x2, ll y2, ll x3, ll y3);
in is_pline(ll x, ll y, ll x1, ll y1, ll x2, ll y2);
ll cross_point(ll x1, ll y1, ll x2, ll y2, ll x3, ll y3);
in is_cline(ll x1, ll y1, ll x2, ll y2, ll x3, ll y3, ll x4, ll y4);
db dis_d2(db x1, db y1, db x2, db y2);
db dis_d3(db x1, db y1, db z1, db x2, db y2, db z2);
ll tri_2s(ll x1, ll y1, ll x2, ll y2, ll x3, ll y3);
ll ply_2s(in n, ll x[], ll y[]);
db tri_c(db x1, db y1, db x2, db y2, db x3, db y3);
db ply_c(in n, db x[], db y[]);
//时间日期
in is_leap(in year);
in d_of_m_sw(in year, in month);
in d_of_m_ar(in year, in month);
in d_of_y(in year, in month, in day);
in week(in year, in month, in day);
//特殊模板
in is_negative(ch s[]);
vd get_abs(ch s[], ch abs_str[]);
in str_cmp(ch s1[], ch s2[]);
in str_add_pos(ch s1[], ch s2[], in ans[]);
in str_sub_pos(ch s1[], ch s2[], in ans[]);
in str_mul_pos(ch s1[], ch s2[], in ans[]);
in str_add_n(ch s1[], ch s2[], in ans[]);
in str_sub_n(ch s1[], ch s2[], in ans[]);
in str_mul_n(ch s1[], ch s2[], in ans[]);
in fixed_div_round(ll a, ll b, in r, in res[], in resI[], in resD[]);
in fixed_div_floor(ll a, ll b, in r, in res[], in resI[], in resD[]);
in fixed_div_ceil(ll a, ll b, in r, in res[], in resI[], in resD[]);
in str_fac(in n, in ans[]);
in str_pow(in base, in exp, in res[]);
in str_to_anum(ch s[], in num[]);
vd num_to_str(in num[], in len, ch s[]);
//待删除
in str_add(ch s1[], ch s2[], in ans[]);
in str_sub(ch s1[], ch s2[], in ans[]);
in str_mul(ch s1[], ch s2[], in ans[]);你看了我之前的函数,帮我把未加入声明的加入进去,不要改我的其他东西,包括注释
最新发布