bx值

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)

Problem Description
对于一个n个数的序列a1,a2,...,an

,从小到大排序之后为ap1,ap2,...,apn

,定义它的bx值为满足api≠api−1

+1,1<i<=n的i 的个数。
给定n个数的一个排列,你需要计算它所有连续子序列的bx值之和。

 
Input
输入第一行包括一个正整数T,表示数据组数。
对于每组数据,第一行一个整数n,第二行n个整数,表示n个数的一个排列。

1 <= T= < 20
1 <= n <= 100000
1 <= ai

<= n

 
Output
对每组数据输出一个整数表示答案。
 
Sample Input
2
3
1 2 3
4
3 1 4 2
 
Sample Output
0
5
分析:思维题。用总对数减去不符合条件的对数即可;
   而不符合条件的必定是大小连续的两个数;
   标记连续大小的两个数位置posx<posy,答案减去posx*(n-posy+1),因为包含这两个数的串都要答案减1;
代码:
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstdlib>
  4. #include <cmath>
  5. #include <algorithm>
  6. #include <climits>
  7. #include <cstring>
  8. #include <string>
  9. #include <set>
  10. #include <bitset>
  11. #include <map>
  12. #include <queue>
  13. #include <stack>
  14. #include <vector>
  15. #include <cassert>
  16. #include <ctime>
  17. #define rep(i,m,n) for(i=m;i<=(int)n;i++)
  18. #define mod 1000000007
  19. #define inf 0x3f3f3f3f
  20. #define vi vector<int>
  21. #define pb push_back
  22. #define mp make_pair
  23. #define fi first
  24. #define se second
  25. #define ll long long
  26. #define pi acos(-1.0)
  27. #define pii pair<int,int>
  28. #define sys system("pause")
  29. #define ls rt<<1
  30. #define rs rt<<1|1
  31. #define all(x) x.begin(),x.end()
  32. const int maxn=1e5+;
  33. const int N=5e2+;
  34. using namespace std;
  35. ll gcd(ll p,ll q){return q==?p:gcd(q,p%q);}
  36. ll qmul(ll p,ll q,ll mo){ll f=;while(q){if(q&)f=(f+p)%mo;p=(p+p)%mo;q>>=;}return f;}
  37. ll qpow(ll p,ll q,ll mo){ll f=;while(q){if(q&)f=qmul(f,p,mo)%mo;p=qmul(p,p,mo)%mo;q>>=;}return f;}
  38. int n,m,k,t,pos[maxn];
  39. int main()
  40. {
  41. int i,j;
  42. while(~scanf("%d",&t))
  43. {
  44. while(t--)
  45. {
  46. scanf("%d",&n);
  47. rep(i,,n)scanf("%d",&j),pos[j]=i;
  48. ll ret=;
  49. rep(i,,n)ret+=1LL*(n-i+)*(i-);
  50. rep(i,,n-)ret-=1LL*min(pos[i],pos[i+])*(n-max(pos[i],pos[i+])+);
  51. printf("%I64d\n",ret);
  52. }
  53. }
  54. return ;
  55. }

