BZOJ 3513 idiots】的更多相关文章

题目传送门 分析: FFT一手统计两根棍子相加的方案 然后一个值2S可能会被同一根S自己乘自己得到 然后要减去 其次,A+B和B+A会被算成两种方案,所以还要除以2 然后不太好算合法的方案数,但是非法的很好算 直接减去小于S的所有方案数乘以长度为S的棍子数就好了.. 疯狂卡常2333 #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> #define maxn 5000…
bzoj 3513: [MUTC2013]idiots FFT 链接 bzoj 思路 参考了学姐TRTTG的题解 统计合法方案,最后除以总方案. 合法方案要不好统计,统计不合法方案. \(a+b<=c\)的个数 f[i]是i出现的个数 g[i]表示a+b=i的个数,a<=b 这个可以fft加速到\(nlogn\)统计. 具体的,fft算出ff的卷积,减去自己自己的贡献,然后/2就是了g[i]. 不合法方案数就是:\(\sum f[i]*g[i]\) 最终答案是\(ans=\frac{C_n^3…
3513: [MUTC2013]idiots Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 476  Solved: 162[Submit][Status][Discuss] Description 给定n个长度分别为a_i的木棒,问随机选择3个木棒能够拼成三角形的概率. Input 第一行T(T<=100),表示数据组数. 接下来若干行描述T组数据,每组数据第一行是n,接下来一行有n个数表示a_i. 3≤N≤10^5,1≤a_i≤10^5 Ou…
[MUTC2013]idiots Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 806  Solved: 265[Submit][Status][Discuss] Description 给定n个长度分别为a_i的木棒,问随机选择3个木棒能够拼成三角形的概率. Input 第一行T(T<=100),表示数据组数. 接下来若干行描述T组数据,每组数据第一行是n,接下来一行有n个数表示a_i. 3≤N≤10^5,1≤a_i≤10^5 Output T…
Description 给定n个长度分别为a_i的木棒,问随机选择3个木棒能够拼成三角形的概率. Input 第一行T(T<=100),表示数据组数. 接下来若干行描述T组数据,每组数据第一行是n,接下来一行有n个数表示a_i. 3≤N≤10^5,1≤a_i≤10^5 Output T行,每行一个整数,四舍五入保留7位小数. Sample Input 2 4 1 3 3 4 4 2 3 3 4 Sample Output 0.5000000 1.0000000 HINT T<=20 N<…
想了好长时间最后发现真是石乐志 第一反应就是两边之和大于第三边,但是这个东西必须要满足三次-- 任意的两边之和合通过生成函数套路+FFT求出来(记得去掉重复选取的),然后这任意两边之和大于任意第三边可以用一个前缀和求得(同样记得去重,前缀和里面一定包含前两条边),这样我们就得到了任意两边之和大于任意第三边的组数(这里是算顺序的,(1,2,3)(2,1,3)要算两遍) 然后考虑任意选三条边方案数(算顺序),是\( 6*C_n^3 \),注意到不符合要求的三条边一定是满足两次两边之和大于第三边的,所…
写在前面的.. 感觉自己是应该学点新东西了.. 所以就挖个大坑,去学FFT了.. FFT是个啥? 挖个大坑,以后再补.. 推荐去看黑书<算法导论>,讲的很详细 例题选讲 1.UOJ #34. 多项式乘法 这是FFT最裸的题目了 FFT就是拿来求这个东西的 没啥好讲的,把板子贴一下吧.. #include <cstdio> #include <cstring> #include <cstdlib> #include <algorithm> #inc…
http://www.lydsy.com/JudgeOnline/problem.php?id=3513 组成三角形的条件:a+b>c 其中,a<c,b<c 若已知 两条线段之和=i 的方案数g[i] 线段长度>i的 线段数量 t[i] 答案是否可以表示为 Σ g[i]*t[i] ? 不能,因为 有c是最大的数的限制 去掉c是最大数的限制: 不能组成三角形的条件:a+b<=c 其中,a<c,b<c 在这里,满足条件的c一定是abc中最大的 所以解题思路是 求出不能…
网络流/最小割 Orz Hzwer 这类大概是最小割建模中的经典应用吧…… 黑白染色,然后反转黑色的技巧感觉很巧妙!这个转化太神奇了…… /************************************************************** Problem: 2132 User: Tunix Language: C++ Result: Accepted Time:0 ms Memory:6252 kb ***********************************…
两种版本的题面 Description 最近房地产商GDOI(Group of Dumbbells Or Idiots)从NOI(Nuts Old Idiots)手中得到了一块开发土地.据了解,这块土地是一块矩形的区域,可以纵横划分为N×M块小区域.GDOI要求将这些区域分为商业区和工业区来开发.根据不同的地形环境,每块小区域建造商业区和工业区能取得不同的经济价值.更具体点,对于第i行第j列的区域,建造商业区将得到Aij收益,建造工业区将得到Bij收益.另外不同的区域连在一起可以得到额外的收益,…