AtCoder Regular Contest 061

C.Many Formulas

题意

  • 给长度不超过\(10\)且由\(0\)到\(9\)数字组成的串S。
  • 可以在两数字间放\(+\)号。
  • 求所有方案的数字和。

思路

  • \(2^{|S|-1}\)枚举加号的放置状态

代码


D.Snuke's Coloring

题意

  • 在一个\(H \times W(3 \le H,W \le 10^9)\)的棋盘上,有\(N(N \le 10^5)\)个格子被染成黑色,其余格子为白色。
  • 求在所有\(3 \times 3\)的子矩形中黑色格子个数分别为\(0,1,...,9\)的个数。

思路

  • 考虑每个黑色格子作为\(3 \times 3\)矩形中的其中一个格子,求对应矩形的黑色格子数。如果当前矩形的黑色格子数为\(x\),则该格子会被计数\(x\)次。
  • \(0\)的矩形个数由总方案减去有黑色格子的方案数。

代码


E.Snuke's Subway Trip

题意

  • 一张图,有\(N(N \le 10^5)\)个点,\(M(M \le 2 \times 10^5)\)条边。
  • 每条边有一种颜色\(c_i\)。
  • 假设通过颜色\(i\)走到节点\(u\),当\(u\)要走到相邻节点时,如果经过的边仍为颜色\(i\),则费用为0,否则需要代价1。
  • 求从节点1走到节点N的最小花费。

思路

  • 假设与\(u\)有关的边的颜色有\(x\)种,则将点拆成\(u_{c1}, u_{c2},...,u_{cx}\)个点。
  • 将点\(u\)设置成总点,与\(u_{ci}\)连边,费用为1。
  • 假设\(u\)走到\(v\),颜色为\(C\),则\(u_C\)与\(v\)连边,费用为0;\(u_C\)与\(v_C\)连边,费用为0。
  • 最后跑一遍单源最短路即可。

代码


F.Card Game for Three

题意

  • Alice、Bob和Charlie分别有\(N,M,K(N,M,K \le 3 \times 10^5)\)张牌,每张牌有一个字母(a,b或c)。
  • 三个人轮流出牌,牌上的数字代表下一个出牌的玩家。
  • 若当前要出牌的玩家没有牌,则该玩家获胜。
  • Alice先出牌,求在所有可能的方案中Alice获胜的方案数。

思路

  • 出牌顺序看成一串abc的序列,第一个达到手牌上限的人获胜,假设Alice获胜,那么a出现了\(N+1\)次。因为Alice先手,所以第一个总是固定为a,那么去掉第一个后a出现\(N\)次。
  • 考虑游戏结束时三个人共打出了\(i\)张牌,可以得到3个信息:
  1. 最后一张牌必然是a;
  2. b和c的出现次数不超过\(M,K\);
  3. b和c不会同时超出上限。
  • 先从\(i-1\)选\(N-1\)位置放a;剩下的位置放置b和c,总方案数为\(2^{i-N}\),考虑去掉不合法的方案,即b或c超过上限的方案数,小数据可以暴力求,对于b来说,枚举\([M+1, i-N]\)的出现次数,c同理。对于大数据来说,假设长为\(i-1\)中b不合法的方案数为\(fb\),那么当前多了一个填充bc的位置,这个位置可以填bc,方案仍为不合法的方案,此时b的个数大于\(M+1\),还要求b的个数刚好为\(M+1\)的不合法方案数。

代码

