T48566 【zzy】yyy点餐
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}\)
那么总答案即为:
\]
组合数可以用二项式定理展开求得, 难搞的是每一项要乘个 \(k\)
于是尝试把 \(k\) 弄出来
\]
通式不好说明, 以 \(n = 5\) 为例:
\]
将此式带入总答案式, 用通式加二项式定理表达为:
\]
快速幂即可
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点餐的更多相关文章
- 解析ListView联动的实现--仿饿了么点餐界面
一.博客的由来 大神王丰蛋哥 之前一篇博客仿饿了点餐界面2个ListView联动(http://www.cnblogs.com/wangfengdange/p/5886064.html) 主要实现了2 ...
- Flash Professional 报错 TypeError: Error #1034: 强制转换类型失败:无法将 xxxx@zzzz 转换为 yyy
通常是因为xxx yyy 两个不同链接名的元件 使用了同一个属性名
- 仿饿了点餐界面2个ListView联动
如图是效果图 是仿饿了的点餐界面 1.点击左侧的ListView,通过在在适配器中设置Item来改变颜色,再通过notifyDataSetInvalidated来刷新并用lv_home.setSele ...
- [课程设计]Scrum 3.8 多鱼点餐系统开发进度(留言反馈系统设计)
Scrum 3.8 多鱼点餐系统开发进度(留言反馈系统设计) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统 ...
- [课程设计]Scrum 3.7 多鱼点餐系统开发进度(留言板选择方案)
Scrum 3.7 多鱼点餐系统开发进度(留言板选择方案) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统W ...
- [课程设计]Scrum 3.6 多鱼点餐系统开发进度(用户测试反馈页面构思&留言板设计)
Scrum 3.6 多鱼点餐系统开发进度(用户测试反馈页面构思&留言板设计) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团 ...
- [课程设计]Scrum 3.5 多鱼点餐系统开发进度(修复Bug&美化页面)
Scrum 3.5 多鱼点餐系统开发进度(修复Bug&美化页面) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅 ...
- [课程设计]Scrum 3.4 多鱼点餐系统开发进度(下单详细信息页面&会员信息页面)
Scrum 3.4 多鱼点餐系统开发进度(下单详细信息页面&会员信息页面) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队 ...
- [课程设计]Scrum 3.3 多鱼点餐系统开发进度(下单详细信息页面设计)
Scrum 3.3 多鱼点餐系统开发进度(下单详细信息页面设计) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点 ...
随机推荐
- PSP Daily软件beta版本——基于NABCD评论,及改进建议
1.根据(不限于)NABCD评论作品的选题: 此软件的用户人群较为明确,即:用户(软件工程课上学生)记录例行报告.写每周PSP表格和统计的需求.潜在用户还有未来该课堂的学生和需要用PSP方法记录任务完 ...
- Thirteenth scrum meeting 2015/11/11
发布bug整理集结: 手机用户体验优化优化: (1)主界面和课程界面的字体规格以及界面结构不同 (2)课程图片的大小格式不统一,造成美观下降 ( 3 )按钮的位置不美观 平板用户体验: (1)Tab键 ...
- 20172324《Java程序设计》第3周学习总结
20172324<Java程序设计>第3周学习总结 教材学习内容总结 随机数,记住要返回的是指定的字符前一个. String类型的一些用法,例如concat(连接),toUpperCase ...
- 第二阶段Sprint冲刺会议10
进展:把所有功能整合到主界面,结果导致视频只能播放不能录制,闹钟加不进去,导致闹钟功能差点不能用,放弃整合.
- ASP.net四则运算《《《策略模式
Calculator.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; / ...
- 【转】SQL SERVER 中 sp_rename 用法
因需求变更要改表的列名,平常都是跑到Enterprise manager中选取服务器->数据库->表,然后修改表,这样太麻烦了,查了一下,可以用script搞定,代码如下: EXEC sp ...
- [转帖]超能课堂 CPU制作过程
http://www.expreview.com/50814.html 一般来说,我们对IC芯片的了解仅限于它概念,但是对于已经应用到各式各样的数码产品中IC芯片是怎么来的?大家可能只知道制作IC芯片 ...
- maven下载、安装、卸载以及MyEclipse配置maven
maven下载 官网下载:http://maven.apache.org/download.cgi 点击链接为官网下载页面,翻到下图所示位置,点击红框选项即可下载 maven安装 1.解压 ...
- iOS 简单获取当前地理坐标
iOS 获取当前地理坐标 iOS获取当前地理坐标,很简单几句代码,但是如果刚开始不懂,做起来也会也会出现一些问题. 1.导入定位需要用到的库:CoreLocation.framwork ...
- Redis 基础:Redis 事件处理
Redis 事件处理 Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件: 文件事件(file event):Redis服务器通过套接字与客户端(或其他Redis服务器)进行连接,而文件事 ...