首页 > 其他分享 >Luogu P7627 题解

Luogu P7627 题解

时间:2023-10-05 15:44:37浏览次数:33  
标签:P7627 int 题解 sum long 异或 Luogu

这题其实不难

但如果用暴力,肯定过不了

所以我们得想另一种办法

我们发现,只有 \(1\) 异或 \(0\) 的值为 \(1\)

例如:

\(1\) , \(0\) , \(1\) 两两异或的和为 2

其实就是每个 \(0\) 与每一个 \(1\) 异或时,\(sum\) 要加 \(1\)

所以,我们只要把每一位的 \(0\) 和 \(1\) 的数量都统计出来,再进行运算,就可以快速得出 \(sum\)

\(AC\hspace{0.2cm}Code\)

#include<bits/stdc++.h>//万能头文件
#define int long long//记得开 long long
using namespace std;
int n,cnt[100],sum;
signed main(){
	scanf("%lld",&n);
	for(int i=1;i<=n;i++){
		int a,j=1;
		scanf("%lld",&a);
		while(a){
			cnt[j]+=a%2;//统计每一位 1 的个数
			j++;
			a/=2;
		}
	}
	for(int i=1;i<=30;i++){
		sum+=cnt[i]*(n-cnt[i])*(1<<(i-1));//算出每一位的异或值
	}
	printf("%lld",sum);
	return 0;//完美收尾
}

标签:P7627,int,题解,sum,long,异或,Luogu
From: https://www.cnblogs.com/I-like-magic/p/Luogu-P7627.html

相关文章

  • Luogu CF400C 题解
    这道题其实不难,只是一道非常简单的模拟题。我们发现,每顺时针转动\(4\)次、镜面对称\(2\)次、逆时针旋转\(4\)次,就变回原来的样子了。所以,在操作前,我们可以让\(x\getsx\bmod4\),\(y\getsy\bmod2\),\(z\getsz\bmod4\)。接下来,只需在草稿纸上画一画,即可知道顺时针转一次,一......
  • CodeForces 814E An unavoidable detour for home 题解
    更好的阅读体验题意题目链接(洛谷翻译)给出\(n\)个点,和每个点的度\(d_i\)让你构造出一张无向图满足以下两条性质:点\(1\)到点\(i\)仅有唯一一条最短路。点\(1\)到点\(i\)的最短路长度大于等于点\(1\)到点\(i-1\)的最短路长度。求能构成满足条件的无向图......
  • Luogu 300 粉粉福
    由于第二张图片是分期制作的,所以两次爬头像时,粉丝列表顺序可能会有微小的变动(比如取关会让后面的人往前一位),这就导致了有极少数粉丝被漏掉了。在此,我对大家道歉所有粉丝头像第一张图是动图,第二张图是一个\(1600\times1800\)的图片第一张图片加载可能比较慢封禁用户不在图片......
  • [题解] CF474E Pillars
    题意给定长度为\(n\)的序列\(a\)和常数\(d\),输出一个最长的\(a\)的子序列,使得相邻两项的差的绝对值大于等于\(d\)。\(n\le10^5\)题解数据结构优化DP的板子题了吧。首先,这道题看上去就很LIS,我们尝试着用类似LIS的思路去做。设\(f_i\)表示以\(i\)结尾的符合......
  • 题解 accoders::NOI 5510【飞翔的胖鸟(fly)】
    题解accoders::NOI5510【飞翔的胖鸟(fly)】problem求\(f(x)=\frac{ah}{\sin(x)}+bx\)在\((0,\frac\pi2]\)上的最小值。solution\(\sin'(x)=cos(x);\cos'(x)=-\sin(x)\)。\((f(x)\cdotg(x))'=f'(x)g(x)+f(x)g'(x)\)。\(\left(\dfrac{f......
  • 题解 accoders::NOI 5508【漂亮大厨(cook)】
    题解accoders::NOI5508【漂亮大厨(cook)】part1区间加\(x\),区间询问有多少个数字\(\leqy\)。\(n,m\leq10^5,x\leq200,y\leq10^7\)。考虑P5356[Ynoi2017]由乃打扑克的做法,分块,块内按照值排序。修改就整块打tag,散块暴力重构(可以归并排序重构);询问在整块上二分,散块暴力......
  • P9019 [USACO23JAN] Tractor Paths P 题解
    Description有\(n\)个区间,第\(i\)个区间为\([l_i,r_i]\)。保证\(l_1<l_2<\cdots<l_n\)且\(r_1<r_2<\cdots<r_n\)。其中一部分区间是特殊的,输入会给定。如果第\(i\)个区间和第\(j\)个区间相交,那么\(i,j\)之间有一条边。保证\(1,n\)联通。给定\(Q\)组询问,每次......
  • 题解 P9701【[GDCPC2023] Classic Problem】
    题如其名,确实挺经典的。我们称边权在输入中给定的边为特殊边,其它边为平凡边。称特殊边涉及到的点为特殊点,其它点为平凡点。显然,对于连续的若干平凡点\([l,r]\),他们内部的最优连边方式就是连成一条链,花费\(r-l\)的代价。我们先把这样的代价加到答案中,然后将极长连续平凡点缩成......
  • [SHOI2009] 会场预约 题解
    LG任意时刻每个点最多被一条线段覆盖暴力删每条线段是对的插入\([l,r]\)时需要删除的线段要么被\([l,r]\)包含,要么覆盖\(l\)或\(r\)性质非常强所以做法非常多一种比较神奇的:对于两条线段\([l_{1},r_{1}],[l_{2},r_{2}]\),定义<为\(r_{1}<l_{2}\),即线段\(1\)完......
  • 题解 accoders::NOI 5511【漂亮轰炸(bomb)】
    题解accoders::NOI5511【漂亮轰炸(bomb)】http://47.92.197.167:5283/contest/406/problem/4BZOJ3252是弱化版。problem一棵树,边带权。\(Q\)次询问,给定\(k\)和一个首都点,选择\(k\)条路径轰炸,其中必须由一轮要轰炸首都,但没有要求每条路径都经过首都。每条边只能被炸一次,......