AtCoder Regular Contest 061的更多相关文章

  1. AtCoder Regular Contest 061 DSnuke's Coloring

    http://arc061.contest.atcoder.jp/tasks/arc061_b 题意: H行W列的矩阵中,然后挖了n个洞,输出j(0-9)行,对于第i行输出,有多少个3*3区域中有i个 ...

  2. Atcoder Regular Contest 061 D - Card Game for Three(组合数学)

    洛谷题面传送门 & Atcoder 题面传送门 首先考虑合法的排列长什么样,我们考虑将每次操作者的编号记录下来形成一个序列(第一次 A 操作不计入序列),那么显然这个序列中必须恰好含有 \(n ...

  3. [Atcoder Regular Contest 061] Tutorial

    Link: ARC061 传送门 C: 暴力$dfs$就好了 #include <bits/stdc++.h> using namespace std; typedef long long ...

  4. AtCoder Regular Contest 061 E - すぬけ君の地下鉄旅行【最短路】

    具体题解又要搬大哥的了,嘿嘿~ 请点击:G点我 这道题目的难点就是同一家公司的路直接走不需要再花费,然后多了一个公司这个东西,这个不像是边的副权值(瞎说的)之类的东西,这是对于路来说的,路的属性... ...

  5. AtCoder Regular Contest 094 (ARC094) CDE题解

    原文链接http://www.cnblogs.com/zhouzhendong/p/8735114.html $AtCoder\ Regular\ Contest\ 094(ARC094)\ CDE$ ...

  6. AtCoder Regular Contest 092

    AtCoder Regular Contest 092 C - 2D Plane 2N Points 题意: 二维平面上给了\(2N\)个点,其中\(N\)个是\(A\)类点,\(N\)个是\(B\) ...

  7. AtCoder Regular Contest 093

    AtCoder Regular Contest 093 C - Traveling Plan 题意: 给定n个点,求出删去i号点时,按顺序从起点到一号点走到n号点最后回到起点所走的路程是多少. \(n ...

  8. AtCoder Regular Contest 094

    AtCoder Regular Contest 094 C - Same Integers 题意: 给定\(a,b,c\)三个数,可以进行两个操作:1.把一个数+2:2.把任意两个数+1.求最少需要几 ...

  9. AtCoder Regular Contest 095

    AtCoder Regular Contest 095 C - Many Medians 题意: 给出n个数,求出去掉第i个数之后所有数的中位数,保证n是偶数. \(n\le 200000\) 分析: ...

随机推荐

  1. WP8 独立存储 总结3(应用设置)

    •可在独立存储中使用ApplicationSettings对象•在独立存储中存储键/值对的Dictionary方式存储 •存储的对象将永久保存 在应用设置中保存数据 void saveString(s ...

  2. C++,1....n中随机等概率的输出m个不重复的数(假设n远大于m)。

    #include <stdlib.h> #include <time.h> knuth(int n, int m) { srand((unsigned )); ; i < ...

  3. matlab代码 图像处理源码

    非常不错的找图像处理源码的地方,源码搜搜. http://www.codesoso.com/Category.aspx?CategoryId=56

  4. javascript中创建对象的几种方式

    1. 使用Object构造函数来创建一个对象,下面代码创建了一个person对象,并用两种方式打印出了Name的值. var person = new Object(); person.name=&q ...

  5. springmvc----struts2比较

    method=requestMethod.GETorPOST  vs  addInput+add 用抛异常处理密码验证和用户名重复与否验证 +js303 @validate   判断输入格式(jque ...

  6. XML元素和结点的区别

    1.区别介绍 Element是Node的扩展,所以也更实用一些.例如,用Element可以方便的获得Node的属性getAttribute(String attrName)如果用Node,可以得到一个 ...

  7. (function($){...})(jQuery) 含义

    最近在项目js文件末端中发现这样的代码,对于前端技术比较薄弱的我,着实还是有点晕,好在查阅到了相关资料,现解释如下: (function($){  $.plugin = new org.plugin. ...

  8. hdu 2075

    PS:水得不能再水..刚开始还以为是大数..要用到快速幂...谁知道想太多...就普通int型.. 代码: #include "stdio.h" int main(){ int a ...

  9. 用C++,调用浏览器打开一个网页

    http://blog.csdn.net/heaven13483/article/details/9369029

  10. 树莓派安装kali后的简单配置

    树莓派可以说是极客的最爱,可以根据不同的需求去做定制. 前文<使用树莓派和kali Linux打造便携式渗透套件>讲了一些使用树莓派的基础,主要侧重于将树莓派当作一个物理后门使用.我则更喜 ...