IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> D. AND OR and square sum(二进制位+贪心) -> 正文阅读

[数据结构与算法]D. AND OR and square sum(二进制位+贪心)

Problem - 1368D - Codeforces

?题意:

给你一个n个非负整数的集合a1,...,an。允许你进行以下操作:选择两个不同的指数1≤i,j≤n。如果在操作前ai=x,aj=y,那么在操作后ai=x AND y,aj=x OR y,其中AND和OR分别是位数的AND和OR(关于正式描述请参考注释部分)。该操作可以进行任意次数(可能为零)。

所有操作完成后,计算所有ai的平方之和。你能达到的最大平方之和是多少?

输入
第一行包含一个整数n(1≤n≤2?105)。

第二行包含n个整数a1,...,an(0≤ai<220)。

输出
打印一个整数--经过若干次(可能是零次)运算后能达到的最大可能的平方数之和。

题解:
通过一些例子比如 5:101 3:11? ?操作后为 1? 111

111 0? ? -> 0? 111

可以发现一个规律:任此此操作后 一的数量是不变的,变得只是他的位置,每次如果出现0与1的位置交换,结果都会增大

换句话来说我们可以找所有位置的一的数量,构造一些很大的数,直到,把所有的1取完

为什么构造大的数,结果就大呢,

因为这n个数的总和无论如和操?,都是不会变的

那么对于sum

2*(sum/2)*(sum/2) 和sum*sum

哪个大显而易见

#include<iostream>
#include<vector>
#include<queue>
using namespace std;
int cnt[25];
int main()
{
	int n;
	cin >> n;
	for(int i = 1;i <= n;i++)
	{
		int x;
		cin >> x;
		for(int j = 0;j < 20;j++)
		{
			if((x>>j)&1)
			{
				cnt[j]++;
			}
		}
	}
	long long sum = 0;
	for(int i = 1;i <= n;i++)
	{
		long long ans = 0;
		for(int j = 0;j  < 20;j++)
		{
			if(cnt[j])
			{
				cnt[j]--;
				ans+=(1<<j);
			}
		}
		sum += ans*ans;
	} 
	cout<<sum;
}

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-11-05 00:49:39  更:2022-11-05 00:51:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 18:58:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码