正题

题目链接:https://www.luogu.com.cn/problem/CF643F


题目大意

题目有点奇怪就直接放翻译了

有 \(n\) 只熊和若干桶果汁和恰好一桶酒,每一天每只熊会选择一些桶(可能不选)并各喝一 杯,喝到酒的熊会去睡觉并不再回来,通过这个信息,熊们想知道哪个桶里是酒。

只有 \(p\) 个睡 觉的位置,当睡觉的熊超过了 \(p\) 只或者所有熊都在睡觉时熊们就失败了。

令 \(R_i\) 表示在 \(i\) 天内桶的数量最多少,使得熊可以成功知道酒的位置。令 \(X_i = (i\times R_i) \bmod 2^{32}\),你需要求出 \(X_1 \oplus X_2 \oplus\ldots \oplus X_q\)。

\(1\leq n\leq 10^9\),\(1\leq p\leq 130\),\(1\leq q \leq 2\times 10^6\)。


解题思路

之前在XJ杂题选讲时候的神奇题目

题目比较乱但是我们发现题目问的是最多的数量,而不是最劣情况下的最多数量,所以这个东西是在最优情况下能分辨的数量。

这是我们之前很少接触的一种形式,这里需要用到信息的概念,因为我们是最优的,相当于我们所有的情况都可以去尝试,也就是每种信息都可以为我们选出一个答案,那么显然我们让选出的这些答案两两不同肯定就是最优的,所以这里的\(R_i\)就表示\(i\)天以内我们能够获取的信息的数量

那么我们现在能够得到的信息数就是有多少头熊睡着了,和分别在哪一天睡着的,那么有

\[R_i=\sum_{j=1}^{min\{p-1,n\}}\binom{n}{j}i^j
\]

也就是组合睡觉的熊,然后每个睡觉的都可以在任意天的时候睡觉

这个东西主要是\(\binom{n}{j}\)因为没有逆元比较麻烦,但是因为\(j\)比较小所以我们可以直接暴力枚举上下的因子然后消掉他们的\(gcd\)就好了

时间复杂度\(O(p^3\log p+q\times p)\)


code

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
int n,p,q;
unsigned ans,f[300];
vector<int> a,b;
int main()
{
scanf("%d%d%d",&n,&p,&q);
p=min(n-1,p);
for(int i=0;i<=p;i++){
a.clear();b.clear();f[i]=1;
for(int j=0;j<i;j++)a.push_back(n-j);
for(int j=1;j<=i;j++)b.push_back(j);
for(int x=0;x<a.size();x++)
for(int y=0;y<b.size();y++){
int d=__gcd(a[x],b[y]);
a[x]/=d;b[y]/=d;
}
for(int x=0;x<a.size();x++)f[i]=1u*a[x]*f[i];
}
for(int i=1,t=1;i<=q;i++){
unsigned tmp=0,k=1;
for(int j=0;j<=p;j++,k=1u*i*k)
tmp+=f[j]*k;
ans^=1u*i*tmp;
}
printf("%u",ans);
}

CF643F-Bears and Juice【组合数学】的更多相关文章

  1. Codeforces 643F - Bears and Juice(思维题)

    Codeforces 题目传送门 & 洛谷题目传送门 首先直接暴力枚举显然是不现实的,我们不妨换个角度来处理这个问题,考虑这 \(R_i\) 个瓶子中每一瓶被哪些熊在哪一天喝过. 我们考虑对这 ...

  2. 【BZOJ-4435】Juice Junctions 最小割树(分治+最小割)+Hash

    4435: [Cerc2015]Juice Junctions Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 20  Solved: 11[Submi ...

  3. poj 3734 Blocks 快速幂+费马小定理+组合数学

    题目链接 题意:有一排砖,可以染红蓝绿黄四种不同的颜色,要求红和绿两种颜色砖的个数都是偶数,问一共有多少种方案,结果对10007取余. 题解:刚看这道题第一感觉是组合数学,正向推了一会还没等推出来队友 ...

  4. ural 2071. Juice Cocktails

    2071. Juice Cocktails Time limit: 1.0 secondMemory limit: 64 MB Once n Denchiks come to the bar and ...

  5. 组合数学or not ---- n选k有重

    模板问题: 1. 取物品 (comb.pas/c/cpp) [问题描述] 现在有n个物品(有可能相同),请您编程计算从中取k个有多少种不同的取法.[输入] 输入文件有两行,第一行包含两个整数n,k(2 ...

  6. 组合数学(全排列)+DFS CSU 1563 Lexicography

    题目传送门 /* 题意:求第K个全排列 组合数学:首先,使用next_permutation 函数会超时,思路应该转变, 摘抄网上的解法如下: 假设第一位是a,不论a是什么数,axxxxxxxx一共有 ...

  7. uestc1888 Birthday Party    组合数学,乘法原理

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=25539#problem/G 题目意思: 有n个人,每个人有一个礼物,每个人能拿 ...

  8. UVA 11076 Add Again 计算对答案的贡献+组合数学

    A pair of numbers has a unique LCM but a single number can be the LCM of more than one possiblepairs ...

  9. POJ3252——Round Number(组合数学)

    Round Numbers DescriptionThe cows, as you know, have no fingers or thumbs and thus are unable to pla ...

随机推荐

  1. swagger2 注解说明文档

    @Api:用于类上,说明该类的作用.可以标记一个Controller类做为swagger 文档资源 @Api(value = "xxx", description = " ...

  2. 【axios】API 说明

    基于promise用于浏览器和node.js的http客户端 特点 支持浏览器和node.js 支持promise 能拦截请求和响应 能转换请求和响应数据 能取消请求 自动转换JSON数据 浏览器端支 ...

  3. Django中的增删改查

    1.model 假设我们的model如下: 某个JobType下有很多Job. class JobType(models.Model): name = models.CharField(max_len ...

  4. servlet中servletContext的五大作用(三)

    1.    获取web的上下文路径 2.    获取全局的参数 3.    作为域对象使用 4.    请求转发 5.    读取web项目的资源文件 package day10.about_serv ...

  5. git《一》

    org.eclipse.jgit.api.errors.TransportException: https://gitee.com/wbweb/springboot_vue.git: Authenti ...

  6. Red Hat Enterprise Linux 7.2修改主机名(hostname)

    Red Hat Enterprise Linux 7.2在安装的时候,会默认生成主机名:localhost. 那么如何修改成自己想要的自己名? //格式为:用户名@主机名 比如: [root@loca ...

  7. 【Qt pro 文件配置】

    一.默认配置 默认的pro文件配置如下: 如果采用Qt默认的pro配置,其编译后产生的文件会默认集中分布在debug和release目录下,如下图的obj和moc等文件对后续打包发布并没有意义. 二. ...

  8. JDBC分页查询及实现

    当数据过多时,一页之内是无法显示的,因此需要进行分页显示. (一)分页技术实现: 物理分页: - 在数据库执行查询时(实现分页查询),查询需要的数据--依赖数据库的SQL语句 - 在sql查询时,从数 ...

  9. LeetCode通关:通过排序一次秒杀五道题,舒服!

    刷题路线参考:https://github.com/chefyuan/algorithm-base 大家好,我是拿输出博客督促自己刷题的老三,前面学习了十大排序:万字长文|十大基本排序,一次搞定!,接 ...

  10. markdown的骚气操作(一)

    markdown 系列其他内容   markdown的骚气操作(一)✓   latex的骚气操作(二) 本文目标 主要介绍markdown锚点.索引脚注.对勾及选择框.表格显示位置和符号显示位置.绘制 ...