bx值的更多相关文章

  1. 2017华南理工华为杯H bx值(容斥问题)

    题目描述 对于一个nnn个数的序列 a1,a2,⋯,ana_1,a_2,\cdots,a_na​1​​,a​2​​,⋯,a​n​​,从小到大排序之后为ap1,ap2,⋯,apna_{p_1},a_{p ...

  2. 2017杭电ACM集训队单人排位赛 - 6

    2017杭电ACM集训队单人排位赛 - 6 排名 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 59 1 X X 1 1 X X 0 1 ...

  3. DOS程序员手册(十四)

    附录A ASCII字符集 十进制        十六进制      二进制              AscII         控制        按键 X10         X16        ...

  4. DOS程序员手册(十二)

    DOS可安全使用 610页 在DOS控制台I/O操作进行轮询循环时,有规律地调用中断,以便允许终止 并驻留(TSR)程序(如适用于DOS的实用程序PRINT.COM),知道它可安全 地使用文件操作和其 ...

  5. 【自制操作系统06】终于开始用 C 语言了,第一行内核代码!

    一.整理下到目前为止的流程图 写到这,终于才把一些苦力活都干完了,也终于到了我们的内核代码部分,也终于开始第一次用 c 语言写代码了!为了这个阶段性的胜利,以及更好地进入内核部分,下图贴一张到目前为止 ...

  6. YOLOv4全文阅读(全文中文翻译)

    YOLOv4全文阅读(全文中文翻译) YOLOv4: Optimal Speed and Accuracy of Object Detection 论文链接: https://arxiv.org/pd ...

  7. arm汇编进入C函数分析,C函数压栈,出栈,传参,返回值

    环境及代码介绍 环境和源码 由于有时候要透彻的理解C里面的一些细节问题,所有有必要看看汇编,首先这一切的开始就是从汇编代码进入C的main函数过程.这里不使用编译器自动生成的这部分汇编代码,因为编译器 ...

  8. wpf comboBox取值问题

    这是获取值后台代码 private void button1_Click(object sender, RoutedEventArgs e)        {            combBox = ...

  9. 7.5 [bx+idata] 书中错误

    这节中的问题 7.1 有错误 题目和我自己的注释为: 用 Debug 查看内存,结果如下: 2000:1000 BE 00 06 00 00 00 ... 写出下面程序执行后,ax,bx,cx中的内容 ...

随机推荐

  1. maven+ssm+oracle实现简单的增删改查

    首先看一下项目结构 第一步先导入jar包 pom.xml <properties> <spring.version>4.3.18.RELEASE</spring.vers ...

  2. Java基础学习经验分享

    很多人学习Java,尤其是自学的人,在学习的过程中会遇到各种各样的问题以及难点,有时候卡在一个点上可能需要很长时间,因为你在自学的过程中不知道如何去掌握和灵活运用以及该注意的点.下面我整理了新手学习可 ...

  3. idea ssm项目移包报错问题

    写完代码之后发现包结构太乱了  想要规划一下  结果报错 这里面的包路径都可以点进去,还是报找不到com.lf.company.entity.Business 后来发现是 在移动前和移动后都存在这个m ...

  4. linux命令(006) -- w

    w命令用于显示已经登陆系统的用户列表,并显示用户正在执行的指令.执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序.单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户 ...

  5. the interview questions of sql server

    1.一道SQL语句面试题,关于group by 表内容: 2005-05-09 胜 2005-05-09 胜 2005-05-09 负 2005-05-09 负 2005-05-10 胜 2005-0 ...

  6. Spring Cloud (4) 服务消费者-Feign

    Spring Cloud Feign Spring Cloud Feign 是一套基于Netflix Feign实现的声明式服务调用客户端.它使得编写Web服务客户端变得更加简单,我们只需要创建接口并 ...

  7. P2639 [USACO09OCT]Bessie的体重问题Bessie's We…

    题目描述 Bessie像她的诸多姊妹一样,因为从Farmer John的草地吃了太多美味的草而长出了太多的赘肉.所以FJ将她置于一个及其严格的节食计划之中.她每天不能吃多过H (5 <= H & ...

  8. Android 获取android安装apk框的安装状态(如点击取消、返回)

    最近鼓捣android,碰到个问题,因为没有root权限,需要调用Intent安装apk,但需要获取用户是否安装了(如,用户点击了返回或取消),查了很多文章,最后可以解决,但有瑕疵,解决方法如下: p ...

  9. 实现X*N

    #include<iostream> using namespace std; double foo(int n,double x) { if(1==n) { return x; } el ...

  10. Android 使用MySQL直接访问数据库

    在实际项目中,一般很少直接访问MySQL数据库,一般情况下会通过http请求将数据传送到服务端,然后在服务端连接mysql数据库. 在android 中,会通过使用Jdbc 连接MySQL 服务器 p ...