2015 Multi-University Training Contest 1_A(hdu 5288)
2016-07-20 21:53
507 查看
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=5288
题解:题目意思是让你求所有不同区间中对于i不是因子的个数,不懂可以手动测试案例试一下。按照一般想法一定会超时的,我们换个思路,求对于每个值,有多少区间可以达到没有其因子。对于此,我们可以查找左边最远能到达的不是因子的值x,和右边最远能到达的不是因子的值y,其值为x*y+x+y+1(或者为(x+1) * (y+1))。
贴上ac代码:
此代码是条理清晰,我根据他人代码打的,比起我的代码好多了。
http://acm.hdu.edu.cn/showproblem.php?pid=5288
题解:题目意思是让你求所有不同区间中对于i不是因子的个数,不懂可以手动测试案例试一下。按照一般想法一定会超时的,我们换个思路,求对于每个值,有多少区间可以达到没有其因子。对于此,我们可以查找左边最远能到达的不是因子的值x,和右边最远能到达的不是因子的值y,其值为x*y+x+y+1(或者为(x+1) * (y+1))。
贴上ac代码:
#include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f typedef long long LL; const double PI = acos(-1.0); const int mod = 1e9+7; const int N = 100100; int n,m; int a ; int l ; int r ; int mark ; int main() { while(~scanf("%d",&n)) { memset(mark,0,sizeof(mark)); memset(r,0,sizeof(r)); memset(l,0,sizeof(l)); LL ans = 0; for(int i = 1; i <= n; i++) { scanf("%d",&a[i]); r[i] = n+1; for(int j = a[i]; j < 10010; j += a[i]) { if(mark[j]) { r[mark[j]] = i; mark[j] = 0; } } mark[a[i]] = i; } memset(mark,0,sizeof(mark)); for(int i = n; i >= 1; i--) { for(int j = a[i]; j < 10010; j += a[i]) { if(mark[j]) { l[mark[j]] = i; mark[j] = 0; } } mark[a[i]] = i; } for(int i = 1; i <= n; i++) { ans = (ans + (LL)(i - r[i])*(LL)(l[i] - i)%mod)%mod; } printf("%I64d\n",ans); } return 0; }
此代码是条理清晰,我根据他人代码打的,比起我的代码好多了。
相关文章推荐
- 注意:MainActivity的oncreate方法里不要再inflate布局了(MainActivity里的点击事件无响应)
- HDU 5729 Rigid Frameworks (from: 2016 Multi-University Training Contest)
- 2016 Multi-University Training Contest 1-1004---HDU 5726 GCD
- UVA - 10494 If We Were a Child Again
- 【CF 578D】LCS again
- 2016 Multi-University Training Contest 1 Abandoned country
- 2016 Multi-University Training Contest 1-1001---HDU 5723 Abandoned country(DFS+最小生成树)
- DDD领域驱动设计(Domain Driven Design)(转)
- HDU 5724 Chess(2016 Multi-University Training Contest 1的1002题)
- HDU 5029 Relief grain(恶心的树链剖分 + 线段树)
- 【Poj】-1363-Rails(栈)
- 2016 Multi-University Training Contest 1 1006 PowMod
- Climbing Stairs
- Fail-Fast机制详解
- HDU 5723 Abandoned country(2016 Multi-University Training Contest 1的1001题)
- HDU 5726 GCD (2016 Multi-University Training Contest 1)
- HDU 4300 Clairewd’s message
- HDU5729 2016 Multi-University Training Contest 1 (dp+连通图)
- Ajax请求response下显示failed to load response data
- 绘制基础知识-canvas paint