【题目分析】

  题目的意思是在一个数列中找到四个数,a[i]=a[j]<a[k]=a[l],其他都扯淡。

  先把这些数sort一下,所有相等的数字就都排在一起了,然后这个数列可以按照数字的种类划分成一些段,每一段的数字都是相同的(1 1 4 4 5 5 6 12 12 12) ,每一个段和他后面的段都可以组成满足题目条件的答案。而每个段中的选择方式又有len^2种,我们维护一个前缀和数组sum[i]记录从第一段到第i段的每段组合数的和

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int mo=1e9+;
const int maxn=1e6+;
int n;
int a[maxn],num[maxn],sum[maxn];
int ans;
int x;
int main()
{
// freopen("program.in","r",stdin);
// freopen("program.out","w",stdout);
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
sort(a+,a+n+);
for(int i=;i<=n;i++)
num[i]=;
for(int i=;i<=n;i++)
{
if(a[i]!=a[i-])
x++;
num[x]++;
}
for(int i=;i<=x;i++)
num[i]=(num[i]*num[i])%mo;
for(int i=;i<=x;i++)
sum[i]=sum[i-]+num[i];
for(int i=;i<x;i++)
ans=(ans+num[i]*(sum[x]-sum[i]))%mo;
cout<<ans;
fclose(stdin);fclose(stdout);
return ;
}

program的更多相关文章

  1. [project euler] program 4

    上一次接触 project euler 还是2011年的事情,做了前三道题,后来被第四题卡住了,前面几题的代码也没有保留下来. 今天试着暴力破解了一下,代码如下: (我大概是第 172,719 个解出 ...

  2. Solved: “Cannot execute a program. The command being executed was \roslyn\csc.exe”

    When you publish your ASP.NET project to a hosting account such as GoDaddy, you may run into the iss ...

  3. 关于The C compiler "arm-none-eabi-gcc" is not able to compile a simple test program. 的错误自省...

    在 GCC ARM Embedded https://launchpad.net/gcc-arm-embedded/ 上面下载了个arm-none-eabi-gcc 用cmake 编译时 #指定C交叉 ...

  4. c中使用gets() 提示warning: this program uses gets(), which is unsafe.

    今天在C代码中使用gets()时提示“warning: this program uses gets(), which is unsafe.”,然后这个程序还能运行,无聊的我开始查阅资料,为啥gets ...

  5. Unable to load R3 module D:\Program Files\Oracle\VirtualBox/VBoxDD.DLL (VBoxDD): GetLastError=1790 (VERR_UNRESOLVED_ERROR).

    Unable to load R3 module D:\Program Files\Oracle\VirtualBox/VBoxDD.DLL (VBoxDD): GetLastError=1790 ( ...

  6. Git for Windows - The Program can't start because libiconv2.dll is missing

    今天在新装的win10 预览版上面,发现git不能启动了,提示信息主要是: The Program can't start because libiconv2.dll is missing 于是我在网 ...

  7. C:\Program Files (x86)\Common Files\microsoft shared\DevServer\10.0

    C:\Program Files (x86)\Common Files\microsoft shared\DevServer\10.0

  8. Program.cs

    Program.cs using System; namespace HelloWorld { class Program { [STAThread] static void Main(string[ ...

  9. sudo: no tty present and no askpass program specified(转)

    sudo: no tty present and no askpass program specified 2012-11-30 09:30 5040人阅读 评论(1) 收藏 举报 修改sudo配置文 ...

  10. 委托的例子,from C# advanced program

    class BubbleSorter { static public void Sort<T>(IList<T> sortArray, Func<T, T, bool&g ...

随机推荐

  1. SpringMvc项目分析

    首先在配置文件中配置一个视图解析器,视图解析器规定了视图解析的规则,即controller处理请求之后,返回给DispatcheServlet一个字符串(也可能是ModelAndView之类的),而D ...

  2. 常见http代码错误原因及处理

    常见的HTTP错误可以分为以下四大类.每一大类又细分为很多类小错误.当您打不开网站或者打开网站报错时首先检查您输入的网站是否有误,检查网络是否有问题或者虚拟主机的DNS是否可以解析.确定没有问题时再看 ...

  3. webpack 无法安装

    命令行输入:  npm install webpack -g 解决办法:增加环境变量  D:\nine\trunk\node_modules\.bin\ bin目录下有webpack.cmd 如果还是 ...

  4. zw版【转发·台湾nvp系列Delphi例程】HALCON InpaintingCt1

    zw版[转发·台湾nvp系列Delphi例程]HALCON InpaintingCt1 unit Unit1;interfaceuses Windows, Messages, SysUtils, Va ...

  5. zw版【转发·台湾nvp系列Delphi例程】HALCON 3D Position Of Circles

    zw版[转发·台湾nvp系列Delphi例程]HALCON 3D Position Of Circles procedure TForm1.action();var ho_Image, ho_Elli ...

  6. 利用curl并发来提高页面访问速度

    在我们平时的程序中难免出现同时访问几个接口的情况,平时我们用curl进行访问的时候,一般都是单个.顺序访问,假如有3个接口,每个接口耗时500毫 秒那么我们三个接口就要花费1500毫秒了,这个问题太头 ...

  7. hadoop之输入输出格式

    <STRONG>jobConf.setInputFormat(MyInputFormat. class ); InputFormat:</STRONG> TextInputFo ...

  8. html规范总结

    这个链接有规范的html 描述:http://nec.netease.com/standard 相关链接: 1. http://www.zhangxinxu.com/wordpress/2010/09 ...

  9. redmine plugin

    http://wangsheng2008love.blog.163.com/blog/static/78201689200992064615770/

  10. 如何通过ps -ef|grep tomcat只获得你需要的查询进程,排除掉grep本身的进程信息

    执行命令:ps -ef|grep tomcat|grep /opt/upay3/application/dispatcherTomcat/bin输出的进程信息会显示2个:包括grep本身的进程+你查询 ...