51node 4个数和0
https://www.51nod.com/Challenge/Problem.html#problemId=1267
第一种方法:两个for+二分:很好理解,不用考虑重复的问题。但是这个还不够快
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
const int maxn = 1e3+;
ll a[maxn];
int main()
{
ll n;
cin>>n;
for(int i=;i<n;i++)
{
cin>>a[i];
}
int ok=;
sort(a,a+n);
for(int i=;i<n;i++)
{
for(int j=i+;j<n;j++)
{
ll sum;
ll k=j+,m=n-; while(k<m)
{
sum=a[i]+a[j]+a[k]+a[m];
if(sum<)
{
k++;
}
else if(sum>)
{
m--;
}
else
{
ok=;break;
}
}
if(ok)
break;
}
if(ok)
break;
}
if(ok)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
第二种,尺取法,复杂度为n,我们把所有两两相加存起来,再进行二分,但是二分时要加一个判断防止出现重复,这里结构体记录的是坐标与和
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 1e3+;
int a[maxn];
int n;
struct node
{
int x,y,s;
}st[maxn*maxn];
bool cmp(node a,node b)
{
return a.s<b.s;
}
int main()
{
int n;
cin>>n;
for(int i=;i<n;i++)
cin>>a[i];
int tot=;
for(int i=;i<n;i++)
{
for(int j=i+;j<n;j++)
{
st[tot].s=a[i]+a[j];
st[tot].x=i;
st[tot].y=j;
tot++;
}
}
sort(st,st+tot,cmp);
int l=,r=tot-;
int ok=;
while(l<r)
{
if(st[l].s+st[r].s==)
{
if(st[l].x!=st[r].x&&st[l].x!=st[r].y&&
st[l].y!=st[r].y&&st[l].y!=st[r].x)
{
ok=;break;
}
else
l++,r--;
}
else if(st[l].s+st[r].s>)
r--;
else
l++;
}
if(ok)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
这个写了好几遍因为一直判我超时,上面的过了,但是我还有个跟它一样的代码(至少经检查是一样的)交了无数遍都不过,至今未解。
51node 4个数和0的更多相关文章
- HDU 1878(1Y) (判断欧拉回路是否存在 奇点个数为0 + 一个联通分量 *【模板】)
欧拉回路 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- Hadoop3.0 WordCount测试一直Accept 状态,Nodes of the cluster 页面node列表个数为0
起因是我运行wordcount测试一直卡主,不能执行,一直处于 Accept 状态,等待被执行,刚开始是各种配置yarn参数,以及host配置,后来发现还是不行 hadoop 集群安装完成后,在500 ...
- 0..n去掉一个数,给你剩下的数,找出去掉的那个数
转载请注明转自blog.csdn.net/souldak , 微博@evagle 首先,考虑没有去掉那些数,如果n是奇数,n+1个最低位肯定是0101...01,count(0)=count(1),如 ...
- hadoop 2.2.0 关于map和reduce的个数的设置
关于hadoop中的map过程,我的理解是每一个map系统会开启一个JVM进程来处理,map之间相互并行,map函数内串行.这样的想法是否正确? 由于想在hadoop集群上算一个初始输入数据不多,但是 ...
- python计算1~2008中0和1的个数
计算1~2008中所有自然数中1和0的个数总数. 通过自然数的大小划分区间,将自然数每位上的数载入列表,循环计数. list = [] onecount = 0 zerocount = 0 for i ...
- 【JAVA习题三十】求0—7所能组成的奇数个数
package erase; public class 求0到7所能组成的奇数个数 { public static void main(String[] args) { /* * 求0—7所能组成的奇 ...
- Sort with Swap(0, i)
原题连接:https://pta.patest.cn/pta/test/16/exam/4/question/678 题目如下: Given any permutation of the number ...
- Java中长度为0的数组与null的区别
有如下两个变量定义,这两种定义有什么区别呢? 1. int[] zero = new int[0]; 2. int[] nil = null; zero是一个长度为0的数组,我们称之为“空数组”,空数 ...
- lua判断表中数据是否连续,0可以代表任何数
最近看到有lua面试题,挺有意思的,一张表中有若干个数,0可以代表任何数 比如有张表{9, 2, 4, 1, 3, 0, 0, 0, 0},按照规则这张表中的四个0可以用来代表5,6,7,8,那么这张 ...
随机推荐
- 等级保护2.0-mysql
控制点 安全要求 要求解读 测评方法 预期结果或主要证据 身份鉴别 a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换 应检查MySQL数据库的口令策略配置 ...
- Pytorch【直播】2019 年县域农业大脑AI挑战赛---初级准备(一)切图
比赛地址:https://tianchi.aliyun.com/competition/entrance/231717/introduction 这次比赛给的图非常大5万x5万,在训练之前必须要进行数 ...
- Linux系统使用ss命令查看端口状态
Linux系统使用ss命令查看端口状态 目录 1.可用工具 2.ss帮助 2.1 选项分类说明 2.2 过滤选项family 2.3 过滤选项state 2.4 状态之间的关系 3.ss的使用 3.1 ...
- Python 多进程 multiprocessing.Pool类详解
Python 多进程 multiprocessing.Pool类详解 https://blog.csdn.net/SeeTheWorld518/article/details/49639651
- mycat 主从复制,读写分离,
1.mycat 主从复制 https://blog.csdn.net/qq_35992900/article/details/80599976 2.mycat 读写分离 https://blog.cs ...
- [Codeforces #615 div3]1294E Obtain a Permutation
Before the Beginniing 本文为 Clouder 原创文章,原文链接为Click,转载时请将本段放在文章开头显眼处.如进行了二次创作,请明确标明. 由本人转载于博客园. 题意分析 C ...
- [Struts]Token 使用及原理
Struts Token 使用 1,先在一个Action中,调用saveToken(HttpServletRequest request)方法.然后转向带有表单的JSP页面. 2,在JSP页面提交 ...
- Jquery实现横向tab切换
//需求:鼠标放在不同的导航栏上,下面显示的内容自动切换 //代码如下 <!DOCTYPE html> <html lang="en"> <head& ...
- springboot的maven多模块项目架构微服务搭建——构建多模块项目(依赖方式)
总想对微服务架构做一个小小的总结,不知如何下手,最近觉得还是从搭建微服务的过程来入手,对于springboot的maven项目从构建多模块架构进而衍化为常用的微服务架构来做个记录吧. 首先,创建多个s ...
- MinGW 安装与简单实例
MinGW的下载 链接: https://pan.baidu.com/s/1JiZoyFHUWoeaxCQcUXCKgg 密码: myh3 MinGW的安装 基本上都是按提示的点击下一步操作 接下来修 ...