当前位置: 首页 > news >正文

深圳建设网站和公众号电商培训心得

深圳建设网站和公众号,电商培训心得,营销型网站建设总结,视频来源网址怎么弄1557 两个集合 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 小X有n个互不相同的整数: p1,p2,...,pn 。他想把这些整数分到两个集合A和B里边。但是要符合下面两个条件。 …

1557 两个集合

题目来源: CodeForces

基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题

小X有n个互不相同的整数: p1,p2,...,pn 。他想把这些整数分到两个集合A和B里边。但是要符合下面两个条件。

·        如果x属于A,那么a-x也肯定属于A。

·        如果x属于B,那么b-x也肯定属于B。

判断一下是否存在一种方案来分配这些数字到集合A,B中。

注意:如果一个集合为空也是可以的。

Input

单组测试数据。 第一行有三个整数n,a,b (1≤n≤10^5; 1≤a,b≤10^9)。 第二行有n个不一样的整数 p1,p2,...,pn (1≤pi≤10^9).

Output

如果可行,那么输出YES,否则输出NO。

Input示例

样例输入1

4 5 9

2 3 4 5

Output示例

样例输出1

YES

 

//每个数互不相同,所以,每个数必须要么去A,要么去B,如果不能实现,就为NO,否则为YES,分情况考虑:

如果 x 只能去 A 或 B ,那么两个数标记已使用,

如果 x 两个集合都可以去,那么如果去 A ,那么 b-x 这个数也只能去 A,如果去 B 那么 a-x 这个数只能去 B。

能满足任意标记即可,不能就输出NO

 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <string.h>
 4 #include <algorithm>
 5 using namespace std;
 6 #define MX 100005
 7 
 8 int n,a,b;
 9 int dat[MX];
10 bool use[MX];
11 
12 int bi_search(int x)
13 {
14     int l =1, r=n;
15     while (l<=r)
16     {
17         int mid = (l+r)>>1;
18         if (dat[mid]>x) r = mid - 1;
19         else if (dat[mid]<x) l = mid + 1;
20         else
21         {
22             if (use[mid]) return -1;
23             return mid;
24         }
25     }
26     return -1;
27 }
28 
29 int main()
30 {
31     scanf("%d%d%d",&n,&a,&b);
32     for (int i=1;i<=n;i++)
33         scanf("%d",&dat[i]);
34     sort(dat+1,dat+1+n);
35     bool ok =1;
36     for (int i=1;i<=n;i++)
37     {
38         if (use[i]) continue;
39         int x = bi_search(a-dat[i]);
40         int y = bi_search(b-dat[i]);
41         if (x==-1&&y==-1)
42         {
43             ok=0; break;
44         }
45         else if (x!=-1&&y!=-1)
46         {
47             int xx = bi_search(a-dat[y]);
48             int yy = bi_search(b-dat[x]);
49             if (xx!=-1)
50                 use[i] = use[x] = use[y] = use[xx] =1;
51             else if (yy!=-1)
52                 use[i] = use[x] = use[y] = use[yy] =1;
53             else
54             {
55                 ok=0; break;
56             }
57         }
58         else if (x!=-1)
59             use[i]=use[x]=1;
60         else if (y!=-1)
61             use[i]=use[y]=1;
62     }
63     if (ok)
64         printf("YES\n");
65     else
66         printf("NO\n");
67     return 0;
68 }
View Code

 

 

转载于:https://www.cnblogs.com/haoabcd2010/p/7502316.html

http://www.lbrq.cn/news/2667493.html

相关文章:

  • 找人做app网站吗在线seo外链工具
  • 个人站长网站应该如何定位百度关键词排名推广
  • 做网站好吗关键词是怎么排名的
  • 长沙市民警大人做爰网站昆山优化外包
  • 网站专业制作seo外链工具软件
  • 公司网站开发费用济南兴田德润简介图片廊坊快速排名优化
  • 徐州做网站的公司哪家好app广告联盟
  • 无锡论坛网本地网站广州今日新闻头条新闻
  • 企业网站建设咨询seo需要什么技术
  • 交通建设委员会网站免费做网站的网站
  • 杭州网站制作报价模板建站哪个平台好
  • 手机网站建设中心全媒体运营师报名费多少钱
  • 日本门户网站有哪些seo排名优化点击软件有哪些
  • 外贸建个网站多少钱安徽搜索引擎优化seo
  • wap网站 微信登录开发网站建设公司
  • 做网站怎样产生效益橙子建站官网
  • 怎么在企查查网站做企业认证在线crm软件
  • 百度网站的建设目标二级域名网站查询入口
  • 通过服务推广网站站长工具seo排名查询
  • 一元钱购买网站空间网站seo诊断分析
  • 西宁哪里做网站投稿平台
  • 做外贸网站要多少钱网络营销好学吗
  • 番禺微网站建设广东网站seo营销
  • 济南兼职做网站app推广拉新工作可靠吗
  • 成都水高新区建设局官方网站郑州网络推广平台
  • 电子商务网站的建设与维护方法爱站网站排名查询工具
  • 沈阳网站设计制作公司网络营销专家
  • 电影网站是怎么做的上海网络推广联盟
  • 专业的网站开发公司电话优化大师下载安装免费
  • wordpress videotheme网站推广优化外包公司哪家好
  • 【走进Docker的世界】Docker环境搭建
  • JDBC的连接过程(超详细)
  • Python 的列表 list 和元组 tuple 有啥本质区别?啥时候用谁更合适?
  • Words or Vision Do Vision-Language Models Have Blind Faith in Text
  • Flutter 与 Android NDK 集成实战:实现高性能原生功能
  • 本地进行语音文字互转