A - Rikka with Nash Equilibrium

题意:构造一个$n * m$的矩阵,使得$[1, n * m]$ 中每个数只出现一次,并且纳什均衡只出现一次。

思路:从大到小的放置,每一个都可以拓展一行拓展一列或者放在已经拓展的行列焦点,用记忆化搜索/dp即可

  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. typedef long long ll;
  6.  
  7. int n, m;
  8. ll p;
  9. ll dp[][][ * ];
  10.  
  11. ll DFS(int x, int y,int z)
  12. {
  13. if(z >= n * m) return ;
  14. if(dp[x][y][z] != -) return dp[x][y][z];
  15. ll res = ;
  16. if(x < n) res = (res + y * (n - x) % p * DFS(x + , y, z + )) % p;
  17. if(y < m) res = (res + x * (m - y) % p * DFS(x, y + , z + )) % p;
  18. if(x * y > z) res = (res + (x * y - z) * DFS(x, y, z + )) % p;
  19. dp[x][y][z] = res;
  20. return res;
  21. }
  22.  
  23. int main()
  24. {
  25. int t;
  26. scanf("%d", &t);
  27. while(t--)
  28. {
  29. scanf("%d %d %lld", &n, &m, &p);
  30. memset(dp, -, sizeof dp);
  31. ll ans = DFS(, , );
  32. ans = n * m % p * ans % p;
  33. printf("%lld\n", ans);
  34. }
  35. return ;
  36. }

B - Rikka with Seam

留坑。

C - Rikka with APSP

留坑。

D - Rikka with Stone-Paper-Scissors

题意:每个人有三种牌,"石头、剪刀、布" ,询问第一个人赢第二个人的期望

思路:考虑每一次出牌的概率相同,那么答案就是(赢的情况种数 - 输的情况) / 牌数   那么所有赢输情况种类数就是 $\frac {a_1 *(b_2 - c_2) + b_1 * (c_2 - a_2) + c_1 * (a_2 - b_2)} {a + b + c} $

  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. typedef long long ll;
  6.  
  7. ll gcd(ll a, ll b)
  8. {
  9. return b == ? a : gcd(b, a % b);
  10. }
  11.  
  12. ll a1, b1, c1, a2, b2, c2;
  13.  
  14. int main()
  15. {
  16. int t;
  17. scanf("%d", &t);
  18. while(t--)
  19. {
  20. scanf("%lld %lld %lld %lld %lld %lld", &a1, &b1, &c1, &a2, &b2, &c2);
  21. ll ans = a1 * (b2 - c2) + b1 * (c2 - a2) + c1 * (a2 - b2);
  22. if(ans % (a1 + b1 + c1) == )
  23. {
  24. ans /= a1 + b1 + c1;
  25. printf("%lld\n", ans);
  26. }
  27. else
  28. {
  29. int flag = ;
  30. if(ans < )
  31. {
  32. ans = -ans;
  33. flag = ;
  34. }
  35. ll ans2 = a1 + b1 + c1;
  36. ll GCD = gcd(ans, ans2);
  37. ans /= GCD;
  38. ans2 /= GCD;
  39. if(flag) printf("-");
  40. printf("%lld/%lld\n", ans, ans2);
  41. }
  42. }
  43. return ;
  44. }

E - Rikka with Rain

留坑。

F - Rikka with Spanning Tree

留坑。

G - Rikka with Treasure

留坑。

H - Rikka with Line Graph

留坑。

I - Rikka with Bubble Sort

留坑。

J - Rikka with Time Complexity

留坑。

K - Rikka with Badminton

题意:四种人,一种人啥都没有,一种人有拍,一种人有球,一种人有拍有球,求方案数使得有两拍一球

思路:考虑三种选择方案

1° 两个有拍+一个有球

2°两个有拍有球

3°一个有拍,一个有拍有球

答案就是$2^a \cdot 2^c \cdot (2^b - 1) \cdot (2^d - 1) + 2^a \cdot 2^c \cdot (2^d - 1 - d) + 2^a \cdot (2^b - 1 - b) \cdot (2^c - 1)$

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define ll long long
  5.  
  6. const ll MOD = ;
  7.  
  8. ll qmod(ll n)
  9. {
  10. ll res = ;
  11. ll base = ;
  12. while (n)
  13. {
  14. if (n & ) res = res * base % MOD;
  15. base = base * base % MOD;
  16. n >>= ;
  17. }
  18. return res;
  19. }
  20.  
  21. int t;
  22. ll a, b, c, d;
  23.  
  24. int main()
  25. {
  26. scanf("%d", &t);
  27. while (t--)
  28. {
  29. scanf("%lld%lld%lld%lld", &a, &b, &c, &d);
  30. ll n = a + b + c + d;
  31. ll res = qmod(a) * qmod(c) % MOD * (qmod(b) - + MOD) % MOD * (qmod(d) - + MOD) % MOD;
  32. res = (res + qmod(a) * qmod(c) % MOD * (qmod(d) - - d + MOD) % MOD) % MOD;
  33. res = (res + qmod(a) * (qmod(b) - - b + MOD) % MOD * (qmod(c) - + MOD)) % MOD;
  34. printf("%lld\n", (qmod(n) - res + MOD) % MOD);
  35. }
  36. return ;
  37. }

2018 Multi-University Training Contest 9 Solution的更多相关文章

  1. 2018 Multi-University Training Contest 1 Solution

    A - Maximum Multiple 题意:给出一个n 找x, y, z 使得$n = x + y +z$ 并且 $n \equiv 0 \pmod x, n \equiv 0 \pmod y, ...

  2. 2018 Multi-University Training Contest 2 Solution

    A - Absolute 留坑. B - Counting Permutations 留坑. C - Cover 留坑. D - Game puts("Yes") #include ...

  3. 2018 Multi-University Training Contest 3 Solution

    A - Problem A. Ascending Rating 题意:给出n个数,给出区间长度m.对于每个区间,初始值的max为0,cnt为0.遇到一个a[i] > ans, 更新ans并且cn ...

  4. 2018 Multi-University Training Contest 4 Solution

    A - Problem A. Integers Exhibition 留坑. B - Problem B. Harvest of Apples 题意:计算$\sum_{i = 0}^{i = m}C( ...

  5. 2018 Multi-University Training Contest 5 Solution

    A - Always Online Unsolved. B - Beautiful Now Solved. 题意: 给出一个n, k  每次可以将n这个数字上的某两位交换,最多交换k次,求交换后的最大 ...

  6. 2018 Multi-University Training Contest 6 Solution

    A - oval-and-rectangle 题意:给出一个椭圆的a 和 b,在$[0, b]中随机选择c$ 使得四个顶点在椭圆上构成一个矩形,求矩形周长期望 思路:求出每种矩形的周长,除以b(积分) ...

  7. 2018 Multi-University Training Contest 7 Solution

    A - Age of Moyu 题意:给出一张图,从1走到n,如果相邻两次走的边的权值不同,花费+1, 否则花费相同,求最小花费 思路:用set记录有当前点的最小花费有多少种方案到达,然后最短路 #i ...

  8. 2018 Multi-University Training Contest 8 Solution

    A - Character Encoding 题意:用m个$0-n-1$的数去构成k,求方案数 思路:当没有0-n-1这个条件是答案为C(k+m-1, m-1),减去有大于的关于n的情况,当有i个n时 ...

  9. 2018 Multi-University Training Contest 10 Solution

    A - Problem A.Alkane 留坑. B - Problem B. Beads 留坑. C - Problem C. Calculate 留坑. D - Problem D. Permut ...

随机推荐

  1. Android:控件布局(相对布局)RelativeLayout(转)

    相对布局常用属性: 子类控件相对子类控件:值是另外一个控件的id android:layout_above----------位于给定DI控件之上android:layout_below ------ ...

  2. js 判断数据类型的几种方法

    判断js中的数据类型有一下几种方法:typeof.instanceof. constructor. prototype. $.type()/jquery.type(),接下来主要比较一下这几种方法的异 ...

  3. bootstrap里面的popover组件如何使鼠标移入可以对弹出框进行一系列的操作

    在bootstrap里面,有一个组件很可爱,它就是popover,它是对标签title属性的优化,奉上连接一枚:http://docs.demo.mschool.cn/components/popov ...

  4. C++ 在继承中使用virtual

    使用virtual:如果方法是通过引用类型或指针而不是对象调用的,它将确定使用哪一种方法.如果没有使用关键字irtual,程序将根据引用类型或指针类型选择方法:如果使用了irtual,程序将根据引用或 ...

  5. PyQt4 菜单栏 + 工具栏 + 状态栏 + 中心部件 生成一个文本编辑部件示例

    我们将创建一个菜单栏.一个工具栏.一个状态栏和一个中心部件. #!/usr/bin/python # -*- coding:utf-8 -*- import sys from PyQt4 import ...

  6. java框架---->Xstream的使用(一)

    Xstream可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称.今天我们就简单的学习一下xstream的用法. Xstream的简单实例 项目的结构如下,设计到三个类 ...

  7. LeetCode——Best Time to Buy and Sell Stock IV

    Description: Say you have an array for which the ith element is the price of a given stock on day i. ...

  8. 【Android N 7】使用量统计usagestats

    Android N 7.1.1 高通 1. /data/system/usagestats/0 2. 每天使用量统计 /data/system/usagestats/0/daily 查看数值: cat ...

  9. python搭建简易Web Server

    如果你急需一个简单的Web Server,但你又不想去下载并安装那些复杂的HTTP服务程序,比如:Apache,ISS等.那么, Python可能帮助你,使用Python可以完成一个简单的内建 HTT ...

  10. SenchaTouch调用纯数字键盘

    items:[ { itemId:"phoneNumber", xtype: "textfield", component:{xtype:"input ...