Codeforces Round #108 (Div. 2)

C. Pocket Book

题意

  • 给定\(N(N \le 100)\)个字符串,每个字符串长为\(M(M \le 100)\)。
  • 每次选择\(i, j, k\),然后交换串\(i\)和串\(j\)的长度为\(k\)的前缀。
  • 操作可以做任意次,求最多能得到多少不同的字符串,\(modulo (10^9+7)\)。

思路

  • 相当于每个位置的可选字符为该列的不同字符的数量。

代码


D. Frames

题意

  • 给定一个\(n \times m(3 \le n,m \le 1000)\)的矩阵,由'.'和'#'构成。
  • 两个矩形框放入该矩阵,'#'表示格子被矩形框覆盖,且边长均不小于3。
  • 两个矩形框的关系是任意的,重边、重叠,甚至完全重叠也是可以的。
  • 判断原矩阵是否能由两个矩形框表示,若可以输出"YES"以及两个矩形框的左上角坐标和右下角坐标,否则输出"NO"。

思路

  • 找出横向长度大于2的行号,显然只有最小值,次小值,最大值,次大值有可能成为矩形框的横坐标。
  • 暴力枚举判定即可。

代码


E. Garden

题意

  • 一个\(n \times m(1 \le n,m \le 100,n \cdot m \le 200)\)的网格,有\(k(k \le 7)\)的格子必须要覆盖,且任意两个格子之间要存在一条路径(相邻格子有一条公共边)。
  • 覆盖格子\((i,j)\)的代价为\(a(i,j)\)。
  • 求最小代价,并输出一种方案,'X'表示覆盖,'.'表示未覆盖。

思路

  • 用\(f[u][mask]\)表示格子覆盖状态\(mask\)且集中到\(u\)的最小代价。
  • 转移:\[f[u][mask]=min{f[u][submask] + f[u][mask \oplus submask] - v[u]}\]
    \(v[u]\)表示点\(u\)的覆盖代价,即\(a[i = u / m][j = u \% m]\)
    当状态\(mask\)集中到\(u\)之后,可以走到或者说扩展到其他点\(v\),这个bfs一下即可。

代码

Codeforces Round #108 (Div. 2)的更多相关文章

  1. 组合数学题 Codeforces Round #108 (Div. 2) C. Pocket Book

    题目传送门 /* 题意:每一次任选i,j行字符串进行任意长度前缀交换,然后不断重复这个过程,问在过程中,第一行字符串不同的个数 组合数学题:每一列不同的字母都有可能到第一行,所以每列的可能值相乘取模就 ...

  2. Educational Codeforces Round 108 (Div. 2), C map套vector存储

    地址  Problem - C - Codeforces 题目 题意 一个学校有n个人参加比赛,他们分别属于ui队,每个人的能力值为si 当每个队需要1~n个人的时候,这个学校能参加的人的能力值和最大 ...

  3. Codeforces Round #603 (Div. 2) A. Sweet Problem(水.......没做出来)+C题

    Codeforces Round #603 (Div. 2) A. Sweet Problem A. Sweet Problem time limit per test 1 second memory ...

  4. Codeforces Round #366 (Div. 2) ABC

    Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...

  5. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  6. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  7. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  8. Codeforces Round #279 (Div. 2) ABCDE

    Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems     # Name     A Team Olympiad standard input/outpu ...

  9. Codeforces Round #262 (Div. 2) 1003

    Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...

随机推荐

  1. HDU 2594 扩展kmp模板题

    题目大意: 给定两个字符串,在第一个字符串中找到一个最大前缀作为第二个字符串的后缀 #include <iostream> #include <cstdio> #include ...

  2. 原子操作 Interlocked系列函数

    上一篇<多线程第一次亲密接触 CreateThread与_beginthreadex本质区别>中讲到一个多线程报数功能.为了描述方便和代码简洁起见,我们可以只输出最后的报数结果来观察程序是 ...

  3. 使用generator自动生成mybatis model、mapper.xml、mapper等(转)

    原文链接:http://www.cnblogs.com/lichenwei/p/4145696.html Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件 ...

  4. JVM-class文件完全解析-魔数

    魔数(Magic Number) 魔数和Class文件的版本. 一个文件能否被Java虚拟机接受,不是通过文件的扩展名来进行识别的,而是通过魔数来进行识别.这主要是基于安全方面的考虑,因为文件的扩展名 ...

  5. tableviewcell的取消选中,高亮

    1.取消多余cell的分割线 UIView *view = [UIView new]; view.backgroundColor = [UIColor clearColor]; [tableView ...

  6. JS原生回到顶部效果

    // 回到顶部 onload = function () { var oBtnTop = document.getElementById('toTop'); var timer = null; oBt ...

  7. C++使用POST方法向网页提交数据-----C++发送HTTP数据获取Google天气预报

    例1:C++使用POST方法向网页提交数据    转自:http://www.it165.net/pro/html/201208/3534.html 在C++中可以使用POST方法向网页中提交数据,这 ...

  8. AppCan相关网站

    AppCan文档中心: http://doc.appcan.cn/#!/guide/handbook AppCan官网: http://www.appcan.cn/index.html

  9. Be Careful With BuildConfig.DEBUG

    Be Careful With BuildConfig.DEBUG http://www.digipom.com/be-careful-with-buildconfig-debug/

  10. hdu 2072

    Ps:啊啊啊啊啊啊!WA了N次!真的是N次......终于做出来了...想哭的心情都有了... 这道题要考虑前面有N个空格,中间有N个空格,后面也有N个空格....然后就是输入空格.... 贴上代码: ...