嵊州D2T1

“我只是来打个电话”

精神病院有一个这样的测试。

给出一个正整数集合,集合中的数各不相同,然后要求病人回答: 其中有多少个数,恰好等于集合中另外两个(不同的)数之和?

回答正确的人,即可以出院。

但是,条件是苛刻的—— 一秒。

直到变成废墟前,也没有人从中逃出。

但是如今不同了。

对吧?

Input

共两行,第一行包含一个整数 n,表示测试题中给出的正整数个数。

第二行有 n 个正整数,每两个正整数之间用一个空格隔开,表示测试题中给出的正整数。

Output

一个整数,表示测验题答案。

Examples

telephone.in telephone.out

4 1 2 3 4 2

Notes

对于所有数据,满足 3 ≤ n ≤ 5000,给出的正整数不超过 10000。

Task1[50%]

n ≤ 100

Task2[100%]

无特殊限制


Solve!

这道题,我想出来的方法还是蛮多的。

O(n^3)的暴力枚举(10分!)

// 我的方法
sort(jh+,jh+n+,cmp);//从小到大sort排序
for(int k=;k<=n;k++)因为k要是两个数的和,所以它至少是第三个数吧?
{
for(int i=;i<=k;i++){
if(jh[i]==jh[k]) continue;
for(int j=i+;j<=k;j++){
if(k==j||jh[i]==jh[j]) continue;
if(jh[k]==jh[i]+jh[j]) out++;
}
} }

O(log2 n/*???*/)的二分法(后来有个不知名的原因做不出来)

我就直接在这里说最后的AC方法吧

要用两个数组:

int jh[MAXN], f[MAXN];

其中jh(集合)就是用来存你输入的数组的

f则是用来存有可能的和的(用1/0表示)

step1

两层循环,枚举所有的两数之和

step2

再从1开始扫描,遇到1(true)就out++;

没了!

#include<bits/stdc++.h>
using namespace std;
const int MAXN=;
int jh[MAXN], f[MAXN];
//bool cmp(int x,int y){return x<y?true:false;}
int main(){
//freopen("telephone.in","r",stdin);
//freopen("telephone.out","w",stdout);
int n; scanf("%d",&n);
int out=;
int jh[n+];
for(int i=;i<=n;i++) scanf("%d",&jh[i]);
bool f[MAXN];
memset(f,,sizeof(f));
for(int i=;i<=n;i++)
for(int j=;j<=i-;j++)
f[jh[i]+jh[j]]=;
for(int i=;i<=n;i++)
if(f[jh[i]]) out++;
printf("%d",out);
return ;
}

OK!

嵊州D2T1 “我只是来打个电话”的更多相关文章

  1. nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证

    http模块内部封装了http服务器和客户端,因此Node.js不需要借助Apache.IIS.Nginx.Tomcat等传统HTTP服务器,就可以构建http服务器,亦可以用来做一些爬虫.下面简单介 ...

  2. Mono for Android—初体验之“电话拨号器”

    1.Main.axml文件: <?xml version="1.0" encoding="utf-8"?><LinearLayout xmln ...

  3. Android无需申请权限拨打电话

    Android打电话有两种实现方法: 第一种方法,拨打电话跳转到拨号界面.源代码如下: Intent intent = new Intent(Intent.ACTION_DIAL); Uri data ...

  4. ContentProvider中央档案馆,以及获取联系人电话的示例

    Android官方文档介绍的数据存储方式共有五种,sqlite,SharedPreferences,网络存储,外储存储,文件存储,但是这些数据都无法进行共享,那么我们就引入了今天的主角:Content ...

  5. [LeetCode] Design Phone Directory 设计电话目录

    Design a Phone Directory which supports the following operations: get: Provide a number which is not ...

  6. 【原】iOS学习之三种拨打电话方式的比较

    拨打电话小编从网上找到三种,在这里做一些总结和比较 1.基本使用 NSString *str = [[NSMutableString alloc] initWithFormat:@"tel: ...

  7. 使用JAVA编写电话薄程序,具备添加,查找,删除等功能

    //该程序需要连接数据库.根据word文档要求所有功能均已实现.//大部分方法基本差不多,//在查询修改的时候能输出 最大ID号 和最小ID号,并且可以对输入的ID号进行判断是否存在(具体方法请查看 ...

  8. 拨打电话tel: 跳转到邮件mailto:(html)

    拨打电话 <a href="tel://0571866000">0571-866000</a> 跳转到邮件 <a href="mailto: ...

  9. [Android]电话拨号器开发

    继续今天的Android,经过昨天大体了解了Android开发的一些基本文件结构,今天来做一个电话拨号器! 预期达到的效果 实现过程 首先还是按照昨天第一篇教程,新建一个项目叫PhoneCall的An ...

随机推荐

  1. delphi中获取memo鼠标所在位置的行和列(通过EM_GETRECT消息取得Rect后,自己算一下)

    也是看别人写的,但是不容易找到,就转发一篇delphi版本的 function GetLine(X, Y: integer): TPoint;var  OldFont : HFont;  Hand : ...

  2. 在WPF中引用WinForm的控件

     以ArcEngine为例: mapControl = new AxMapControl(); MapHost.Child = mapControl; //MapHost为WindowsFormHos ...

  3. Socket小白篇-附加TCP/UDP简介

    Socket小白篇-附加TCP/UDP简介 Socket 网络通信的要素 TCP和UDP Socket的通信流程图 1.Socket 什么是Socket Socket:又称作是套接字,网络上的两个程序 ...

  4. [VS]VS2017 安装ReportDesigner/ReportViewer的方法

    原文:[VS]VS2017 安装ReportDesigner/ReportViewer的方法 解决安装完VS2017后,无法用ReportDesigner/ReportViewer打开.rdlc文件V ...

  5. FireUI live Preview使用方法-Berlin

    这是可以让开发者事先预览 mobile 画面的作法 1.先确定 Berlin IDE  Tools\Option\Form Designer 中 FireUI live Preview   broad ...

  6. 将Imagelist里的图像复制到TCanvas上的指定区域

    function Tdmd.Draw_Image_In_Rect(C:TCanvas;R:TRect;i:integer):boolean;var  tr:TRect;begin    if i< ...

  7. C++的标准库函数默认都是操作字节,而不是字符,非常痛苦,所以引入了u16string和u32string(Linux上的wchar_t是32位的原因,utf16对unicode的支持是有缺陷的)good

    时至今日,字符串使用unicode已经是不需要理由的常识,但对一些有着悠久历史的编程语言来说,这仍然是个头痛的问题.如果抛开第三方库的支持,C++其实并不能实际有效地支持unicode,即使是utf8 ...

  8. IIS6.0 WEB园配置

    为应用程序池创建 Web 园请注意以下几点: 一.每一个工作进程都会消耗系统资源和CPU占用率:太多的工作进程会导致系统资源和CPU利用率的急剧消耗: 二.每一个工作进程都具有自己的状态数据,如果We ...

  9. Matlab与.Net混合编程-多维数组赋值出错的问题

    问题描述:Matlab可编译供.net调用的dll.两种不同环境对数据类型的定义相差较大,因此在C#中调用Matlab编译的函数时,首先要将C#中的变量类型转换成与Matlab对应的中转类型.Matl ...

  10. python算法与数据结构-循环链表(39)

    一.循环链表的介绍 上一篇我们已经讲过单链表,本篇给大家讲解循单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点,其基本操作和单链表思路一样. 常用的操 ...