[杂题] HDU5288: OO’s Sequence
来源:互联网 发布:linux主目录是什么 编辑:程序博客网 时间:2024/05/18 07:32
显然是考虑一个数的贡献。我们相当于要对于每个数
注意到这个想借助调和级数搞的话,复杂度是不太对的,因为
复杂度
#include<cstdio>#include<vector>#include<cstring>#include<algorithm>using namespace std;const int maxn=100005,maxv=10005,MOD=1e9+7;typedef long long LL;int n,a[maxn],pos[maxv],L[maxn],R[maxn];LL ans;vector<int> dv[maxv];int main(){ freopen("hdu5288.in","r",stdin); freopen("hdu5288.out","w",stdout); for(int i=1;i<=10000;i++) for(int j=i;j<=10000;j+=i) dv[j].push_back(i); while(scanf("%d",&n)==1){ for(int i=1;i<=n;i++) scanf("%d",&a[i]); memset(pos,0,sizeof(pos)); memset(L,0,sizeof(L)); for(int i=1;i<=n;i++){ for(int j=0;j<dv[a[i]].size();j++) L[i]=max(L[i],pos[dv[a[i]][j]]); pos[a[i]]=i; } for(int i=1;i<=10000;i++) pos[i]=n+1; memset(R,63,sizeof(R)); for(int i=n;i>=1;i--){ for(int j=0;j<dv[a[i]].size();j++) R[i]=min(R[i],pos[dv[a[i]][j]]); pos[a[i]]=i; } ans=0; for(int i=1;i<=n;i++) (ans+=(LL)(i-L[i])*(R[i]-i)%MOD)%=MOD; printf("%lld\n",ans); } return 0;}
阅读全文
0 0
- [杂题] HDU5288: OO’s Sequence
- HDU5288 OO’s Sequence
- HDU5288 OO’s Sequence
- hdu5288 OO’s Sequence
- 搜索 - hdu5288 OO’s Sequence
- HDU5288 OO’s Sequence 二分
- hdu5288(2015多校1)OO’s Sequence
- HDU5288 OO’s Sequence(暴力枚举)
- 解题报告 之 HDU5288 OO' s Sequence
- HDU5288:OO’s Sequence(思维)
- hdu5288 OO’s Sequence 二分 多校联合第一场
- 2015 Multi-University Training Contest 1 Hdu5288 OO’s Sequence
- HDU5288.OO’s Sequence(多校第一题)
- hdu5288 OO’s Sequence(质因子分解+二分)
- 2015 Multi-University Training Contest 1OO’s Sequence hdu5288
- HDU5288 OO’s Sequence(序列的整除对数计数) 多校赛1最水题
- 2015年多校联合训练第一场OO’s Sequence(hdu5288)
- OO’s Sequence
- 消息映射的实现
- 函数安全
- 进程通信
- 自定义View
- Intellij IDEA中serialVersionUID配置
- [杂题] HDU5288: OO’s Sequence
- C++多态的笼统解释
- Shadowsocks安装及配置
- dataguard异机安装从库时遇到的几个问题及解决方法
- python设计模式(享元模式)
- L
- iBatis中RowHandler处理大数据量的导出
- tf.name_scope and tf.variable_scope
- 关于Android通过webview与js交互的方法