首页 > 其他分享 >UVA1428 Ping pong

UVA1428 Ping pong

时间:2022-10-25 12:32:13浏览次数:60  
标签:rt UVA1428 rs int tree Ping siz query pong


题目链接:​​传送门​

权值比较小
直接建主席树
询问区间内小于等于一个数的数的个数
和大于等于一个数的个数
乘起来

#include <bits/stdc++.h>
#define
#define

using namespace std;
typedef long long ll;
int T, n, a[A], cnt, rt[A];
#define
#define
struct node {int l, r; ll siz;} tree[A * 5];
void insert(int l, int r, int L, int x, int &y) {
tree[y = ++cnt] = tree[x]; tree[y].siz++;
if (l == r) return;
int mid = (l + r) >> 1;
if (L <= mid) insert(l, mid, L, ls(x), ls(y));
else insert(mid + 1, r, L, rs(x), rs(y));
}
ll query_small(int l, int r, int L, int x, int &y) {
if (l == r) return tree[y].siz - tree[x].siz;
int mid = (l + r) >> 1, w = tree[ls(y)].siz - tree[ls(x)].siz;
if (L <= mid) return query_small(l, mid, L, ls(x), ls(y));
else return query_small(mid + 1, r, L, rs(x), rs(y)) + w;
}
ll query_big(int l, int r, int L, int x, int &y) {
if (l == r) return tree[y].siz - tree[x].siz;
int mid = (l + r) >> 1, w = tree[rs(y)].siz - tree[rs(x)].siz;
if (L <= mid) return query_big(l, mid, L, ls(x), ls(y)) + w;
else return query_big(mid + 1, r, L, rs(x), rs(y));
}

int main(int argc, char const *argv[]) {
cin >> T;
while (T--) {
memset(rt, 0, sizeof rt);
memset(tree, 0, sizeof tree); cnt = 0;
cin >> n; ll ans = 0;
for (int i = 1; i <= n; i++) cin >> a[i], insert(1, 100000, a[i], rt[i - 1], rt[i]);
for (int i = 1; i <= n; i++){
ans += query_small(1, 100000, a[i], rt[0], rt[i - 1]) * query_big(1, 100000, a[i], rt[i], rt[n]);
ans += query_big(1, 100000, a[i], rt[0], rt[i - 1]) * query_small(1, 100000, a[i], rt[i], rt[n]);
}
cout << ans << endl;
}
return 0;
}


标签:rt,UVA1428,rs,int,tree,Ping,siz,query,pong
From: https://blog.51cto.com/lyle/5794493

相关文章

  • windows网络只有一方ping不通
    打开防火墙->点击高级设置点击入站规则,找到文件和打印机共享-和(Pv4-In)有关的都启用......
  • 永久解决flannel网络ping不通的问题5
    永久解决flannel网络ping不通的问题5  这个网络调通是临时的,只要你把这个机器关了在开,网又不通了,因为这个docker默认规则把它拒绝了。如下图所示,所以说这个是临时的......
  • ping dl.google的服务配置
    在开发android应用时候,需要解决与google配置的问题:除了打开防火墙的配置。接着就是DNS的配置:DNS的配置如下:DNS配置如下:这里并不影响IP的获取:效果如下: ......
  • 江苏工匠杯unseping(反序列化+Linux命令执行{$(printf '\154\163')})
    <?phphighlight_file(__FILE__);classease{private$method;private$args;function__construct($method,$args){$this->method=$m......
  • es建mapping转移数据碰到的小乌龙
    项目要上线,本地es存储数据,需要搬到服务器上,于是要创建mapping,reindex迁移数据。一套操作下来后发现后台的查询,排序等功能全部都报400,错误提示中有设置fileds为true的建议......
  • @PostMapping和@GetMapping用法详解
    publicclassApplyObject{privateStringid;privateStringname;}1、使用post方法调用前端传递参数如果是一个object的话,如{id:'1',name:'2222'}后......
  • 青少年训练平台--PingMe
    第一步:先看题目题目描述:就只是一个ping功能第二步:获取flag打开链接,看见就是一个ping功能,我们先试一下127.0.0.1|ls 出来两个phpflag.phpindex.php 我们......
  • set集合的union()函数 跟 typing.Union
     一、set的union()方法1.描述union()方法返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次  2.语法set.union(set1,set2...)set1--必......
  • FTP文件上传 报错:451 No mapping for the Unicode character exists in the target mu
    前置:报错场景:文件上传至Ftp服务器报错条件:文件名中的中文个数为单数  解决办法: 1.打开控制面板-“Internet”-Web管理工具-IIS管理控制台的FTP设置界......
  • 网络篇 PING不同回环地址,外网地址可以
    场景   现场服务器IP地址:68.56.19.146,Windows系统部署MySQL服务,访问数据库出现异常ping网络状态分析   询问网络同事,被告知是网关限制了自身IP地址的PING,与此同......