首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
HDU5875
】的更多相关文章
HDU5875:Function
题目链接: Function 分析: icpccamp里的方法不会,我用了一个nex[]数组存储当前点ai需要取模的下一个点aj的编号j,如果aj>ai,就不用遍历. 时间为920ms 代码: #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ],nex[]; int main() { for(scanf("%d",&t);t--;)…
HDU5875
Function Time Limit: 7000/3500 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 399 Accepted Submission(s): 151 Problem Description The shorter, the simpler. With this problem, you should be convinced of this tru…
hdu-5875
题目大意: f(l,r)=a[l] l==r f(l,r)=f(l,r-1)%a[r] l<r 思路: 由此可以推出f(l,r)=a[l]%a[l+1]%a[l+2]%....%a[r] 根据取余的性质,只要后面取余的数不小于前面的数值不会改变,因此我们只要记录比a[l]小的第一个数,假如为a[x]然后接着找比a[x]小的第一个数 记为a[y] 如此一直找下去直到a[r] 代码如下: #include<iostream> #include<cstdio> #includ…
HDU5875 Function
题意:给定序列,有m个区间的询问,求每个询问a[l]%a[l+1]...%a[r]后的值.(N<=10^5) 思路:这题如果使用线段树,可能会由于姿势和卡常数原因TLE,由于数据好像比较奇怪(?),可以使用比较蠢的方法水过.可知一个数x被不大于它的数模后一定会小于x/2的,故可以先对原序列处理出每个数下一个小于等于它的数的位置,每次进行跳转即可. 其实更好的做法是SparseTable+二分或者使用离线维护set求解. /** @Date : 2016-11-19-16.07 * @Author…
2016 ACM/ICPC Asia Regional Dalian Online
1009 Sparse Graph(hdu5876) 由于每条边的权值都为1,所以最短路bfs就够了,只是要求转置图的最短路,所以得用两个set来维护,一个用来存储上次扩散还没访问的点,一个用来存储这一次扩散还没访问的点. 算法:bfs+set #include<iostream> #include<cstdio> #include<algorithm> #include<string.h> #include<queue> #include<…