XXII Open Cup, Grand Prix of Daejeon C. AND PLUS OR(思维 结论)

news2024/11/30 7:37:12

题目

给定n(n<=20),再输入2^n个数,分别代表a[0]到a[2^n-1],第i个数ai(0<=ai<=1e7)

问是否存在一对下标i、j满足a[i]+a[j]<a[i&j]+a[i|j]

如果不存在,输出-1,否则输出任意一对(i,j)即可

思路来源

官方题解

题解

题解说的挺清楚的,

先用集合转换成这个式子

然后z是一个集合,是多出的若干位,如果有解,说明最后这个式子成立,

考虑令左式为f(v1),右式为f(v3),有f(v1)<f(v3)成立,

其中v3比v1多了一个集合z,就是多了若干位的时候,有f(v1)<f(v3)

那么,考虑这个渐变的过程,

取z集合的一个真子集,加到v1里变成v2,

可以发现,不管f(v2)多大,要么f(v1)<f(v2),要么f(v2)<f(v3)成立,

重复这个过程,使得一定存在f(v1)<f(v3)且v1和v3只差一个相邻的1

式子中y和z是对称的,z只差1位,y也可以只差1位

所以,枚举公共集合x,枚举i的变化位y,枚举j的变化位z,复杂度O(2^n*n*n)

代码

#include <bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<vector>
#include<map>
using namespace std;
#define rep(i,a,b) for(int i=(a);i<=(b);++i)
#define per(i,a,b) for(int i=(a);i>=(b);--i)
typedef long long ll;
typedef double db;
typedef pair<int,int> P;
#define fi first
#define se second
#define pb push_back
#define dbg(x) cerr<<(#x)<<":"<<x<<" ";
#define dbg2(x) cerr<<(#x)<<":"<<x<<endl;
#define SZ(a) (int)(a.size())
#define sci(a) scanf("%d",&(a))
#define pt(a) printf("%d",a);
#define pte(a) printf("%d\n",a)
#define ptlle(a) printf("%lld\n",a)
#define debug(...) fprintf(stderr, __VA_ARGS__)
using namespace std;
const int N=21,M=(1<<20)+5;
int n,a[M];
int main(){
    sci(n);
    int up=(1<<n)-1;
    rep(i,0,up)sci(a[i]);
    rep(i,0,n-1){
        rep(j,i+1,n-1){
            rep(k,0,up){
                if(k>>i&1 || k>>j&1)continue;
                if(a[k|(1<<i)]+a[k|(1<<j)]<a[k]+a[k|(1<<i)|(1<<j)]){
                    printf("%d %d\n",k|(1<<i),k|(1<<j));
                    return 0;
                }
            }
        }
    }
    puts("-1");
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1555887.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python爬虫之selenium4使用(万字讲解)

文章目录 一、前言二、selenium的介绍1、优点&#xff1a;2、缺点&#xff1a; 三、selenium环境搭建1、安装python模块2、selenium4新特性3、安装驱动WebDriver驱动选择驱动安装和测试 基础操作1、属性和方法2、单个元素定位通过id定位通过class_name定位一个元素通过xpath定位…

SQL82 返回 2020 年 1 月的所有订单的订单号和订单日期(like)

select order_num,order_date from Orders where order_date like "2020-01%" order by order_date;使用like来匹配

武汉星起航:助力跨境电商新手,打造高质量亚马逊产品评价新策略

在今日全球化与数字化浪潮的推动下&#xff0c;跨境电商已成为推动国际贸易发展的新动力。然而&#xff0c;随着市场竞争的日益激烈&#xff0c;如何让自己的产品在亚马逊平台上脱颖而出&#xff0c;成为了众多跨境电商新手面临的重要问题。武汉星起航电子商务有限公司&#xf…

WP Rocket v3.15.10最新版强大的WordPress缓存插件

WP Rocket v3.15.10是一款强大的WordPress缓存插件&#xff0c;它通过一系列优化措施来提高网站的速度和性能。 WP Rocket与免费缓存插件相比&#xff0c;提供了更丰富和高级的自定义设置功能。这些包括媒体优化、预加载、延迟加载和数据库优化等。特别是对于没有任何缓存技术…

MySQL Innodb 引擎中预防 Update 操作上升为表锁

一、MySQL 如何预防 Update 上升为表锁 在 MySQL 中&#xff0c;进行任何数据的 修改 操作都会进行一定的锁操作&#xff0c;而锁的不同直接导致性能的差异。例如 MyISAM 引擎&#xff0c;更新时采用表锁&#xff0c;并发性较差。而 Innodb 引擎支持事务&#xff0c;更新时采用…

Cocos Creator 常见问题记录

目录 问题1、精灵图九宫格&#xff0c;角度不拉伸 问题2、BlockInputEvents 防止透屏 问题1、精灵图九宫格&#xff0c;角度不拉伸 点击编辑&#xff0c;拖拽到可变区域 问题2、BlockInputEvents 防止透屏

真实sql注入以及小xss--BurpSuite联动sqlmap篇

前几天漏洞检测的时候无意发现一个sql注入 首先我先去网站的robots.txt去看了看无意间发现很多资产 而我意外发现admin就是后台 之后我通过基础的万能账号密码测试or ‘1‘’1也根本没有效果 而当我注入列的时候情况出现了 出现了报错&#xff0c;有报错必有注入点 因此我…

【c 语言 】malloc函数详解

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;C语言 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步&…

密码学基础-对称密码/公钥密码/混合密码系统 详解

密码学基础-对称密码/公钥密码 加解密说明1.加密解密必要因素加密安全性说明 什么是对称密码图示说明对称密码详解什么是DES?举例说明 什么是3DES什么是AES? 公钥密码什么是RSA? 对称密钥和公钥密码优缺点对比对称密码对称密码算法总结对称密码存在的问题? 公钥密码公钥密码…

真实工作中的编程,与在校coder有哪些不同?

工作中的编程和学校里最大的不同在于&#xff1a;在完整的流程规范下&#xff0c;同事间协同开发&#xff0c;按时按量交付&#xff0c;并不断测试迭代优化&#xff0c;最终能稳定的用于生产。 有人说这是软件开发&#xff0c;并不是编程啊。对这就是工作编程和学校编程的差异…

pdf在浏览器上无法正常加载的问题

一、背景 觉得很有意思给大家分享一下。事情是这样的&#xff0c;开发给我反馈说&#xff0c;线上环境接口请求展示pdf异常&#xff0c;此时碰巧我前不久正好在ingress前加了一层nginx&#xff0c;恰逢此时内心五谷杂陈&#xff0c;思路第一时间便放在了改动项。捣鼓了好久无果…

字符集 --java学习笔记

字符集 为了将字符存进计算机&#xff0c;所以有了字符集 标准ASCI字符集 ASCl(American standard Code for Information Interchange):美国信息交换标准代码&#xff0c;包括了英文、符号等标准ASCI使用1个字节存储一个字符&#xff0c;首尾是0&#xff0c;总共可表示128个…

Typora结合PicGo + Github搭建个人图床

目录 一 、GitHub仓库设置 1、新建仓库 2、创建Token 并复制保存 二、PicGo客户端配置 1、下载 & 安装 2、配置图床 三、Typora配置 一 、GitHub仓库设置 1、新建仓库 点击主页右上角的 号创建 New repository 填写仓库信息 2、创建Token 并复制保存 点击右上角…

二、Java语法基础

1、Java语言的关键字、标识符及命名规范 1)java关键字 2)标识符 3)JAVA中的命名规范 包名的命名规范:域名.公司名称.项目名称.模块名称 类的命名规范:首字母大写,第二个单词的首字母大写,以此类推。 2、进制间的转换(二进制、十进制) 1)十进制->二进制 采用…

