牛客练习赛7 E 珂朵莉的数列
珂朵莉的数列
思路:
树状数组+高精度
离散化不知道哪里写错了,一直wa,最后用二分写的离散化
哪位路过大神可以帮我看看原来的那个离散化错在哪里啊
通过代码:
import java.math.BigInteger; import java.util.*; import java.util.Scanner;class node {int x;int id; } class cmp implements Comparator<node> {public int compare(node A,node B){if(A.x<B.x)return -1;else if(A.x==B.x)return 0;else return 1;} } public class Main{public final static int N=(int)1e6+9;public static int n;public static int a[]=new int[N];public static long b[]=new long[N];public static long bit[]=new long[N];public static long sum(int x){long ret=0;while(x>0){ret+=bit[x];x-=x&(-x);}return ret;}public static void add(int x,long a){while(x<=n){bit[x]+=a;x+=x&(-x);}}public static void main(String[] args) {Scanner reader = new Scanner(System.in);n=reader.nextInt();for(int i=1;i<=n;i++){a[i]=reader.nextInt();b[i]=a[i];}Arrays.sort(b,1,n+1);for(int i = 1; i <= n; i++) {a[i] = Arrays.binarySearch(b, 1 ,n + 1,a[i]);}BigInteger ans=BigInteger.valueOf(0);for(int i=1;i<=n;i++){ans=ans.add(BigInteger.valueOf((sum(n)-sum(a[i]))*(n-i+1)));add(a[i],i);}System.out.println(ans);} }
错误代码:
import java.math.BigInteger; import java.util.*; import java.util.Scanner;class node {int x;int id; } class cmp implements Comparator<node> {public int compare(node A,node B){if(A.x<B.x)return -1;else if(A.x==B.x)return 0;else return 1;} } public class Main{public final static int N=(int)1e6+9;public static int n;public static node a[]=new node[N];public static int b[]=new int[N];public static long bit[]=new long[N];public static long sum(int x){long ret=0;while(x>0){ret+=bit[x];x-=x&(-x);}return ret;}public static void add(int x,long a){while(x<=n){bit[x]+=a;x+=x&(-x);}}public static void main(String[] args) {Scanner reader = new Scanner(System.in);n=reader.nextInt();for(int i=1;i<=n;i++){a[i]=new node();a[i].x=reader.nextInt();a[i].id=i;}// Arrays.sort(a,1,n+1,new cmp());int cnt=1;a[0]=new node();a[0].x=-1;for(int i=1;i<=n;i++){if(a[i].x!=a[i-1].x)b[a[i].id]=++cnt;else b[a[i].id]=cnt;}//for(int i=1;i<=n;i++)System.out.println(b[i]);BigInteger ans=BigInteger.valueOf(0);for(int i=1;i<=n;i++){ans=ans.add(BigInteger.valueOf((sum(cnt)-sum(b[i]))*(n-i+1)));add(b[i],i);}System.out.println(ans);} }
转载于:https://www.cnblogs.com/widsom/p/7955793.html
牛客练习赛7 E 珂朵莉的数列相关推荐
- 牛客练习赛9 B - 珂朵莉的值域连续段
题目描述 珂朵莉给你一个有根树,求有多少个子树满足其内部节点编号在值域上连续 一些数在值域上连续的意思即其在值域上构成一个连续的区间 输入描述: 第一行有一个整数n,表示树的节点数.接下来n–1行,每 ...
- 牛客练习赛56 小魂和他的数列
小魂和他的数列 题目链接 题目大意 给出一个数列,让求长度为k的严格递增子序列有多少个 怎么做呢? 显然dp 这个是很好想的 for (int i= 1; i <= n; i ++ ){dp[i ...
- 搜索+思维 珂朵莉的值域连续段
珂朵莉的值域连续段 链接:https://www.nowcoder.com/acm/contest/40/B 来源:牛客网 题目描述 珂朵莉给你一个有根树,求有多少个子树满足其内部节点编号在值域上连续 ...
- 一种黑科技:珂朵莉树
首先要明白的是:珂朵莉树(ODT)是一种用来骗分的暴力数据结构. 珂朵莉树的思想是利用集合set,把相同且连续的元素合并为一个个区间,从而进行区间修改:因此,珂朵莉树是区间的集合,这点可以通过定义结构 ...
- 珂朵莉的约数(牛客练习赛9)
链接:https://www.nowcoder.com/acm/contest/40/F 来源:牛客网 珂朵莉给你一个长为n的序列,有m次查询 每次查询给两个数l,r 设s为区间[l,r]内所有数的乘 ...
- 牛客每日练习----珂朵莉与宇宙,Forever97与寄信,Number
大提琴的声音就像一条河,左岸是我无法忘却的回忆,右岸是我值得紧握的璀璨年华,中间流淌的,是我年年岁岁淡淡的感伤 链接:https://ac.nowcoder.com/acm/problem/14600 ...
- 牛客练习赛9。 B 柯朵莉的值域连续端
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 珂朵莉给你一个有根树,求有多少个子树满足其 ...
- 牛客练习赛6 珂学送分2
链接:https://ac.nowcoder.com/acm/contest/26/E 来源:牛客网 题目描述 珂...珂...珂朵莉给你出了一道送分题: 给你一个长为n的序列{vi},和一个数a,你 ...
- 数据结构 【树状数组】【线段树】【珂朵莉树】
一.区间合并 1.AcWing245你能回答这些问题吗 分析: 线段树.维护四个变量,即可实现区间合并. mx 区间最大连续子段和 mx_l 以区间左端点为左界的最大连续字段和 mx_r 以区间左端点 ...
最新文章
- ACL 2019年度回顾:自然语言处理发展趋势
- python模块的函数_Python模块及函数的使用
- Ruby之旅—Ruby的Hello World
- vue+django前后端项目部署
- ​深度学习基础 | Seq2seq+Attention
- JQuery EasyUI 之 messager基本使用
- Wap Push Access Protocol(PAP)介绍-开放源码
- exfat linux 驱动_「正点原子Linux连载」第二章Ubuntu系统入门(2)
- 什么是tftp服务器? 如何搭建tftp服务器?
- 【MongoDB】索引属性 之 唯一索引
- 第六章 用正三和弦为含跳进旋律配和声
- JAVA超简单输名字骂人_骂人不带脏字的网名非常有趣
- 更改WSL Docker 镜像目录 减少C盘占用
- Oracle SPARC T5-2 服务器:硬件规格
- 计算机显示器模糊,电脑显示器模糊是怎么回事?
- 2014年计算机求职总结--准备篇 (顺便也带点自己在美国准备的总结吧)
- mysql的cpu使用率突然增高_mysql cpu使用率过高解决方法
- FBX BlendShape/Morph动画解析
- imx6ul 16 之DDR
- shell 脚本如何判断文件是否存在
热门文章
- 参考基因组中的特殊序列
- 机器学习:范数及代码实现
- Cadvisor源码分析监控项
- 在ASP.NET MVC应用中开发插件框架(中英对照)
- js类数组转数组的方法(ArrayLike)
- How to Enable Trace or Debug for APIs executed as SQL Script Outside of the Applications ?
- 北京集训:20180323
- 在centos下启动nginx出现Failed to start nginx.service:unit not found
- (九)洞悉linux下的Netfilteramp;iptables:网络地址转换原理之DNAT
- 基于软件开发对嵌入式开发的思考