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. IP数据报的格式

    1. IP数据报首部的固定部分中的各字段 ①版本:占4位,指IP协议的版本.通信双方使用的 IP协议版本必须一致.日前广泛使用的 IP协议版本号为 4 (即 IPv4). IPv6 目前还处于起步阶段 ...

  2. Hibernate中的一对多与多对一映射

    1.需求 一个部门有多个员工;         [一对多] 多个员工,属于一个部门    [多对一] 2.实体Bean设计 Dept: public class Dept { private int ...

  3. Spring学习笔记之方法注入

    public  abstract class ReplacedBean {protected static final Log log = LogFactory.getLog(ReplacedBean ...

  4. DotNetBar v12.7.0.2 Fully Cracked

    更新信息: http://www.devcomponents.com/customeronly/releasenotes.asp?p=dnbwf&v=12.7.0.2 如果遇到破解问题可以与我 ...

  5. 1.6 suid/guid

    1.很系统供应商不允许使用这一命令,或者即使被置位,也会被忽略,这一命令会带来安全性风险. suid意味着该用户对自己的shell脚本设置了这种权限,那么其他用户执行该脚本时,也将拥有该用户相同的权限 ...

  6. 【python】import 模块、包、第三方模块

    xx.py文件,称为模块(module),把不同模块归整到一起的文件夹,叫做包(package) 不同包下的模块可以重名,但是都不能和系统内建模块重名 包里面一定要有个__init__.py文件,否则 ...

  7. 虚拟机无法上网的问题:无法启动VMnet0等问题

    虚拟机无法上网,由于之前安装过虚拟机,后来将它卸载了,然后重新安装,最后出现了虚拟机无法上网.刚开始以为是系统的原因,于是就通过linux命令查看系统里面的网卡时是否启动,如:/etc/init.d/ ...

  8. 一个有趣的IE内核检测网站

    http://se.360.cn/v5/iecoretest.html 该网站能有效检测您浏览器的内核,以及版本,操作系统. 找到这个网址,是因为最近解决WebBrowser自动调节IE版本功能时发现 ...

  9. JSON.parse()和JSON.stringify() 的用法区别

    parse用于从一个字符串中解析出json对象,如 var str = '{"name":"huangxiaojian","age":&qu ...

  10. oracle 之关键字exists

    -----------------------------------------------------------------------SQL中EXISTS的用法---------------- ...