IOI 2015 中国国家队清华集训 Day 1 (CTT 2014) 玛里苟斯

news/2024/12/22 16:45:17/文章来源:https://www.cnblogs.com/Yui-Hirasawa/p/18622259

题意

给定可重集,求其子集的异或的 \(k\) 次方和的期望。

$ |s| <= 10^5 , k \le 5 , 保证答案小于 2^{63} $。

分析

\(k=1\) 时,拆位算贡献即可。

\(k=2\) 时,同时考虑两位即可。

\(k \ge 3\),拆位不好计算,因为答案有上界 \(2^{63}\),所以 \(a_i<2^{21}\)

断言:每种异或和出现次数相等。

考虑 \(A=\oplus a,B=\oplus b\) 其出现次数,设 \(C=A \oplus B\),对于每一个 \(X=A\) 都有与之对应的 \(Y=C^X\) 对应,得证。

构造线性基,暴力枚举子集计算答案即可,\(O(2^size)\)

代码

#include <bits/stdc++.h>
#define lb(x) (x&-x)
using namespace std;
using ll=unsigned long long;
using LL=__int128;
using pii=pair<int,int>;
const int N=1e5+5;
ll n,k,v,a[N],p[21],c,t[21];
inline LL P(LL s,ll k){ return s*s*s*(k&4?k&1?s*s:s:1); }
void solve0(){for(int i=1;i<=n;i++)for(int j=20;~j;j--)if(a[i]>>j&1)if(!p[j]){ p[j]=a[i]; break; }else a[i]^=p[j];for(int i=20;~i;i--) p[i]?t[c++]=p[i]:0;__int128 w=0;for(int i=0;i<(1<<c);i++){ll s=0; for(int j=0;j<c;j++)if(i>>j&1) s^=t[j]; w+=P(s,k);} (w>>=c-1)&1?printf("%llu.5",w>>1):printf("%llu",w>>1);
}
void solve1(){ v&1?printf("%llu.5",v>>1):printf("%llu",v>>1); }
void solve2(){ ll s=0;for(int i=0;i<32;i++)for(int j=i+1;j<32;j++)if((v>>i&1)&&(v>>j&1))s+=1ll<<i+j;v&1?printf("%llu.5",(v>>1)+s):printf("%llu",(v>>1)+s);
}
int main(){scanf("%llu%llu",&n,&k);for(int i=1;i<=n;i++)scanf("%llu",a+i),v|=a[i];if(k==1) solve1();else if(k==2) solve2();else solve0(); return 0;
}

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

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

相关文章

jquery响应式弹出层lightbox插件slick-lightbox.js

slick-lightbox.js是一款基于slick.js和jquery的响应式弹出层lightbox插件。该jquery lightbox插件支持图片懒加载,支持键盘交互,支持HTML5 History API等。功能非常强大。在线预览 下载安装 可以通过bower来安装slick-lightbox.js插件。bower install -S slick-lightbox …

我用cursor, 半就开发了一个手机壁纸小程序,真的太强了

我用cursor, 半就开发了一个手机壁纸小程序,真的太强了。原来一周的工作量,半天搞定。体验可以微信搜索《程序员博博》同名。前言 我用chatGPT帮我写后端爬虫,分析知乎html代码,爬取知乎壁纸。然后用cursor AI工具,完全使我一个不懂前端uniapp框架的人,开发了一个小程序手…

投票:你愿意为了gxyz的图标捐献token吗?

投票:你愿意为了gxyz的图标捐献token吗?(点击选项进行投票): 愿意,请把token发给洛谷上的Leo2126 不愿意,但不愿意加入铁一 不愿意,要去铁一 蒟蒻的每一天

存储引擎整理

// 数据库的结构 // 连接层,服务层,引擎层,存储层 //创建表时,指定存储引擎 // create table name ( // ... // )engine = 存储引擎; // 查看当前数据库支持的存储引擎 // show engines; // ---------------------------------------------------------------------------…

引用 | 如何将正文引用批量设置上标?

本方法适用对象: 请注意,本方法针对下图所示论文引用格式: ①外部:半角中括号 ②内部:数字,数字与半角逗号的组合,数字与连接符号的组合,数字、半角逗号与连接符号的组合主要步骤: 1. 打开高级查找2. 在查找内容中输入\[[0-9,-]{1,}\],并勾选搜索选项中的“使用通配符…

2024秋季学期 人工智能导论期末复习笔记

2024秋季学期(二秋)人工智能导论期末复习笔记Chapter3 知识推理Chapter4 不确定推理Chapter5-1 机器学习Chapter5-2 深度学习Chapter5-3 强化学习

鸿蒙开发实战:揭秘页面与项目生命周期,实现精准监控

前言 在鸿蒙应用开发中,每一个页面和组件都承载着特定的生命周期。这些生命周期阶段,如同生命的轨迹,记录着页面从诞生到消亡的每一个重要时刻。深入理解和监控这些生命周期,不仅能提升应用性能,还能帮助我们更好地把握用户体验。 1. 鸿蒙@Component组件生命周期详解 在鸿…

2024-2025-1 20241318M《计算机基础与程序设计》第十三周学习总结

作业信息这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK13这个作业的目标 <自学教材《C语言程序设计》第12章并完成云班课测试>| |作业正文|https://i.cnblogs.com…

基于HarmonyOS 5.0 (Next)的一种面向多设备跨平台的高性能自适应布局能力研究和实现

引言 随着万物互联时代的到来,操作系统作为连接设备、应用与用户体验的核心,其重要性日益凸显。华为最新发布的HarmonyOS 5.0(Next)作为一款完全自主的第三大手机操作系统,不仅实现了全栈自研,更在技术架构和生态体验上实现了颠覆性升级。HarmonyOS 5.0(Next)通过全新的…

2024-2025-1 20241319 《计算机基础与程序设计》第十三周学习总结

作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK13这个作业的目标 《C语言程序设计》第12章作业正文 https://www.cnblogs.com/wchxx/p/18622144**教材学习内容总结 结构体(struct) 1…

【原创】xenomai环境下开源实时数控系统LinuxCNC编译安装

LinuxCNC是一款基于Linux操作系统的开源实时数控系统,可将普通计算机转变为高效的CNC(计算机数字控制)机器,本文记录xenomai下linuxcnc的构建安装。linuxcnc 在xenomai下的构建简单记录,参考链接https://www.linuxcnc.org/docs/devel/html/code/building-linuxcnc.html 1.…

2024-2025-1 20241301 《计算机基础与程序设计》第十三周学习总结

|这个作业属于哪个课程|2024-2025-1-计算机基础与程序设计| |这个作业要求在哪里|2024-2025-1计算机基础与程序设计第一周作业| |这个作业的目标|<复习知识,巩固基础>| |作业正文|https://www.cnblogs.com/HonJo/p/18622132| 一、教材学习内容 (一)网络 根据提供的搜索…