hdu 5288 OO’s Sequence(15多校第一场1001)
来源:互联网 发布:域名虚拟主机哪家好 编辑:程序博客网 时间:2024/06/08 03:43
//15多校第一场 1001 暴力//若有多数需要求因子,且数的范围较小,可以考虑预处理#include<cstdio>#include<algorithm>#include<vector>using namespace std;const int N=100100;int a[N];vector<int>f[10010],vec[10010];const long long M=1000000007;int n;#define MAX(a,b) a<b?b:a#define MIN(a,b) a<b?a:btypedef long long LL;void init(){ for(int i=1;i<=10000;i++) for(int j=1;j*i<=10000;j++) f[i*j].push_back(i);}LL find(int pos,int ai){ int l=0,r=n+1; for(int i=0;i<f[ai].size();i++){ int fac=f[ai][i]; for(int j=0;j<vec[fac].size();j++){ if(vec[fac][j]<pos){ if(l<vec[fac][j])l=vec[fac][j]; } if(vec[fac][j]>pos){ if(vec[fac][j]<r)r=vec[fac][j]; } } } return (LL)(r-pos)*(pos-l)%M;}int main(){ init(); while(scanf("%d",&n)!=EOF){ for(int i=0;i<=10000;i++) vec[i].clear();//从1到10000清零 for(int i=1;i<=n;i++){ scanf("%d",&a[i]); vec[a[i]].push_back(i);//每一个ai的位置 } long long sum=0; for(int i=1;i<=n;i++){ sum=(sum+find(i,a[i])%M)%M; } printf("%lld\n",sum); } return 0;}
0 0
- 2015多校第一场 hdu 5288 OO’s Sequence
- 【多校第一场】【筛法改】HDU 5288 OO’s Sequence
- hdu 5288 OO’s Sequence(15多校第一场1001)
- 多校第一场 1001 hdu 5288 OO’s Sequence(枚举)
- HDU 5288 OO’s Sequence(多校第一场1001)
- HDU 5288 OO's sequence (2015多校第一场 二分查找)
- hdu 5288 OO’s Sequence(2015多校第一场第1题)枚举因子
- hdu5288 OO’s Sequence 二分 多校联合第一场
- 【思路题】【多校第一场】【1001.OO’s Sequence】
- OO’s Sequence(多校第一场A题)
- 最后一场多校 hdu 5288 OO’s Sequence
- hdu 5288OO’s Sequence
- hdu 5288 OO’s Sequence
- hdu 5288 OO’s Sequence
- hdu 5288 OO’s Sequence
- hdu 5288 OO’s Sequence
- HDU 5288 OO’s Sequence
- hdu 5288 OO’s Sequence
- 获取想要格式的时间 simpledateformat
- 【iOS开发之Objective-C】书签管理器项目
- Spring注解注入
- IOS使用Charts
- 类内代码执行顺序
- hdu 5288 OO’s Sequence(15多校第一场1001)
- uva11404(数论_三角形计数)
- 223 Rectangle Area
- ubuntu 查找文件方法,个人笔记
- 数据库的唯一标示符(ID)的选择
- Longest Substring Without Repeating Characters
- WPF 后台Render线程崩溃, Exception from HRESULT: 0x88980406
- linux scp 命令
- 字典