博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小Z的袜子(hose) HYSBZ - 2038(莫队)
阅读量:5297 次
发布时间:2019-06-14

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

小Z的袜子(hose)

 莫队经典

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #define LL long long 7 using namespace std; 8 const int maxn = 50010; 9 LL gcd(LL a, LL b){10 return b == 0 ? a : gcd(b, a % b);11 }12 struct Qry{13 LL l, r, pos, id;14 LL a, b;15 bool operator < (const Qry &a)const{16 if(pos == a.pos) return r < a.r;17 return l < a.l;18 }19 }q[maxn];20 LL c[maxn], s[maxn];21 LL ans;22 void update(LL p, LL v){23 ans += 2 * v * s[c[p]] + 1;24 s[c[p]] += v;25 }26 bool cmp(Qry x, Qry y){27 return x.id < y.id;28 }29 void solve(LL n, LL m){30 LL l = 1, r = 0;31 ans = 0;32 for(LL i = 0; i < m; i++){33 while(l < q[i].l) update(l++, -1);34 while(l > q[i].l) update(--l, 1);35 while(r > q[i].r) update(r--, -1);36 while(r < q[i].r) update(++r, 1);37 if(q[i].l == q[i].r) {q[i].a = 0; q[i].b = 1; continue;}38 q[i].a = ans - (q[i]. r - q[i]. l + 1);39 q[i].b = (q[i]. r - q[i]. l + 1) * (q[i].r - q[i].l);40 LL g = gcd(q[i].a, q[i].b);41 q[i].a /= g; q[i].b /= g;42 }43 sort(q, q + m, cmp);44 }45 46 int main(){47 LL n, m;48 while(scanf("%lld %lld", &n, &m) != EOF){49 memset(s, 0, sizeof s);50 for(LL i = 1; i <= n; i++){51 scanf("%lld", &c[i]);52 }53 LL SZ = sqrt(n * 1.0);54 for(LL i = 0; i < m; i++){55 scanf("%lld %lld", &q[i].l, &q[i].r);56 q[i].id = i;57 q[i].pos = (q[i].l - 1) / SZ + 1;58 }59 sort(q, q + m);60 solve(n, m);61 for(LL i = 0; i < m; i++) printf("%lld/%lld\n", q[i].a, q[i].b);62 }63 }
View Code

 

转载于:https://www.cnblogs.com/yijiull/p/8350283.html

你可能感兴趣的文章
canvas制作饼图和环形图,使用Excanvas兼容IE67
查看>>
这,才是有本事的男人
查看>>
C语言中定义全局变量
查看>>
linux中使sqlplus能够上下翻页
查看>>
ORACLE创建函数,调用函数
查看>>
PHP + Apche 在 window 系统下的环境搭建
查看>>
MDK5引脚仿真
查看>>
ajax 小练习
查看>>
ajax传值修改数据
查看>>
系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式
查看>>
15个nosql数据库
查看>>
source insight3.5 字体
查看>>
Kendo UI开发教程(26): 单页面应用(四) Layout
查看>>
ios7毛玻璃效果实现
查看>>
Oracl数据库管理方面的资料(查询sga,查看oracle数据库名称sid,查看oracle数据库名称,查看表空间,修改表空间名称)...
查看>>
mobx react
查看>>
Windows Phone 7你不知道的8件事
查看>>
Eclipse配置Maven
查看>>
无责任Windows Azure SDK .NET开发入门篇二[使用Azure AD 进行身份验证--2.1使用Azure AD需要了解几个概念]...
查看>>
python字符串函数总结
查看>>