Solution -「香港网络赛 2016」A+B Problem
Description
Link.
给出一个长度为 \(n\) 的序列 \(a\),问有序三元组 \((a_{i},a_{j},a_{k})\) 使得 \(i\neq j\neq k\) 且 \(a_{i}+a_{j}=a_{k}\) 的数量。
Solution
发现这个值域有说头,于是设 \(F(x)=\sum_{i=1}^{n}x^{a_{i}}\)。
然后求出 \(F^{2}(x)\),判断一通就好了。
主要是记录一下这种多项式题的常用 trick,把值域小的整成多项式或者生成函数一类的。
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
namespace Poly
{
typedef complex<double> comp;
typedef vector<complex<double> > poly;
#define len(x) (LL((x).size()))
const double bh_pi=acos(-1);
LL lim,rev[400010];
void fft(poly &f,LL op)
{
for(LL i=0;i<lim;++i) if(i<rev[i]) swap(f[i],f[rev[i]]);
for(LL len=2;len<=lim;len<<=1)
{
comp bas(cos(2*bh_pi/len),op*sin(2*bh_pi/len));
for(LL fr=0;fr<lim;fr+=len)
{
comp now(1,0);
for(LL ba=fr;ba<fr+(len>>1);++ba,now*=bas)
{
comp tmp=now*f[ba+(len>>1)];
f[ba+(len>>1)]=f[ba]-tmp;
f[ba]+=tmp;
}
}
}
if(op==-1) for(LL i=0;i<lim;++i) f[i]/=lim;
}
poly mulself(poly f)
{
LL n=(len(f)<<1)-1; lim=1;
while(lim<n) lim<<=1;
for(LL i=0;i<lim;++i) rev[i]=(rev[i>>1]>>1)|((i&1)?(lim>>1):0);
f.resize(lim),fft(f,1);
for(LL i=0;i<lim;++i) f[i]*=f[i];
fft(f,-1),f.resize(n);
return f;
}
}using namespace Poly;
LL n,mx,nzr,tmp[400010],a[400010],ans;
const LL lay=50000;
int main()
{
scanf("%lld",&n);
poly f(100001);
for(LL i=1,x;i<=n;++i)
{
scanf("%lld",&x);
mx=max(mx,lay+x);
f[lay+x]=comp(f[lay+x].real()+1,0);
nzr+=(x==0),a[i]=x;
}
++mx;
f.resize(mx);
f=mulself(f);
for(LL i=0;i<len(f);++i) tmp[i]=LL(f[i].real()+0.49);
for(LL i=1;i<=n;++i) --tmp[(lay+a[i])<<1];
for(LL i=1;i<=n;++i)
{
ans+=tmp[a[i]+(lay<<1)];
if(a[i]) ans-=(nzr<<1);
else ans-=((nzr-1)<<1);
}
printf("%lld\n",ans);
return 0;
}
Solution -「香港网络赛 2016」A+B Problem的更多相关文章
- 2016 acm香港网络赛 A题. A+B Problem (FFT)
原题地址:https://open.kattis.com/problems/aplusb FFT代码参考kuangbin的博客:http://www.cnblogs.com/kuangbin/arch ...
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 The Heaviest Non-decreasing Subsequence Problem
Let SS be a sequence of integers s_{1}s1, s_{2}s2, ......, s_{n}snEach integer is is associ ...
- 2016 acm香港网络赛 C题. Classrooms(贪心)
原题网址:https://open.kattis.com/problems/classrooms Classrooms The new semester is about to begin, and ...
- 2016 acm香港网络赛 F题. Crazy Driver(水题)
原题网址:https://open.kattis.com/problems/driver Crazy Driver In the Linear City, there are N gates arra ...
- 2016 acm香港网络赛 B题. Boxes
原题网址:https://open.kattis.com/problems/boxes Boxes There are N boxes, indexed by a number from 1 to N ...
- Solution -「NOI 模拟赛」彩色挂饰
\(\mathcal{Description}\) 给定一个含 \(n\) 个点 \(m\) 条边的简单无向图,设图中最大点双的大小为 \(s\),则保证 \(s\le6\).你将要用 \(k\) ...
- Solution -「NOI 模拟赛」出题人
\(\mathcal{Description}\) 给定 \(\{a_n\}\),求一个 \(\{b_{n-1}\}\),使得 \(\forall x\in\{a_n\},\exists i,j\ ...
- Solution -「树上杂题?」专练
主要是记录思路,不要被刚开始错误方向带偏了 www 「CF1110F」Nearest Leaf 特殊性质:先序遍历即为 \(1 \to n\),可得出:叶子节点编号递增或可在不改变树形态的基础上调整为 ...
- Solution -「SV 2020 Round I」SA
\(\mathcal{Description}\) 求出处 owo. 给定一个长度为 \(n\),仅包含小写字母的字符串 \(s\),问是否存在长度为 \(n\),仅包含小写字母的字符串 \( ...
- Solution -「SV 2020 Round I」「SRM 551 DIV1」「TC 12141」SweetFruits
\(\mathcal{Description}\) link. 给定 \(n\) 个水果,每个结点可能有甜度 \(v_i\),或不甜(\(v_i=-1\)).现在把这些水果串成一棵无根树.称一 ...
随机推荐
- 【一步步开发AI运动小程序】十一、人体关键点跳跃追踪
随着人工智能技术的不断发展,阿里体育等IT大厂,推出的"乐动力"."天天跳绳"AI运动APP,让云上运动会.线上运动会.健身打卡.AI体育指导等概念空前火热.那 ...
- Python的Lambda函数: 一把极简编程的瑞士军刀
Python中的lambda函数,或者叫匿名函数,是一个极其强大的工具.它以简洁.优雅的语法提供了创建函数的快速方式.在本篇文章中,我们将全方位地深入研究lambda函数的用法和特点,通过理论和实例相 ...
- 2023-06-12:如果一个正整数自身是回文数,而且它也是一个回文数的平方,那么我们称这个数为超级回文数。 现在,给定两个正整数 L 和 R (以字符串形式表示), 返回包含在范围 [L, R] 中
2023-06-12:如果一个正整数自身是回文数,而且它也是一个回文数的平方,那么我们称这个数为超级回文数. 现在,给定两个正整数 L 和 R (以字符串形式表示), 返回包含在范围 [L, R] 中 ...
- youtobe深度学习推荐系统-学习笔记
简介 前言 本文是Deep Neural Networks for YouTube Recommendations 论文的学习笔记.淘宝的召回模型曾经使用过这篇论文里面的方案,后续淘宝召回模型升级到了 ...
- Python运维开发之路《数据类型》
一. python数据类型 python的五大基本数据类型,数字.字符串.列表.元组.字典;其他数据类型,类型type.Null.文件.集合.函数/方法.类.模块. 1.数字 1 ①整型 2 十进制转 ...
- vivo 自研鲁班分布式 ID 服务实践
作者:vivo IT 平台团队- An Peng 本文介绍了什么是分布式ID,分布式ID的业务场景以及9种分布式ID的实现方式,同时基于vivo内部IT的业务场景,介绍了自研鲁班分布式ID服务的实践. ...
- PostgreSQL 性能优化: 执行计划
查询计划 扫描结点 顺序扫描 索引扫描 只用索引的扫描 位图堆扫描 位图索引扫描 公共表表达式的扫描 自定义扫描 外表扫描 函数结果扫描 子查询扫描 表样本扫描 行地址扫描 行集合扫描 工作表扫描 连 ...
- Mybatis-SQL分析组件
背景 大促备战,最大的隐患项之一就是慢sql,带来的破坏性最大,也是日常工作中经常带来整个应用抖动的最大隐患,而且对sql好坏的评估有一定的技术要求,有一些缺乏经验或者因为不够仔细造成一个坏的sql成 ...
- HCL实验:1.两台PC通过交换机ping通
实验整体的拓扑图 进行交换机配置 配置好PC的ip netmask gatework 接口管理为启用状态 开启SW1 连接的端口 (一般来说是默认打开的,但有时候会自动关闭,很烦,所以最好加上这步) ...
- 在行情一般的情况下,就说说23级应届生如何找java工作
Java应届生找工作,不能单靠背面试题,更不能在简历中堆砌和找工作关系不大的校园实践经历,而是更要在面试中能证明自己的java相关商业项目经验.其实不少应届生Java求职者不是说没真实Java项目经验 ...