spoj TSUM - Triple Sums fft+容斥
题目链接
首先忽略 i < j < k这个条件。
那么我们构造多项式
\]
显然答案就是 $ A^3(x) $中 $ x^S $的系数。
现在我们考虑容斥:
- $ (\sum_{}x)^3 = \sum_{}x^3 + 3\sum_{}x^2 y + 6\sum_{}xyz $
- $ (\sum_{}x^2)(\sum_{}x) = \sum_{}x^3 + \sum_{}x^2 y $
- $ (\sum_{}x)^3 = \sum_{}x^3 \(
<br>
<br>
由上面三个式子 我们可以推导出<br><br>
\) \sum_{}xyz = \frac {(\sum_{}x)^3 - 3(\sum_{}x^2)(\sum_{}x) + 2\sum_{}x^3}{6} $
1式中的系数3, 是因为相当于从3个(x+y+z)中选2个x和一个y, 那么就是$ C_3^2 \cdotp C_1^1 $
6 就是选一个x一个y一个z, 显然是 $ C_3^1 \cdotp C_2^1 $
然后问题就解决了, 套fft模板就好。
第一次用markdown还有点小激动。
```C++
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define pb(x) push_back(x)
#define ll long long
#define mk(x, y) make_pair(x, y)
#define lson l, m, rt cmx;
typedef pair pll;
const double PI = acos(-1.0);
const double eps = 1e-8;
const int mod = 1e9+7;
const int inf = 1061109567;
const int dir[][2] = { {-1, 0}, {1, 0}, {0, -1}, {0, 1} };
const int maxn = 2e5+5;
int c[maxn], val[maxn], a[maxn], b[maxn];
cmx x[maxn], y[maxn];
void change(cmx x[], int len) {
int i, j, k;
for(i = 1, j = len/2; i = k) {
j -= k;
k /= 2;
}
if(j >n;
for(int i = 0; i
spoj TSUM - Triple Sums fft+容斥的更多相关文章
- SPOJ TSUM Triple Sums(FFT + 容斥)
题目 Source http://www.spoj.com/problems/TSUM/ Description You're given a sequence s of N distinct int ...
- BZOJ.3771.Triple(母函数 FFT 容斥)
题目链接 \(Description\) 有\(n\)个物品(斧头),每个物品价值不同且只有一件,问取出一件.两件.三件物品,所有可能得到的价值和及其方案数.\((a,b),(b,a)\)算作一种方案 ...
- 【BZOJ 3771】 3771: Triple (FFT+容斥)
3771: Triple Time Limit: 20 Sec Memory Limit: 64 MBSubmit: 547 Solved: 307 Description 我们讲一个悲伤的故事. ...
- BZOJ 3771: Triple(FFT+容斥)
题面 Description 我们讲一个悲伤的故事. 从前有一个贫穷的樵夫在河边砍柴. 这时候河里出现了一个水神,夺过了他的斧头,说: "这把斧头,是不是你的?" 樵夫一看:&qu ...
- HDU 4609 3-idiots FFT+容斥
一点吐槽:我看网上很多分析,都是在分析这个题的时候,讲了半天的FFT,其实我感觉更多的把FFT当工具用就好了 分析:这个题如果数据小,统计两个相加为 x 的个数这一步骤(这个步骤其实就是求卷积啊),完 ...
- Spoj 8372 Triple Sums
题意:给你n个数字,对于任意s,s满足\(s=u_i+u_j+u_k,i<j<k\),要求出所有的s和对应满足条件的i,j,k的方案数 Solution: 构造一个函数:\(A(x)=\s ...
- 【XSY2753】Lcm 分治 FWT FFT 容斥
题目描述 给你\(n,k\),要你选一些互不相同的正整数,满足这些数的\(lcm\)为\(n\),且这些数的和为\(k\)的倍数. 求选择的方案数.对\(232792561\)取模. \(n\leq ...
- SPOJ - TSUM 母函数+FFT+容斥
题意:n个数,任取三个加起来,问每个可能的结果的方案数. 题解:构造母函数ABC,比如现在有 1 2 3 三个数.则 其中B表示同一个数加两次,C表示用三次.然后考虑去重. A^3表示可重复地拿三个. ...
- SPOJ:Triple Sums(母函数+FFT)
You're given a sequence s of N distinct integers.Consider all the possible sums of three integers fr ...
随机推荐
- NPOI导出为Excel文件
1.添加引用 2.将ExcelRender.cs和SqlHelper.cs两个类拷贝到App_Code文件夹下 3.写后台代码 eg:根据部门和日期导出成绩表 /// <summary> ...
- Apache 日志配置,包含过滤配置
最近排查支付宝交易成功后异步通知执行失败的原因,需要查看Apache的日志,发现之前一直没对日志进行设置,结果日志文件都1.5G多了,于是搜索了如何按天记录日志. 但公司的网站是通过阿里云的SLB分发 ...
- HTML 5 JavaScript初步 编译运行.doc
编译运行 解释运行 JavaScript:只有一种变量类型,var.数据类型:整型,小数,字符串,布尔型 1.如何把数值型字符串变成数字型: parseInt("字符串")——把字 ...
- python基础之 re(正则表达式)模块学习
今天学习了Python中有关正则表达式的知识.关于正则表达式的语法,不作过多解释,网上有许多学习的资料.这里主要介绍Python中常用的正则表达式处理函数. re.match re.match 尝试从 ...
- 删除数组中等于某个key的所有元素
题目描述: 给定一个数组和一个值,在原地删除与值相同的数字,返回新数组的长度. 这道题目做暴力的想法就是,用一个指针从头到尾遍历,删除哪个元素就把后面的元素统一向前移动一个位置.但是这样的时间复杂度很 ...
- Maven管理Android项目1
maven-android-plugin网站:https://code.google.com/p/maven-android-plugin/wiki/GettingStarted android ...
- java改变图片文件尺寸
package test.common; import java.awt.Graphics; import java.awt.Image; import java.awt.image.Buffered ...
- 非GUI-Qt程序运行后显示Console(简单好用)
----我的生活,我的点点滴滴!! 有很多时候,我们在程序中添加了好Debug信息,方便程序在运行期间打印出一些我们需要的信息或者,想用他来显示一些必要信息时, 那么console就太重要了,曾几何时 ...
- docker 数据管理<1>
1. 挂载本地的目录到容器里: docker run -itd -v /data/:/data1 centos bash // -v 用来指定挂载目录, :前面的/data为本地目录,:后面的/dat ...
- ecshop的小总结
1 为防止非法调用自己的页面,在被包含页面加上: if (!defined('IN_ECS')) {die('Hacking attempt'); } 2 在主动包含页面要定义define('IN_ ...