深入探讨Docker in Docker:原理与实战指南

在软件开发和部署中&#xff0c;容器化技术已经成为一个不可或缺的工具。而在使用Docker进行容器化时&#xff0c;有时可能会遇到需要在一个Docker容器中运行另一个Docker容器的情况&#xff0c;这就是所谓的"Docker in Docker"&#xff08;简称DinD&#xff09;。本…

新能源充电桩站场视频汇聚系统建设方案及技术特点分析

随着新能源汽车的普及&#xff0c;充电桩作为新能源汽车的基础设施&#xff0c;其安全性和可靠性越来越受到人们的关注。为了更好地保障充电桩的安全运行与站场管理&#xff0c;TSINGSEE青犀&触角云推出了一套新能源汽车充电桩视频汇聚管理与视频监控方案。 方案采用高清摄…

先进电气技术 —— 储能系统技术原理是什么?有哪些技术发展点?

一、储能系统基本原理 储能系统是一种能够存储电能并在需要时释放电能的技术装置。在电力系统、可再生能源利用、电力供需调节等领域&#xff0c;储能系统扮演着至关重要的角色。其工作原理主要包括以下几个步骤&#xff1a; 1. **充电阶段**&#xff1a; - 当电力供应充足…

通义千问7B大模型微调

阿里云机器学习试用 登录阿里云&#xff0c;搜索PAI和NAS申请试用即可&#xff0c;都是三个月 工作空间创建好了之后再来创建实例&#xff0c;所谓的实例也即我们运行的云服务器的节点。由于云服务器通常基于虚拟化容器部署&#xff0c;所以会被称为实例&#xff0c;简单…

黑马程序员 Java 入门 笔记

一、基础概念 注释和关键字字面量&#xff1a;告诉程序员数据在程序中书写格式 分类&#xff1a;整数、小数、字符、字符串、布尔、空 特殊字面量&#xff1a;制表符 ‘\t’ 空null(加" "才能输出) 变量 加减法数据存储 数据类型 基本数据类型 整数浮点数字符布尔…

硬件17、PCB在机械层确定板子大小和形状以及后续拓宽板子

确定板子的形状和大小 (1)在机械层用线画出板子的形状和大小&#xff0c;然后全选中线&#xff0c;然后设计-》板子形状-》按照选择对象定义 这就是确定板子的原点 板子的形状大小规划一定是在机械层 在机械层使用直线画出想要的板子形状 设置这段线为2cm&#xff0c;也就…