大吉大利【牛客网】(牛客练习赛60)

传送

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format:%lld

题目描述
在这里插入图片描述
输入描述:

第一行一个整数n.
第二行n个整数ai.

输出描述:

一个整数表示上述求和式的答案.
示例1
输入

5
1 2 3 4 5

输出

33

备注:
1≤n≤1e5
0≤ai≤1e8

题解:
根据题意就能打出最简单的暴力方法
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
sum+=a[i]&a[j];
复杂度O(n)肯定超时,这题也不可能这么水。

---------------------------------(此处为做题时错误想法)
我一开始这么想的a[i]&a[j] = = a[j]&a[i],所以j循环时从i+1开始就行,因为这个是对称的,sum算完再*2,最后再加上对角线上的i = = j的情况,结果还是超时(捂脸
(以下为正解)
&啥性质?1&1=1,其余情况都为0
当1&2是,我们可以转化成二进制运算,01&11=01
其实就是对应列&运算,
0 1
&
1 1
——
0 1
我们看样例:
1 ->0 0 1
2 ->0 1 0
3 ->0 1 1
4 ->1 0 0
5 ->1 0 1
看第一列:
0
0
0
1
1
因为0&任何都是0,所以看1,第四五行有1,
那运算时第四行&第四行=1,第四行&第五行=1,接着第五行再分别与第五行和第四行&运算也是两个1,最后加起来一共四个1.其实就是这一列1的数量的平方。你试试最后一列是不是也是这样?
(其实这个就是模仿暴力方法的第二个for循环,i与每个j&运算)
那这样算例题,结果就是
1 ->0 0 1
2 ->0 1 0
3 ->0 1 1
4 ->1 0 0
5 ->1 0 1
结果->4 4 9
这个449就可以理解成有4个100,4个010,9个001,因为咱们是用二进制运算,要转换成十进制,
100对应的就是4 =22
010对应的就是2 =21
001对应的就是1 =20
二进制转换成十进制时要乘以对应位置2的n次方,就是4 * 22 + 4 * 21 + 9 * 20=33
33就是最后结果(各位想明白了吗?
代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n;
ll a[10004];
ll w;
ll maxn;
int max(ll a,ll b)
{return a>b?a:b;
}
int main()
{cin>>n;for(int i=1;i<=n;i++){int ant=0;cin>>w;while(w){++ant;if(w&1)a[ant]++;//求出每列1的数量 w>>=1;}maxn=max(ant,maxn);//确定一共有多少列 }ll sum=0;for(int i=1;i<=maxn;i++)sum+=(a[i]*a[i])<<(i-1);cout<<sum;return 0;
} 

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

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

相关文章

【差分】Tallest Cow(poj 3263/luogu 2879)

Tallest Cow poj 3263 luogu 2879 题目大意&#xff1a; 现在有n头牛&#xff0c;两头牛如果要相互看到&#xff0c;那他们之间的牛必须比他们两低&#xff0c;现在给出n&#xff0c;最高牛的位置和高度&#xff0c;和m对关系&#xff0c;要你求每头牛最高是多少 输入样例…

【项目管理】git和码云的使用

缘起说了那么多关于git和码云相关的事&#xff0c;一直都没给大伙讲解这个码云究竟是个啥玩意儿。今天就给大伙说说如何通过git和码云搭建属于自己的代码库。码云码云(GitOSC)是开源中国社区团队推出的基于Git的快速的、免费的、稳定的在线代码托管平台,不限制私有库和公有库数…

牛客网暑期ACM多校训练营(第十场)F.Rikka with Line Graph

牛客网暑期ACM多校训练营&#xff08;第十场&#xff09;F.Rikka with Line Graph 做法&#xff1a;\(G\) 中的对应原图两条边(a,b) (c,d)的最短路为:\[ w[a][b] w[c][d] 2* min(dis[a][c], dis[a][d], dis[b][c], dis[b][d])\] 其中\(dis[i][j]\)表示原图G中i 到 j 的最短路…

AT2165-[AGC006D]MedianPyramidHard【二分,贪心】

正题 题目链接:https://www.luogu.com.cn/problem/AT2165 题目大意 nnn行的一个金字塔&#xff0c;第iii层有2i−12\times i-12i−1个格子&#xff0c;每个格子是它左右下的中位数。给出最下面的2n−12n-12n−1个数&#xff0c;求第一行的数。 解题思路 我们先二分一个答案&a…

三角形周长和【牛客网】牛客网练习赛60

题目传送 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format:%lld 题目描述 输入描述: 输入描述 第一行一个整数表示n. 接下来n行每行两个整数x,y表示一个点. 输出描述: 输出一个整数表示周长…

【二分】递增(luogu 3902)

递增 luogu 3902 题目大意&#xff1a; 给出一个序列&#xff0c;问最少修改多少个数字可以使他单调递增 输入样例 3 1 3 2输出样例 1 数据范围 对于50% 的数据&#xff0c;N≤103N \le 10^3N≤103 对于100% 的数据&#xff0c;1≤N≤105,1≤Ai≤1091 \le N \le 10^5 , …

AspNetCore 基于AOP实现Polly的使用

前言 说起AOP&#xff0c;其实我们在做MVC/API 的时候应该没少接触&#xff0c;比如说各种的Fitter 就是典型的AOP了。本来在使用Polly的时候我最初的打算是使用过滤器来实现的&#xff0c;后来发现实现起来相当的困难&#xff0c;利用NetCore的中间以及过滤器去实现一个AOP的…

HDU5794 - A Simple Chess

HDU5794 - A Simple Chess 做法&#xff1a;首先的想法就是用总方案数减去&#xff0c;经过过障碍的方案数A。第一个思路就是容斥&#xff0c;但是显然不符合数据规模。另一个思路就是将障碍物从左上到右下排序&#xff0c;dp[i] 表示不经过前i-1个障碍&#xff0c;到达第i个障…

P1829-[国家集训队]Crash的数字表格/JZPTAB【莫比乌斯反演】

正题 题目链接:https://www.luogu.com.cn/problem/P1829 题目大意 给出n,mn,mn,m求∑i1n∑j1mlcm(i,j)\sum_{i1}^n\sum_{j1}^mlcm(i,j)i1∑n​j1∑m​lcm(i,j) 解题思路 ∑i1n∑j1mijgcd(i,j)\sum_{i1}^n\sum_{j1}^m\frac{ij}{gcd(i,j)}i1∑n​j1∑m​gcd(i,j)ij​ ∑x1nx(∑…

.NET Core开发日志——配置

熟悉ASP.NET的开发者一定对web.config文件不陌生。在ASP.NET环境中&#xff0c;要想添加配置参数&#xff0c;一般也都会在此文件中操作。其中最常用的莫过于AppSettings与ConnectionStrings两项。而要在代码中获得文件中的配置信息&#xff0c;ConfigurationManager则是必不可…

【模拟】杯子

杯子 题目大意&#xff1a; 有n个1&#xff0c;现在可以将两个相同的数加在一起&#xff0c;使数字个数-1&#xff0c;现在要将数字个数控制在k以下&#xff08;包括k&#xff09;&#xff0c;但可能要多加几个1&#xff0c;现在问你最少加多少个1 输入样例#1 3 1 输出样例…

操作集锦【牛客网】 牛客练习赛60

题目传送 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld 题目描述 有一款自走棋有26种操作,每种操作我们都用a,b,c,d,…,x,y,z的符号来代替. 现在牛牛有一个长度为nnn的操作序列,他现…

[2020.11.3NOIP模拟赛]选数字【容斥】

正题 题目链接:https://www.luogu.com.cn/problem/U138404?contestId36493 题目大意 nnn个数字&#xff0c;每次询问一个区间有多少个三对数或为xxx。 解题思路 首先显然这些数都不能有xxx没有的位数&#xff0c;那么我们选择的数都得是被xxx包含的&#xff0c;这些数的数量…

Codeforces 1054D Changing Array

Codeforces 1054D Changing Array 做法&#xff1a;给定一个序列&#xff0c;每个数可以把在2进制k位下取反&#xff0c;也可以不变&#xff0c;在改变后&#xff0c;这个序列异或和不为0的区间的个数。考虑如何求出尽可能少的异或为0的序列&#xff0c;对序列求前缀之后&#…

解决C# 7.2中的结构体性能问题

在某些使用了readonly关键字的情况下&#xff0c;C#编译器会创建出结构体的防御副本。虽然这个问题已经众所周知并被记录下来了&#xff0c;但仍然值得重新审视&#xff0c;因为它与C# 7.2的几个特性有关。in和ref readonly关键字的使用让这个问题出现得更频繁&#xff0c;而re…

【DP】玩具

玩具 题目大意&#xff1a; 有n个物品&#xff0c;每个物品有自己的代价&#xff0c;相邻的物品不能同时购买&#xff0c;现在有m元&#xff0c;问最多买多少件物品 输入样例 3 8 4 4 5 输出样例 1 数据范围 对于30%的数据&#xff0c;n≤10&#xff1b; 对于60%的数据&…

P4867-Gty的二逼妹子序列【平衡结合,莫队,分块】

正题 题目链接:https://www.luogu.com.cn/problem/P4867 题目大意 一个序列要求支持询问一个区间[l,r][l,r][l,r]内在[a,b][a,b][a,b]之间有多少种不同的权值。 解题思路 首先我们需要莫队&#xff0c;考虑用什么数据结构&#xff0c;如果我们使用线段树&#xff0c;那么复杂…

Mail.Ru Cup 2018 Round 2

Mail.Ru Cup 2018 Round 2 C. Lucky Days 题意&#xff1a;找出最长的一段连续区间&#xff0c;同时被\([l_a k_at_a, r_a k_at_a]\) , \([l_b k_bt_b, r_b k_bt_b]\)覆盖。 做法&#xff1a;设最终的答案为\([L,R]\),那么\(L\)一定是\(l_a k_at_a,~~ l_b k_bt_b\), \(R\…

使用ML.NET实现基于RFM模型的客户价值分析

RFM模型在众多的客户价值分析模型中&#xff0c;RFM模型是被广泛应用的&#xff0c;尤其在零售和企业服务领域堪称经典的分类手段。它的核心定义从基本的交易数据中来&#xff0c;借助恰当的聚类算法&#xff0c;反映出对客户较为直观的分类指示&#xff0c;对于没有数据分析和…

【模拟】【递归】【dfs】恐怖的奴隶主

恐怖的奴隶主 题目大意&#xff1a; 有4个bigbob&#xff08;我们简称BB&#xff09;&#xff0c;每个BB有自己的初始血量&#xff08;最大为k&#xff09;&#xff0c;当某个BB死后&#xff0c;其他受伤的BB会在最左边的空格召唤一个最大血量为s[t]的BB&#xff08;t为当前受…