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

题目

给定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;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Https【Linux网络编程】

目录 一、为什么需要https 二、常见加密方法 1、对称加密 2、非对称加密 3、数据指纹 三、选择什么加密方案&#xff1f; 方案一&#xff1a;对称加密&#xff08;&#xff09; 方案二&#xff1a;双方使用非对称加密&#xff08;效率低&#xff09; 方案三&#xff1a…

电子级高纯PFA材质实验室器皿耗材PFA漏斗PFA试剂瓶PFA烧杯

PFA三角漏斗&#xff0c;整体均是PFA材质&#xff0c;无污染风险&#xff0c;可高压灭菌。 尺寸&#xff1a;外径40mm、160mm PFA三角漏斗 特点&#xff1a; 1、一体式成型&#xff0c;结构稳定&#xff1b; 2、化学耐受性强&#xff0c;耐受强酸、强碱以及各种有机溶剂&…

C语言例3-1:阅读下列程序,写出程序运行的结果。

代码如下&#xff1a; #include <stdio.h> int main(void) {int x8;do{printf("*");x--;x--;}while(x0);printf("\n");return 0; } 结果如下&#xff1a; 分析&#xff1a; do-while语句&#xff0c;先执行后判断先打印 "*" &#xff0…

58集团校园招聘(含内推码)

招聘链接&#xff1a;校招链接 内推码在后文。 内推码 填写我的推荐码&#xff1a;EVBAJS 投递

1、Cocos Creator 基础入门

目录 Cocos Creator 是什么&#xff1f; 语言支持 功能特性 工作流程 功能模块 相关游戏 参考 Cocos Creator 是什么&#xff1f; Cocos Creator 既是一款高效、轻量、免费开源的跨平台 2D&3D 图形引擎&#xff0c;也是一个实时 2D&3D 数字内容创作平台。拥有…

线上剧本杀小程序成为行业发展大势,商家该如何选择?

在过去的几年中&#xff0c;剧本杀成为了年轻人娱乐社交的新方式&#xff0c;深受年轻人的喜欢&#xff0c;市场规模持续上升。 目前&#xff0c;剧本杀的布局也向线上发展&#xff0c;线上剧本杀的发展势头持续上升&#xff0c;规模也在持续扩大中。通过开发剧本杀小程序&…

在Windows的Docker上部署Mysql服务

在我们做一些和数据库相关的测试时&#xff0c;往往需要快速部署一个数据库作为数据源。如果开发环境是Windows&#xff0c;且开发的代码不依赖于系统&#xff0c;即不用在linux上做开发&#xff0c;则可以将全套环境都部署在Windows上。 本地安装数据库会污染操作系统环境&…

某某45浏览器干净卸载详细教程

​ 某某45是个什么软件&#xff1f;某某45浏览器是病毒吗&#xff1f;这个问题想必困惑着很多小伙伴&#xff0c;新装机的电脑总是有某某45全家桶。那么今天咱们一起看看。 ​ 某某45是个什么软件 某某45是一个中国软件公司&#xff0c;提供各种软件产品和服务。其中&#xff0…

【c 语言 】malloc函数详解

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

FFMPEG C++封装(一)(C++ FFMPEG)

1 概述 FFMPEG是一个C语言开源视音频编解码库。本文将FFMPG4.1.3进行C封装&#xff0c;形成C FFMPG库。 2 架构 架构图如下所示&#xff1a; 架构说明: Init 初始化FFMPEG库。IStream 输入流&#xff0c;FFMPEG的输入音视频文件。Packet 音视频数据包Decoder 音视频编码器F…

字符集 --java学习笔记

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

HarmonyOs开发:轮播图Banner组件封装与使用

前言 轮播图在每个项目中都很常见&#xff0c;鸿蒙中在容器组件中也提供了Swiper组件&#xff0c;用于子组件滑动轮播显示&#xff0c;和前端的使用起来也是异曲同工&#xff0c;我们先看下基本的用法。 Swiper() {ForEach(["1", "2", "3", &quo…

应用案例 | 复合机器人助力智能仓储物流实现高效发展

随着智能仓储物流技术的快速发展&#xff0c;复合机器人作为一种先进的自动化设备&#xff0c;正逐渐在仓储物流领域发挥重要作用。以下是一个复合机器人在智能仓储物流的应用案例。 案例背景 某大型电商企业面临着日益增长的订单量和仓储物流压力。为了提高物流效率、降低人力…

牛角工具箱源码 轻松打造个性化在线工具箱

&#x1f389; Whats this&#xff1f; 这是一款在线工具箱程序&#xff0c;您可以通过安装扩展增强她的功能 通过插件模板的功能&#xff0c;您也可以把她当做网页导航来使用~ 觉得该项目不错的可以给个Star~ &#x1f63a; 演示地址 https://tool.aoaostar.com &#x1f…

手动实现一个扩散模型DDPM

扩散模型是目前大部分AIGC生图模型的基座&#xff0c;其本质是用神经网络学习从高斯噪声逐步恢复图像的过程&#xff0c;本文用python代码从零开始构建了一个简单的扩散模型。 理论部分 DDPM(Denoising Diffusion Probabilistic Models) 是一种在生成对抗网络等技术的基础上发展…

MQTT.fx连接新版OneNet平台的一些问题

对于使用通信主题publish给OneNET时&#xff0c;如图所示&#xff1a; 但是点击Publish后&#xff0c;出现了Broker connection lost的问题 原因在于&#xff1a;新版OneNET和旧版OneNET的通信主题不一致了&#xff0c;查阅文档获知&#xff0c;格式如下&#xff1a; $sys/{p…

二叉树的深度和高度问题-算法通关村

二叉树的深度和高度问题-算法通关村 1 最大深度问题 LeetCode104: 给定一个二叉树&#xff0c;找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明&#xff1a;叶子节点是指没有子节点的节点。 对于node&#xff08;3&#xff09;&#xff0…

el-select的错误提示不生效、el-select验证失灵、el-select的blur规则失灵

发现问题 在使用el-select进行表单验证的时候&#xff0c;发现点击下拉列表没选的情况下&#xff0c;他不会提示没有选择选项的信息&#xff0c;我设置了rule如下 <!--el-select--><el-form-item label"等级" prop"level"><el-select v-m…

UE4_碰撞_使用蓝图控制物体移动时如何让被阻挡

当我们这样设置蓝图时&#xff1a; 运行效果&#xff1a; 利用蓝图更改一个物体的位置&#xff0c;发现本来两个应该相互阻挡的物体被穿过去了。为了不让相互阻挡的物体被穿过去&#xff0c;我们需要设置好蓝图节点的参数Sweep。 勾选之后 墙的蓝图我们这样设置&#xff1a; 运…

【Spring】SpringMvc项目当中,页面删除最后一条数据,页面不跳转并且数据为空。

期待您的关注 在之前学习SpringMvc的时候遇到过这样一个BUG&#xff0c;当我在一个页面删除该页面的最后一条数据的时候&#xff0c;一旦我删除成功&#xff0c;那么这个页面不会进行跳转&#xff0c;而是还停留在这个本不应该存在的页面&#xff0c;而且数据什么都没有。如下…