hdu 5885 XM Reserves (FFT建模)】的更多相关文章

Problem Description As an eligible Ingress Resistance Agent you should know your power source, the Exotic Matter.We call it XM, which is the driving force behind all of our actions in Ingress.XM allows us to construct items through hacking portals, t…
XM Reserves Time Limit: 10000/10000 MS (Java/Others)    Memory Limit: 102400/102400 K (Java/Others)Total Submission(s): 99    Accepted Submission(s): 45 Problem Description As an eligible Ingress Resistance Agent you should know your power source, th…
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5142 NPY and FFT Description A boy named NPY is learning FFT algorithm now.In that algorithm,he needs to do an operation called "reverse".For example,if the given number is 10.Its binary representai…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4609 题意:给出n个正整数(数组A).每次随机选出三个数.问这三个数能组成三角形的概率为多大? 思路:求出有多少种选择的方案,除以总选择方案即可.用num[i]表示长度为i的出现几次. 对于样例1 3 3 4,我们得到num={0,1,0,2,1}, 对num求卷积,得到:num={0,0,1,0,4,2,4,4,1}.此时的num[i]表示选择两个数和为i的选择方案的种数. 但是这里有重复的: (…
题目链接 dp[n] = sigma(a[i]*dp[n-i]), 给出a1.....an, 求dp[n]. n为1e5. 这个式子的形式显然是一个卷积, 所以可以用fft来优化一下, 但是这样也是会超时的. 所以可以用cdq分治来优化. cdq分治就是处理(l, mid)的时候, 将dp[l]...dp[mid]对dp[mid+1]...dp[r]做的贡献都算出来. #include <bits/stdc++.h> using namespace std; #define pb(x) pus…
题意:给定 n 条边,问随机选出 3 条边,能组成三角形的概率是多少. 析:答案很明显就是  能组成三角形的种数 / (C(n, 3)).现在的问题是怎么求能组成三角形的种数. 这个博客说的非常清楚了... https://www.cnblogs.com/kuangbin/archive/2013/07/24/3210565.html 总体来说就是把边长转换成下标,然后再根据组合数,就可以知道选出两条边,长度为 i 有多少种情况,然后再减去重复的,最后再枚举斜边,就可以解决这个问题了. 代码如下…
A * B Problem Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 26874    Accepted Submission(s): 7105 Problem Description Calculate A * B.   Input Each line will contain two integers A and B.…
这是我接触的第一个关于FFT的题目,留个模板. 这题的题解见:http://www.cnblogs.com/kuangbin/archive/2013/07/24/3210565.html. FFT的模板如下: #include<bits/stdc++.h> using namespace std; ; struct Complex { double x,y; Complex(,) :x(_x),y(_y) {} Complex operator + (Complex &tt) { r…
题目链接 题意:从N个数中,选出三个两两不同的数,求这三个数能够作为一个三角形的三边长的概率. 题解:用一个数组num[]记录大小为 i 的数出现的次数,通过 num[] 卷 num[] 得到 num2[],用 num2[i] 表示从N个数中选两个数,这两个数的和为 i 的情况数.然后考虑对三角形的计数,正向不易得到ans,可以考虑三个数不能构成三角形的情况数,那么可以对所有的非法情况根据其中最大一个数来进行分类.最后总的情况数 sum=sigma{ a[i]*presum_num2[i] }…
吐槽: 群O的不是很舒服 不知道自己应该干嘛 怎样才能在团队中充分发挥自己价值 一点都不想写题 理想中的情况是想题丢给别人写 但明显滞后 一道题拖沓很久 中途出岔子又返回来搞 最放心的是微软微软妹可以随便丢 有几个小盆友也比较靠谱 还有几个小盆友一开始有点担心 后来都做的挺棒 写题的选择上很尴尬 会写的别人也会 要么队内都不会 结果大概是写了一些板子题 感觉到了比较艰难的阶段 有些题是要我学着去写的 不会写没有突破 1001 I Count Two Three AC by ctr 指数不会很大,…