T48566 【zzy】yyy点餐

题目描述

yyy去麦肯士吃垃圾食品。

麦肯士有n种单点餐品(汉堡薯条鸡翅之类的)。每次选择一种或者以上的餐点,且每种餐点不多于一个的话,可以认为是购买套餐。购买一个套餐,价格是单品价格的总和(真黑啊),但是可以送一个玩具,yyy最喜欢麦肯士的玩具了。不过有规定即使多次购买同一种套餐(也就是里面的餐点的种类和数量完全一样)也只能获得一个玩具。

yyy为了收集尽可能多的玩具,需要买尽可能多种的套餐。请问如果想要收集到最多的玩具数量,至少要花掉多少钱?由于yyy是个土豪,所以我们需要输出ans mod 998244353的结果。

说明

【样例解释】

1 / 2 / 3 / 4 / 5
12 / 13 / 14 / 15
23 / 24 / 25
34 / 35 / 45/
123 / 124 / 125 / 134 / 135 / 145
234 / 235 / 245
345
1234 / 1235 / 1245 / 1345 / 2345
12345

1≤n≤1000000


错误日志: 输出的时候忘记模了QAQ


Solution

设 \(tot\) 为所有单点餐品的总花费和

显然当套餐内单品数量为 \(k\) 时, 这一组套餐总共会花费 \(C_{n}^{k} * k * tot * \frac{1}{n}\)

那么总答案即为:

\[ans = tot * \frac{1}{n}\sum_{k = 1}^{n}C_{n}^{k} * k
\]

组合数可以用二项式定理展开求得, 难搞的是每一项要乘个 \(k\)

于是尝试把 \(k\) 弄出来

\[\sum_{k = 1}^{n}C_{n}^{k} * k$$$$=\sum_{k = 1}^{n}C_{n}^{k} * k + 0$$$$=\sum_{k = 1}^{n}C_{n}^{k} * k + C_{n}^{1} * 0$$$$=\sum_{k = 0}^{n}C_{n}^{k} * k
\]

通式不好说明, 以 \(n = 5\) 为例:

\[\sum_{k = 0}^{5}C_{5}^{k} * k$$$$= C_{5}^{0} * 0 + C_{5}^{1} * 1 + C_{5}^{2} * 2 + C_{5}^{3} * 3 + C_{5}^{4} * 4 + C_{5}^{5} * 5$$$$=\frac{1}{2}(C_{5}^{0} * 0 + C_{5}^{0} * 0 + C_{5}^{1} * 1 + C_{5}^{1} * 1 + C_{5}^{2} * 2 + C_{5}^{2} * 2 + C_{5}^{3} * 3 + C_{5}^{3} * 3 + C_{5}^{4} * 4 + C_{5}^{4} * 4 + C_{5}^{5} * 5 + C_{5}^{5} * 5)$$$$=\frac{1}{2}(C_{5}^{0} * 0 + C_{5}^{5} * 5 + C_{5}^{1} * 1 + C_{5}^{4} * 4 + ... + C_{5}^{5} * 5 + C_{5}^{0} * 0)$$$$=\frac{1}{2} * 5\sum_{k = 0}^{5}C_{5}^{k}
\]

将此式带入总答案式, 用通式加二项式定理表达为:

\[ans = tot * \frac{1}{n}\sum_{k = 0}^{n}C_{n}^{k} * k$$$$=tot * \frac{1}{n} * \frac{1}{2} * n\sum_{k = 0}^{n}C_{n}^{k}$$$$ = tot * \frac{1}{2} * 2^{n}$$$$=tot * 2^{n - 1}
\]

快速幂即可

Code

#include<iostream>
#include<cstdio>
#include<queue>
#include<cstring>
#include<algorithm>
#include<climits>
#define LL long long
#define REP(i, x, y) for(LL i = (x);i <= (y);i++)
using namespace std;
LL RD(){
LL out = 0,flag = 1;char c = getchar();
while(c < '0' || c >'9'){if(c == '-')flag = -1;c = getchar();}
while(c >= '0' && c <= '9'){out = out * 10 + c - '0';c = getchar();}
return flag * out;
}
const LL M = 998244353;
LL num, tot;
LL Q_pow(LL a, LL p, LL mod){
LL ret = 1;
while(p){
if(p & 1)ret = ret * a % mod;
a = a * a % mod;
p >>= 1;
}
return ret;
}
int main(){
num = RD();
REP(i, 1, num)tot = (tot + RD()) % M;
printf("%lld\n", tot * Q_pow(2, num - 1, M) % M);
return 0;
}

