当前位置:网站首页>“蔚来杯“2022牛客暑期多校训练营4 补题题解(N)
“蔚来杯“2022牛客暑期多校训练营4 补题题解(N)
2022-08-03 00:38:00 【QingQingDE23】
“蔚来杯“2022牛客暑期多校训练营4
觉得有帮助的点个赞! [比赛地址](https://ac.nowcoder.com/acm/contest/33189) [参考的大佬题解](https://zhuanlan.zhihu.com/p/548121328)
N Particle Arts
比赛是想出思路了,但是竟然莫名其妙过不去,可能是因为1e5n的n三次方爆了,但是long long明明可以存下这么多,我不理解

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define db double
const int N = 1e5 + 10;
int n;
int a[N];
int cnt[20]; //记录第i位有几个1,从右往左排n~1
int get_wei(int x){
int res = 0;
while(x){
res ++ ;
x >>= 1;
}
return res;
}
int get_er(int x, int y){
//x这个数有y位二进制数
int res = 0;
for(int i = 1; i <= y; i ++ ){
if(x & 1){
res ++ ;
cnt[i] ++ ;
}
x >>= 1;
}
return res;
}
int tui(int iu){
//填充1
int res = 0;
for(int i = iu; i >= 1; i -- ){
if(cnt[i]){
res ++ ;
cnt[i] -- ;
}
res <<= 1;
}
res >>= 1;
return res;
}
int gcd(int a, int b){
if(b) return gcd(b, a % b);
else return a;
}
int li; //记录1的个数
int iu; //最高位有几位
int sum; //计算数值和
int ans1, ans2;
int sut;
signed main()
{
cin>>n;
for(int i = 0; i < n; i ++ ){
scanf("%lld", &a[i]);
sum += a[i];
int r = get_wei(a[i]);
iu = max(iu, r); //记录最高位数
li += get_er(a[i], r); //累加1的个数
}
//sum已记录
for(int i = 0; i < n; i ++ ){
//填充n个数
int t = tui(iu);
ans1 += t * t;
sut += sum * t;
}
ans1 *= n;
ans1 += sum * sum;
ans1 -= 2 * sut;
ans2 = n * n;
int ou = gcd(ans1, ans2);
if(ou > 1){
ans1 /= ou;
ans2 /= ou;
}
//最小公倍数*最大公约数=a*b
//最小公倍数=ans1*n/最大公约数
if(ans1 == 0) cout<<"0/1"<<endl;
else cout<<ans1<<"/"<<ans2<<endl;
return 0;
}
边栏推荐
- random.nextint()详解
- 通力传动递交注册:年营收4.7亿 实控人项献忠家族色彩浓厚
- GoLang 使用 goroutine 停止的几种办法
- 【图像分类】2022-MPViT CVPR
- PyCharm中常用的快捷键用法详解
- GTK实现水波纹效果
- npm运行项目dependencies were not found: core-js/modules/es6.array.fill
- 暴力递归到动态规划 07(516. 最长回文子序列)
- 【Gopher 学个函数】边学边练,简单为 Go 上个分
- Greenplum database failure analysis, can not listen to the port
猜你喜欢
随机推荐
图文详细解决IDEA使用Debug模式启动项目一直转圈圈跑起不来(亲测可以)
嵌入式开发:嵌入式基础——’ ’和” ”的区别
浅谈I2C知识
PAT甲级 1051 Pop Sequence
面试题 08.07. 无重复字符串的排列组合 ●●
.NET深入解析LINQ框架(四:IQueryable、IQueryProvider接口详解)
【Gopher 学个函数】边学边练,简单为 Go 上个分
投资的思考
v-if条件判断及v-show
js显示隐藏手机号
买了一瓶饮料
【遥控器开发基础教程4】疯壳·开源编队无人机-SPI(OLED)
全栈---JSONP
NVM和NRM
npm运行项目dependencies were not found: core-js/modules/es6.array.fill
【多线程】Thread类的基本用法
v-if、v-else、v-elseif v-show v-for
牛客网剑指offer刷题练习之链表中环的入口结点
2022-08-02:小红拿到了一个大立方体,该大立方体由1*1*1的小方块拼成,初始每个小方块都是白色。 小红可以每次选择一个小方块染成红色, 每次小红可能选择同一个小方块重复染色, 每次染色以后,
鲲鹏devkit开发套件









