2018 Multi-University Training Contest 9 杭电多校第九场 (有坑待补)
咕咕咕了太久 多校博客直接从第三场跳到了第九场orz 见谅见谅(会补的!)
明明最后看下来是dp场 但是硬生生被我们做成了组合数专场…… 听说jls把我们用组合数做的题都用dp来了遍 这里只放了用组合数的题目 dp的还没有补(这又是一个大坑orz)
1001 Rikka with Nash Equilibrium (hdoj 6415)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=6415
题意:给一个n*m的矩阵 其中放着从1到n*m的严格不想等的数字 只能有一个位置的数字在这一行这一列都是最大 求这样的排放方案数 并且将方案数对k取模 其中k并不是质数
想到了用概率的思想去做 一个数放在每个位置上的概率都是相等的 先放最大的那个数 若放在列上 则有n!种放置方法 若放在行上 则有m!种放置方法 而一行一列则是有(n+m-1)个位置 所以放置位置的概率就是
n!*m!/(n+m-1)!,最后是n*m个数的全排列
推出来的式子为:n!*m!/(n+m-1)!*(n*m)!
代码如下:
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring>using namespace std; typedef long long ll; ll t,n,m,k,ans;ll comb(ll x){ll sum=1;for(int i=1;i<=x;i++){sum=(sum*i)%k;}return sum; }int main(){scanf("%lld",&t);while(t--){scanf("%lld%lld%lld",&n,&m,&k);ll ans=comb(n)*comb(m)%k;ll t1=n+m,t2=n*m;ll res=1;for(int i=t1;i<=t2;i++){res=(res*i)%k;}ans=(ans*res)%k;printf("%lld\n",ans);}return 0; }
View Code
1004 Rikka with Stone-Paper-Scissors (hdoj 6418)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=6418
签到题
题意:两方博弈 自己一方剪刀 石头 布的数量分别为x y z 对方为a b c 算出自己获胜的概率 需要约分
需要注意到的就是负数情况
代码如下 一些必要的注释已经写在里面了
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm>using namespace std; typedef long long ll; int t; ll a,b,c,x,y,z,n,t1,t2,t3,p,d;ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}int main(){scanf("%d",&t);while(t--){cin>>a>>b>>c>>x>>y>>z;n=a+b+c;t1=x*(c-b); //x做出的贡献t2=y*(a-c); //y做出的贡献t3=z*(b-a); //z做出的贡献p=t1+t2+t3; d=gcd(p,n); //约分 if(d<0) d=-d;p/=d;n/=d;if(n==1) cout<<p<<endl;else cout<<p<<"/"<<n<<endl;}return 0; }
View Code
转载于:https://www.cnblogs.com/whdsunny/p/9513891.html
2018 Multi-University Training Contest 9 杭电多校第九场 (有坑待补)相关推荐
- 2019杭电多校第九场 Rikka with Cake (hdu6681)
题意:给出一个n * m的蛋糕,切 k 刀,每次从一个点(x,y)向 上下左右的一个方向切,问最后蛋糕被切成了几块 题解:显然,蛋糕的块数就是那么多线段的交点数 + 1.先离散,考虑向左切和向上切的, ...
- HDU 2019 Multi-University Training Contest 1 杭电2019多校联合训练赛 第一场 1001 Blank (6578)
HDU 2019 Multi-University Training Contest 1 杭电2019暑期多校集训第一场 1001 Blank (6578) Problem Description T ...
- 2019年杭电多校第一场 1001题blank(DP)HDU6578
2019年杭电多校第一场 1001题blank(DP)HDU6578 解决思路,开一个DP数组来存储0 1 2 3四个字符最后出现的位置,并且在DP中已经==排好序==. DP开四维,DP[i][j] ...
- 2022“杭电杯”中国大学生算法设计超级联赛 (1) 杭电多校第一场 2 3 4 5 8 12
题目 1002 Dragon slayer 标程 1003 Backpack AC代码 1004 Ball AC代码 1008 Path AC代码 1009 Laser AC代码 1012 Alice ...
- 2022“杭电杯”中国大学生算法设计超级联赛 (2) 杭电多校第二场
题目 1001 Static Query on Tree AC代码 1002 C++ to Python AC代码 1003 Copy AC代码 1005 Slayers Come AC代码 1007 ...
- 树形dp ---- 2018年杭电多校第二场 H travel
题目大意: 就是给你一个带点权的树,找到3条独立互不相交的路径使得权值和最大 解题思路: 很经典的树形dp 我们设dp[root][j][k]dp[root][j][k]dp[root][j][k]表 ...
- 2018杭电多校第二场1006(容斥原理,组合数学)
有能力时再回来解决吧= ̄ω ̄= 转载于:https://www.cnblogs.com/ldudxy/p/9521721.html
- 2019杭电多校第一场 Operation HDU - 6579
题意:给出一个序列,两种操作,求区间[l,r]的区间最大异或和,和在末尾添加一个数 思路:强制在线,保存每个线性基的数值,接下去直接去搜第r个线性基,但要保持时间比l要大,新增了一个pos数组代表一个 ...
- HDU-6578 Blank(DP)2019暑假杭电多校第一场
题意:一行有n个空格编号1~n; 每一个空格中填入0,1,2,3中的一个数字.且满足m个限制l,r,x:满足在区间[l,r]正好有x种不同的数字. 有多少种方法可以填充空格以满足所有条件? 思路:dp ...
最新文章
- 刘群:华为诺亚方舟NLP预训练模型工作的研究与应用 | AI ProCon 2019
- Java应用程序项目的打包与发行
- OpenGL从入门到精通--你好三角形
- MySQL复习资料(六)——MySQL-多表联合查询
- bzoj1096 [ZJOI2007]仓库建设
- 桶排序+基数排序+计数排序
- 怎么证明建立了存储过程_【Filecoin源码仓库全解析】第七章:了解PoRep与PoSt并参与复制证明游戏
- java nlpir_中科院NLPIR中文分词java版
- LaTeX 目录中显示“参考文献”条目
- 想成为一个Web前端开发工程师,需要掌握哪些知识?
- word2vec原理_初识word2vec词向量
- 解决python使用images2gif模块时候报错:Type error Argument 1 must be string or buffer not none
- Winform 表格布局
- 高中计算机整人代码完整,整人代码 VBS整人代码大全
- 自己动手用麦咖啡(mcafee)打造自己的安全网站!安全系统(服务器)!
- 解决-系统策略禁止安装此设备,请与系统管理员联系
- js科学计算机,js网页在线科学计算器代码
- 往届毕业生档案去向查询网_往届毕业生档案在哪里可以查吗
- 不去摄影棚,不用PS三步快速证件照换底色最简单方式
- windows编写bat脚本删除隐藏文件夹下的所有文件
热门文章
- 23种设计模式C++源码与UML实现--桥接模式
- 对PE文件进行十六进制代码(机器码)提取并保存到外部文件
- 修饰符(public/private/default/protected)
- JVM_06 垃圾收集器[ 三 ]
- Nand分区及nand erase简解
- leetcode-合并两个有序链表
- JAndFix: 基于Java实现的Android实时热修复方案
- ICLR 2017 | Attention 和 Memory Networks
- NOIP 2017 总结
- python数据科学导论 中南_Python数据科学导论