T48566 【zzy】yyy点餐的更多相关文章

  1. 解析ListView联动的实现--仿饿了么点餐界面

    一.博客的由来 大神王丰蛋哥 之前一篇博客仿饿了点餐界面2个ListView联动(http://www.cnblogs.com/wangfengdange/p/5886064.html) 主要实现了2 ...

  2. Flash Professional 报错 TypeError: Error #1034: 强制转换类型失败:无法将 xxxx@zzzz 转换为 yyy

    通常是因为xxx yyy 两个不同链接名的元件 使用了同一个属性名

  3. 仿饿了点餐界面2个ListView联动

    如图是效果图 是仿饿了的点餐界面 1.点击左侧的ListView,通过在在适配器中设置Item来改变颜色,再通过notifyDataSetInvalidated来刷新并用lv_home.setSele ...

  4. [课程设计]Scrum 3.8 多鱼点餐系统开发进度(留言反馈系统设计)

    Scrum 3.8 多鱼点餐系统开发进度(留言反馈系统设计) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统 ...

  5. [课程设计]Scrum 3.7 多鱼点餐系统开发进度(留言板选择方案)

    Scrum 3.7 多鱼点餐系统开发进度(留言板选择方案) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统W ...

  6. [课程设计]Scrum 3.6 多鱼点餐系统开发进度(用户测试反馈页面构思&留言板设计)

    Scrum 3.6 多鱼点餐系统开发进度(用户测试反馈页面构思&留言板设计) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团 ...

  7. [课程设计]Scrum 3.5 多鱼点餐系统开发进度(修复Bug&美化页面)

    Scrum 3.5 多鱼点餐系统开发进度(修复Bug&美化页面) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅 ...

  8. [课程设计]Scrum 3.4 多鱼点餐系统开发进度(下单详细信息页面&会员信息页面)

    Scrum 3.4 多鱼点餐系统开发进度(下单详细信息页面&会员信息页面) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队 ...

  9. [课程设计]Scrum 3.3 多鱼点餐系统开发进度(下单详细信息页面设计)

    Scrum 3.3 多鱼点餐系统开发进度(下单详细信息页面设计)  1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点 ...

随机推荐

  1. bootstrap table的展开行问题

    照着网上与api里说的添加detailView属性设置为true,detailFormatter属性为展开后的内容,但是设置之后发现,在表格每一行最前面是多出一列正常该显示"+"的 ...

  2. Buaaclubs的NABC与发布

    NEED: 本项目主要目的是实现一个社团学生公共平台,平台的宗旨是为学生提供信息,为社团提供服务,在社团和学生之间建立联系.经过调查,我们发现了用户的以下需求: 需求一:社团发布信息,同学获知信息 这 ...

  3. Java 反射 不定参数bug

    遇到的第一个关于反射的bug:java.lang.IllegalArgumentException: wrong number of arguments的问题解析如下: 1.错误bug wrong n ...

  4. Java中实现PCA降维

    package com.excellence.splitsentence; import java.net.UnknownHostException; import java.util.ArrayLi ...

  5. AVL树/线索二叉树

    此文转载: http://www.cnblogs.com/skywang12345/p/3577360.html AVL树是一棵特殊的高度平衡的二叉树,每个节点的两棵子树高度最大差为1.所以在每次的删 ...

  6. Beta阶段团队项目开发篇章2

    例会时间: 2016.12.4 例会照片 个人工作 上阶段任务验收: 组员任务都已完成. 任务分配 组员 任务内容 韩慧敏 对调查问卷的结果进行分析和总结,确定Beta阶段各任务的优先级,撰写相关博客 ...

  7. jenkins构建启动失败

    有一个项目,在启动的时候读取了环境变量,第一次写了一个启动脚本如下 #!/bin/bash --login jarFile=$ pid=`ps -ef | grep $jarFile | grep ' ...

  8. apache重写规则 rewrite

    Rewrite规则表达式的说明: . 匹配任何单字符 [chars] 匹配字符串:chars [^chars] 不匹配字符串:chars text1|text2 可选择的字符串:text1或text2 ...

  9. IPV6 简单总结

    1. 转帖别人的内容 来源:https://www.2cto.com/net/201112/114937.html 2. 本地用IPV6单播地址 (包括链路本地单播地址 和 站点本地单播地址) 2.1 ...

  10. org.hibernate.UnknownEntityTypeException: Unable to locate persister: com.hibernate2.pojo.News at org.hibernate.internal.SessionFactoryImpl.locateEntityPersister(SessionFactoryImpl.java:797)

    使用的是hibernate5的方法: ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySetti ...