HDU 5875 Function 2016 ACM/ICPC Asia Regional Dalian Online
来源:互联网 发布:aws windows vpn 配置 编辑:程序博客网 时间:2024/04/28 01:11
一个小的数mod大于它的数等于它本身,考虑从左往右遍历,但是要每次跳过比它大的那些数,直接指向它右边第一个比它小的。
显然这样做的这样复杂度是不定的……最坏的情况还是O(logNM),即所有的数据都是降序且余数一直递减。为什么是logN,如果a>=b,a%b<=a/2,所以是2^n递减的,谢谢2楼评论的提醒……。
【代码】
<span style="font-size:14px;">/* ***********************************************Author :angon************************************************ */#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <stack>#include <vector>#include <queue>#include <set>#include <map>#include <string>#include <math.h>#include <stdlib.h>#include <time.h>using namespace std;#define showtime fprintf(stderr,"time = %.15f\n",clock() / (double)CLOCKS_PER_SEC)#define lld %I64d#define REP(i,k,n) for(int i=k;i<n;i++)#define REPP(i,k,n) for(int i=k;i<=n;i++)#define scan(d) scanf("%d",&d)#define scanl(d) scanf("%I64d",&d)#define scann(n,m) scanf("%d%d",&n,&m)#define scannl(n,m) scanf("%I64d%I64d",&n,&m)#define mst(a,k) memset(a,k,sizeof(a))#define LL long long#define N 100005#define mod 1000000007const int INF = 0x3f3f3f3f;int a[N],r[N];int main(){ //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); int T; scan(T); while(T--) { int n; scan(n); REPP(i,1,n) scan(a[i]); mst(r,INF); for(int i=n-1;i>=1;i--) { int k = i+1; while(1) { if(a[i]>a[k]) { r[i] = k; break; } if(r[k]==INF) break; k = r[k]; } } int q; scan(q); while(q--) { int x,y; scann(x,y); int ans = a[x]; x = r[x]; while(x <= y) { ans %= a[x]; if(ans == 0) break; x = r[x]; } printf("%d\n",ans); } } return 0;}</span>
0 0
- HDU 5875 Function 2016 ACM/ICPC Asia Regional Dalian Online
- HDU 5875 Function 2016 ACM/ICPC Asia Regional Dalian Online
- hdu 5875 2016 ACM/ICPC Asia Regional Dalian Online 1008
- hdu 5875 2016 ACM/ICPC Asia Regional Dalian Online 1008
- HDU 5875 Function(二分区间+RMQ)——2016 ACM/ICPC Asia Regional Dalian Online
- HDU 5875 Function 【倍增】 (2016 ACM/ICPC Asia Regional Dalian Online)
- 2016 ACM/ICPC Asia Regional Dalian Online 1008 Function
- 2016 ACM/ICPC Asia Regional Dalian Online
- 2016 ACM/ICPC Asia Regional Dalian Online
- 2016 ACM/ICPC Asia Regional Dalian Online Sparse Graph(BFS)
- 2016 ACM/ICPC Asia Regional Dalian Online Football Games
- 2016 ACM/ICPC Asia Regional Dalian Online Friends and Enemies
- 2016 ACM/ICPC Asia Regional Dalian Online(2题)
- 2016 ACM/ICPC Asia Regional Dalian Online 1007
- 【题解】 2016 ACM/ICPC Asia Regional Dalian Online (2+5)
- 2016 ACM/ICPC Asia Regional Dalian Online 大连网赛
- 2016 ACM/ICPC Asia Regional Dalian Online分析
- 2016 ACM/ICPC Asia Regional Dalian Online 1006 football game 1007 hdu 5873 hdu 5874
- (五)ArcGIS Server之发布网络分析服务
- 对操作系统的一般理解
- HTML5 基础(003_Indexed Database_2)
- effective stl 第17条: 使用“swap 技巧”除去多余的容量
- Ajax传输Json和xml数据
- HDU 5875 Function 2016 ACM/ICPC Asia Regional Dalian Online
- 7.6 SCodeForces 622CNot Equal on a Segment
- hdu5726 GCD(map+线段树)
- Android 消息处理机制1(从源码分析)
- ubuntu下卸载opencv
- nanopi m2开发板 mount:Read-only file system Android手机不能挂载读写,终极解决方案
- taglib cvc-complex-type.2.4.a: Invalid content was found starting with element 'taglib'.
- LeetCode 318 Maximum Product of Word Lengths
- android studio 常见错误