博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
「PKUSC2018」星际穿越
阅读量:6619 次
发布时间:2019-06-25

本文共 1709 字,大约阅读时间需要 5 分钟。

Solution 

倍增

Code 

#include 
#define reg register#define ll long longusing namespace std;int read() { int x = 0, f = 1; char ch = getchar(); while (ch < '0' || ch > '9') { if (ch == '-') f = -1; ch = getchar(); } while (ch <= '9' && ch >= '0') { x = (x << 1) + (x << 3) + ch - '0'; ch = getchar(); } return x * f;}const int MN = 3e5 + 5;int gcd(int x, int y) { return !y ? x : gcd(y, x % y); }int N, l[MN];int p[MN][20], v[MN][20];int cal(int L, int x) { if (L == x) return 0; if (L >= l[x]) return x - L; int r = x - L, step = 0, i; for (x = l[x], i = 18; ~i; --i) if (p[x][i] >= L) { r += v[x][i] + (x - p[x][i]) * step; step += 1 << i; x = p[x][i]; } r += (x - L) * (step + 1); return r;}int main() { N = read(); reg int i, j; for (l[1] = 0, i = 2; i <= N; ++i) l[i] = read(); for (p[N][0] = l[N], i = N - 1; i; --i) p[i][0] = min(l[i], p[i + 1][0]); for (j = 1; j <= 18; ++j) for (i = 1; i <= N; ++i) if (p[i][j - 1]) p[i][j] = p[p[i][j - 1]][j - 1]; for (i = 1; i <= N; ++i) v[i][0] = i - p[i][0]; for (j = 1; j <= 18; ++j) for (i = 1; i <= N; ++i) if (p[i][j]) v[i][j] = v[i][j - 1] + v[p[i][j - 1]][j - 1] + (p[i][j - 1] - p[i][j]) * (1 << (j - 1)); int Q = read(), L, R, x; while (Q--) { L = read(), R = read(), x = read(); int P = cal(L, x) - cal(R + 1, x), q = R - L + 1; int g = gcd(P, q); printf("%d/%d\n", P / g, q / g); } return 0;}


Blog来自PaperCloud,未经允许,请勿转载,TKS!

转载于:https://www.cnblogs.com/PaperCloud/p/10910133.html

你可能感兴趣的文章
AspNetPager分页控件配置
查看>>
第 8 章 Spring Data
查看>>
[裴礼文数学分析中的典型问题与方法习题参考解答]5.1.24
查看>>
C语言 编程练习22题
查看>>
CloudDBA现场助力双十一
查看>>
虚拟现实技术或会产生副作用
查看>>
【云图】如何设置微信里的全国实体店地图?
查看>>
李开复谈未来工作:虽然会被AI取代,但谁说人类非得工作不可?
查看>>
Intercom的持续部署实践:一天部署100次,1次10分钟
查看>>
阿里云中间件技术 促进互联网高速发展
查看>>
智能时代悄然到来 物联网称王将引爆传感器产业
查看>>
中小企业如何成功转型跨境电商
查看>>
《ANTLR 4权威指南》——2.5 语法分析树监听器和访问器
查看>>
02_JNI中Java代码调用C代码,Android中使用log库打印日志,javah命令的使用,Android.mk文件的编写,交叉编译...
查看>>
《Greenplum企业应用实战》一第1章 Greenplum简介1.1 Greenplum的起源和发展历程
查看>>
开源世界已成围城:成本让企业蜂拥而来,也让企业退缩转投
查看>>
《Python编程快速上手——让繁琐工作自动化》——1.4 在变量中保存值
查看>>
想改进你的卷积神经网络?看看这14种设计模式!
查看>>
安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(六)
查看>>
[LeetCode]--100. Same Tree
查看>>