hdu5288 多校
2015-07-22 15:10
148 查看
题意:f(l,r)表示i的数量,i满足(l=
[code]#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define ll long long const int mod=1000000000+7; const int ma=100000+10; int n,a[ma]; int l[ma],r[ma],dp[ma],da[ma]; int main() { while(cin>>n) { for(int i=1;i<=n;i++) cin>>a[i]; memset(dp,0,sizeof(dp)); memset(da,0,sizeof(da)); for(int i=0;i<ma;i++) {l[i]=0;r[i]=n+1;} int j; for(int i=1;i<=n;i++) { if(dp[a[i]])l[i]=dp[a[i]]; j=1; while(j*a[i]<=10000){dp[j*a[i]]=i;j++;} } for(int i=n;i>0;i--) { if(da[a[i]])r[i]=da[a[i]]; j=1; while(j*a[i]<=10000) { da[j*a[i]]=i; j++; } } ll ans=0; for(int i=1;i<=n;i++) { ans=(ans+(r[i]-i)*(i-l[i]))%mod; } cout<<ans<<endl; } return 0; }
相关文章推荐
- iOS开发经验
- 解决端口占用
- location.hash属性介绍
- java List 排序
- Nessus旧版本与新版本的配置区别
- GRE写作必备句型
- Java并发编程实践
- Hibernate3学习笔记(11)——Hibernate事务处理
- dubbo zookeeper初探
- 程序运行时间
- Ogre中控制HLSL参数
- 嵌入式系统HAL原理与BSP的实现方法
- 小胖说事30------iOS 强制转成横屏的方式
- 2015 Multi-University Training Contest 1 - 1009 Annoying problem
- list用法
- java工具类(1)ResourceBundle
- Search Insert Position
- MongoDB学习——持续更新
- Qt之界面实现技巧
- hdu 2430 Beans