[HEOI2014]平衡(整数划分数)
下课了,露露、花花和萱萱在课桌上用正三棱柱教具和尺子摆起了一个“跷跷板”。
这个“跷跷板”的结构是这样的:底部是一个侧面平行于地平面的正三棱柱教具,上面 摆着一个尺子,尺子上摆着若干个相同的橡皮。尺子有 2n + 1 条等距的刻度线,第 n + 1 条 刻度线恰好在尺子的中心,且与正三棱柱的不在课桌上的棱完全重合。
露露发现这个“跷跷板”是不平衡的(尺子不平行于地平面)。于是,她又在尺子上放 了几个橡皮,并移动了一些橡皮的位置,使得尺子的 2n + 1 条刻度线上都恰有一块相同质 量的橡皮。“跷跷板”平衡了,露露感到很高兴。
花花觉得这样太没有意思,于是从尺子上随意拿走了 k 个橡皮。令她惊讶的事情发生了: 尺子依然保持着平衡! 萱萱是一个善于思考的孩子,她当然不对尺子依然保持平衡感到吃惊,因为这只是一个 偶然的事件罢了。令她感兴趣的是,花花有多少种拿走 k 个橡皮的方法,使得尺子依然保 持平衡?当然,为了简化问题,她不得不做一些牺牲——假设所有橡皮都是拥有相同质量的 质点。但即使是这样,她也没能计算出这个数目。放学后,她把这个问题交给了她的哥哥/ 姐姐——Hibarigasaki 学园学生会会长,也就是你。当然,由于这个问题的答案也许会过于 庞大,你只需要告诉她答案 mod p 的值。
Solution
非常好的一道题。
题目相当于在两边放k个数,使他们相等,我们可以跑一个整数划分数dp。
但是这道题有一个限制是每个数是n以内的。
所以我们要在枚举超过n时减掉不合法方案数,dp[i-(n+1)][j-1]就是不合法方案。
最后枚举一边放了多少个,算一下,注意讨论中间放的情况。
Code
#include<iostream> #include<cstdio> #define R register using namespace std; long long dp[150009][15],ans,n,k,p,t; int main() {scanf("%lld",&t);for(int o=1;o<=t;++o){scanf("%lld%lld%lld",&n,&k,&p);ans=0;dp[0][0]=1;for(R int i=1;i<=n*k;++i)for(R int j=1;j<=i&&j<=k;++j){dp[i][j]=(dp[i-j][j-1]+dp[i-j][j])%p;if(i>n)dp[i][j]=(dp[i][j]-dp[i-(n+1)][j-1]+p)%p;}for(R int j=0;j<=k;++j)for(R int i=0;i<=n*k;++i){ans=(ans+dp[i][j]*dp[i][k-j])%p;if(j<k)ans=(ans+dp[i][j]*dp[i][k-j-1])%p;}printf("%lld\n",ans);}return 0; }
转载于:https://www.cnblogs.com/ZH-comld/p/9823152.html
[HEOI2014]平衡(整数划分数)相关推荐
- 退役前的做题记录1.0
退役前的做题记录1.0 租酥雨最近很懒qwq,具体表现在写题的时候不想发题解了. 但是想想这样也不太好,就决定发个一句话(半句话到几句话不等)题解上来. 2018-09.18-2018-09.28 [ ...
- [游记]SDOI2017 R2酱油记
day-1 下午刚刚从APIO回来晚上就被叫去参加面试培训. 看到xiaoyimi大爷被裱来裱去-qwqwq xyx大爷全程笑场. 好像没什么用处-- 因为第二天要坐车修仙到很晚 Day0 上午zZZ ...
- NYOJ 整数划分(三) (划分数大集合)
题意:虽然是中文题意但是还是想上一下题 题目描述 整数划分是一个经典的问题.请写一个程序,完成以下要求. 输入 每组输入是两个整数n和k.(1 <= n <= 50, 1 <= k ...
- 【swjtu】数据结构实验8_平衡二叉排序树
实验内容及要求: 从键盘输入若干两两互不相同的非0整数,直到输入0时停止.将输入的所有非0整数按输入次序插入二叉排序树来构造平衡的二叉排序树.输出平衡的二叉排序树的先序和中序递归遍历次序:按中序递归遍 ...
- C语言接收一个整数划分成5的倍数,整数划分为连续整数;整数划分
参考博客:http://www.cnblogs.com/nokiaguy/archive/2008/05/11/1192308.html 1.整数划分为连续整数: 如将15划分为连续整数之和: 15 ...
- 平衡查找树C语言程序,树4. Root of AVL Tree-平衡查找树AVL树的实现
对于一棵普通的二叉查找树而言,在进行多次的插入或删除后,容易让树失去平衡,导致树的深度不是O(logN),而接近O(N),这样将大大减少对树的查找效率.一种解决办法就是要有一个称为平衡的附加的结构条件 ...
- 导致溢出_由整数类型溢出导致的英雄联盟峡谷惨案
最近,英雄联盟迎来了 S11 赛季的版本大更新.作为一名从 S2 一路走过来的老玩家,我自然也是非常的关注.除了发生了巨变的装备系统之外,各种各样的 bug,也是在玩家之间炽手可热的话题.这其中,较为 ...
- 输入 n 个整数,输出其中最小的 k 个
2019独角兽企业重金招聘Python工程师标准>>> /* 输入 n 个整数,输出其中最小的 k 个* TreeMap 和 TreeSet 是 Java Collection Fr ...
- hdu 5230(整数划分,dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5230 解题思路: 这是一个整数划分的模型: 将n划分为k个整数的划分数 设dp[i][j]为将i划分为 ...
最新文章
- NIPS2018 | 腾讯AI Lab入选20篇论文,含2篇Spotlight
- 专家认为自动驾驶汽车需要很多年的五个原因
- python3解析json数据_Python3高级教程
- mysql查询当天最新的一张表_mysql 查询当天、本周,本月,上一个月的数据
- Ubuntu 18.04 安装 MySQL 5.7【解决普通用户登录、密码修改、远程访问等问题】
- 电气论文:基于粒子群算法的梯级水火电力系统优化调度【有代码】
- PHP获取用户地址方法
- [BZOJ 2839]集合计数
- ASP.NET Core Web 支付功能接入 微信-扫码支付篇
- 快播王欣:区块链今天最重要的成果还只是理念布道
- php过滤句尾空格,php正则过滤各种标签,空格,换行符的实现方法
- SOT23-6封装随机数发生芯片,串行接口
- Proxy.newProxyInstance处引起 java.lang.ClassCastException 问题的解决方法
- jQuery学习笔记03
- 【项目实践】充电台灯电路拆解
- asp.net在前台web页面中使用Javascript调用RTX腾讯通的聊天窗口
- 用PS做一个简单的相机图标
- rsyslog+elk 网络设备日志收集及钉钉报警
- VR 、SR 轴矢冠三个切面的显示
- 怎样正确的维护使用电脑
热门文章
- 办公族的健康提醒脚本
- opencv_4.5.0/OpenCvSharp4.0 九点标定
- python中用来回溯异常的模块_为什么Python线缓存会影响回溯模块而不影响...
- 故障处理 软件 需求_如何根据GJB 102A开展软件安全性分析 —— 下篇
- C语言程序设计代码树,校门外的树 (C语言代码)
- windows 远程访问别人的linux下的ftp服务器,linux与windows之间使用ftp相互访问(CentOS提示ftp:command not found)...
- 家用电器用户行为分析与事件识别_用户行为分析埋点实时数仓实践
- 相机数据格式设置不对踩坑
- crowd counting_[Crowd_Counting]-PGCNet-ICCV2019
- js---PC端滑动进度条