嵊州D2T1 “我只是来打个电话”
嵊州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 “我只是来打个电话”的更多相关文章
- nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证
http模块内部封装了http服务器和客户端,因此Node.js不需要借助Apache.IIS.Nginx.Tomcat等传统HTTP服务器,就可以构建http服务器,亦可以用来做一些爬虫.下面简单介 ...
- Mono for Android—初体验之“电话拨号器”
1.Main.axml文件: <?xml version="1.0" encoding="utf-8"?><LinearLayout xmln ...
- Android无需申请权限拨打电话
Android打电话有两种实现方法: 第一种方法,拨打电话跳转到拨号界面.源代码如下: Intent intent = new Intent(Intent.ACTION_DIAL); Uri data ...
- ContentProvider中央档案馆,以及获取联系人电话的示例
Android官方文档介绍的数据存储方式共有五种,sqlite,SharedPreferences,网络存储,外储存储,文件存储,但是这些数据都无法进行共享,那么我们就引入了今天的主角:Content ...
- [LeetCode] Design Phone Directory 设计电话目录
Design a Phone Directory which supports the following operations: get: Provide a number which is not ...
- 【原】iOS学习之三种拨打电话方式的比较
拨打电话小编从网上找到三种,在这里做一些总结和比较 1.基本使用 NSString *str = [[NSMutableString alloc] initWithFormat:@"tel: ...
- 使用JAVA编写电话薄程序,具备添加,查找,删除等功能
//该程序需要连接数据库.根据word文档要求所有功能均已实现.//大部分方法基本差不多,//在查询修改的时候能输出 最大ID号 和最小ID号,并且可以对输入的ID号进行判断是否存在(具体方法请查看 ...
- 拨打电话tel: 跳转到邮件mailto:(html)
拨打电话 <a href="tel://0571866000">0571-866000</a> 跳转到邮件 <a href="mailto: ...
- [Android]电话拨号器开发
继续今天的Android,经过昨天大体了解了Android开发的一些基本文件结构,今天来做一个电话拨号器! 预期达到的效果 实现过程 首先还是按照昨天第一篇教程,新建一个项目叫PhoneCall的An ...
随机推荐
- Java Policy
# What The policy for a Java™ programming language application environment (specifying which permiss ...
- 解决iconv函数无法转换某些中文的问题
原文: 解决iconv函数无法转换某些中文的问题 请先看以下代码,这个页面是GB2312编码的: $str = '陶喆';echo 'gb2312-'.$str;echo '<br />' ...
- SQLSERVER 数据库备份脚本-支持多库备份
原文:SQLSERVER 数据库备份脚本-支持多库备份 <pre name="code" class="sql">--变量定义 DECLARE @b ...
- 通过NLayer和NAudio转换MP3成WAV
NuGet安装: Install-Package NLayer.NAudioSupport 示例代码: using Microsoft.Win32; using NAudio.Wave; using ...
- redis入门笔记(3)
本篇文章介绍几个redis的应用场景. 1.取最新N个数据的操作 –比如典型的取你网站的最新文章,通过下面方式,我们可以将最新的5000条评论的ID放在Redis的List集合中,并将超出集合部分从数 ...
- Android零基础入门第45节:GridView简单使用
原文:Android零基础入门第45节:GridView简单使用 前面一共用了8期来学习ListView列表的相关操作,其实学习的ListView的知识完全适用于AdapterView的其他子类,如G ...
- rem.js移动布局实例教程
最近想买需要开发微站,微信公众号内嵌入的移动web,总结方法可以使用css3直接使用百分比布局,也可以使用bootstrap做响应式布局等多种方法,个人感觉看项目需要,笔者使用rem.js进行移动前端 ...
- python的实用函数
>>> file=open('txt.txt','a') >>> print >> file,'hello,world' >>> fi ...
- python 方法无法在线程中使用(附python获取网络流量)
在python中,定义一个方法,直接调用可以,但是创建一个线程来调用就可能导致失败.这种现象多出现在使用com对象进行系统操作时,而且是以线程的形式调用. 异常提示如下:syntax error.WM ...
- 源码解读·RT-Thread多任务调度算法
*本文依据RT-Thread当时最新版本4.0.1版本源码 RT-Thread操作系统是一款基于优先级和时间片轮转的多任务实时操作系统.其调度算法采用256个优先级,并支持相同优先级的任务存在.不同优 ...