题目链接 CF993E 题解 我们记小于\(x\)的位置为\(1\),否则为\(0\) 区间由端点决定,转为两点前缀和相减 我们统计出每一种前缀和个数,记为\(A[i]\)表示值为\(i\)的位置出现的次数 那么对于\(k > 0\)有 \[ans_k = \sum\limits_{x - y = k} A[x]A[y]\] 令 \[B[x] = A[n - x]\] 那么有 \[ans_k = \sum\limits_{x + y = n + k} A[x]B[y]\] 就成了卷积的形式 第\…
Description 给你一个数组 $a_{1 \sim n}$,对于 $k = 0 \sim n$,求出有多少个数组上的区间满足:区间内恰好有 $k$ 个数比 $x$ 小.$x$ 为一个给定的数. Input 第一行$n,x$. 第二行给出$n$个数 Output 一行答案. Sample Input1 5 31 2 3 4 5 Sample Output1 6 5 4 0 0 0 Sample Input2 2 6-5 9 Sample Output2 1 2 0 Sample Input…
小于x的赋值为1,否则为0 区间等于k的个数 求0~n连续的n+1个k? N<=1e5? FFT! 考虑卷积建模:用下标相加实现转移到位,数值相乘类比乘法原理! 法一: 分治,然后FFT没了 法二: 不分治也可以!区间查询->前缀相减 ans[j-i]=f[j]*f[i],f[i]表示数值为i的前缀和个数 减法怎么办?reverse变成加法! i->n-i ans[j-i]=f[j]*f[i]=f[j]*f'[n-i] FFT一下,n+j-i位置的值就是ans辣 #include<…
题意: 给你一个数组a1~an,对于k=0~n,求出有多少个数组上的区间满足:区间内恰好有k个数比x小.x为一个给定的数.n<=10^5.值域没有意义. 分析: 大神们都说这道题是一个套路题,真是长见识%%%. 首先我们可以将题面转化,因为x是预先给出的,所以我们可以对其进行预处理,将数列中小于x的数都设为1,其他都为0,然后求一个前缀和,另前缀和数组为s[i]我们开一个数组v[i],记录在前缀和数组中数值i出现的次数. 然后我们可以得到这样一个式子 (据说看到这个式子就是套路了) 然后我们对这…
[问题描述]给出n个数qi,给出Fj的定义如下:令Ei=Fi/qi.试求Ei.[输入格式]输入文件force.in包含一个整数n,接下来n行每行输入一个数,第i行表示qi.[输出格式]输出文件force.out有n行,第i行输出Ei.与标准答案误差不超过1e-2即可.[样例输入]54006373.88518415375036.4357591717456.4691448514941.0049121410681.345880[样例输出]-16838672.6933439.7937509018.566…
问题描述 离散傅立叶变换在信号处理中扮演者重要的角色.利用傅立叶变换,可以实现信号在时域和频域之间的转换. 对于一个给定的长度为n=2m (m为整数) 的复数序列X0, X1, …, Xn-1,离散傅立叶变换将得到另一个长度为n的复数序列Y0, Y1, …, Yn-1.其中 Yi=X0+X1wi+ X2w2i+ X3w3i+…+ Xn-1w(n-1)i 其中w=e2πI/n=cos(2π/n)+I sin(2π/n),称为旋转因子,其中I为虚数单位,I2= –1. 给定输入序列X,请输出傅立叶变…
Problem Description Calculate A * B. Input Each line will contain two integers A and B. Process to end of file. Note: the length of each integer will not exceed 50000. Output For each case, output A * B in one line. Sample Input 1 2 1000 2 Sample Out…
题目链接 [BZOJ] [洛谷] 题解 首先我们需要对这个式子进行化简,否则对着这么大一坨东西只能暴力... \[F_i=\sum_{j<i} \frac{q_iq_j}{(i-j)^2}-\sum_{j>i} \frac{q_iq_j}{(i-j)^2}\] 根据题目给出的定义,带入\(E\)中 \[E_i=\sum_{j=1}^{i-1}\frac{q_j}{(i-j)^2}-\sum_{j=i+1}^{n}\frac{q_j}{(j-i)^2}\] 形式稍微改变了一下,本质一样 需要处理…
..退化为一天两题了,药丸.. [题目大意] 给出n根木棍的长度,求从其中取出3根能组成三角形的概率. [思路] 然后枚举求前缀和,枚举最长边.假设最长边为l,先求出所有两边之和大于它的情况数.然后减去两边都大于它的情况以及一大一小的情况. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<complex> #include<…
[题目大意] 给出n位十进制a和b,求a*b. [思路] FFT.感觉弄起来比较麻烦,不如直接背板子. 注意一下MAXN的取值,我一开始非常随意地就写了60000*2+50,其实n是要扩展到最接近的2的次幂的,所以要取到2^17 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<complex> #include<cmath&…