题目大意

给一个棋盘,由"U”,“D”,"."组成,其中U代表每次只能向上移动若干格子的棋子,D代表每次只能向下移动若干格子的棋子,.代表空点,问最多能移动出来多少种方案。

解题思路

既然题目中说了棋子只能上下移动,那么列与列之间没有任何的关系,都是独立的,换句话说,我们只需要单独考虑每一列之间的关系然后用乘法原理算出来就行了。
每一列之中有多少个方案还是比较好算的,对于U棋子,每一个它下面的棋子都能够成为它的上面的状态,而对于D棋子,它上面的空格将会成为它的上一个状态。直接DP就可以解决,然后列与列之间再乘一下就是最终的结果。

代码

const int mod = (int)1e9 +7;
typedef long long ll;
ll solve(string s){vector<pair<int, int> >v;ll dp[64][64];memset(dp, 0, sizeof(dp));int n = s.size();for (int i = 0; i < n; i++){if (s[i] == 'U') v.push_back(make_pair(i, -1));else if (s[i] == 'D') v.push_back(make_pair(i, 1));}int m = v.size();if (m == 0) return 1ll;for (int i = v[0].first; i >= 0 && i < n; i += v[0].second)dp[0][i] = 1;for (int i = 1; i < m; i++)for (int j = v[i].first; j >= 0 && j < n; j += v[i].second)for (int k = 0; k < j; k++)dp[i][j] = (dp[i][j] + dp[i - 1][k]) % mod;ll ret = 0LL;for (int i = 0; i < n; i++)ret = (ret + dp[m - 1][i]) % mod;return ret;
}
class FoxAndShogi {
public:int differentOutcomes(vector <string> b) {int n = b.size();ll ans = 1;for (int i = 0; i < n; i++){string cur = "";for (int j = 0; j < n; j++) cur += b[j][i];int tmp = solve(cur);ans = (ans * tmp) % mod;}return ans;}
};

TC SRM590 p1000相关推荐

  1. TC配置文件WCMD.INI详解,只能在ini重修改的配置

    有*的项目扩展了功能,有★的项目是只能在INI中修改的配置. ★Allowed=     允许访问哪些驱动器(\代表网络邻居).例如写为Allowed=cde\,代表仅允许访问C.D.E和网络邻居,其 ...

  2. linux tc打造ip流量限制

    tc是个配置Linux内核流量控制的工具 名字 tc - 显示/维护流量控制配置 摘要 tc qdisc dev DEV qdisc tc class dev DEV parent qdisc-id ...

  3. 2014/08/24——升级stepbystep修复tc不刷新问题并加入杭电bc

    问题: 自从tc站点升级以后做题统计的tc一栏就不刷新了,为此全哥也更新了一下stepbystep的配置文件什么的,我仅仅要将其挂到server上即可了. 由于加了杭电的bc,看来这事儿不easy.还 ...

  4. 简单tc流量控制使用

    2019独角兽企业重金招聘Python工程师标准>>> 显示规则 /sbin/tc -s qdisc show 删除根规则 /sbin/tc qdisc del dev eth0 r ...

  5. 【linux】tc命令使用总结

    笔者使用的是虚拟机做如下测试. 注意没有eth0网卡 查看queue状态 查看所有网卡 tc qdisc ls 查看指定网卡 tc qdisc show dev enp0s3 delay延迟 tc q ...

  6. TC专访Waymo首席技术官:谷歌自动驾驶的过去和未来

    https://www.toutiao.com/a6656210474754900484/ 2019-02-10 11:36:09 北京时间2月9日下午消息,十年前,十几名工程师聚集在位于查尔斯路的谷 ...

  7. centos pptp+l2tp+radius+mysql+tc限速,安装配置

      参考文档:http://logicmd.net/2010/12/setup-pptp-and-l2tp-over-ipsec-on-centos/  一.PPTP安装 软件包     dkms   ...

  8. 【转】 LINUX中IPTABLES和TC对端口的带宽限制 端口限速

    不管是iptables还是tc(traffic control)功能都很强大,都是与网络相关的工具,那么我们就利用这两个工具来对端口进行带宽的限制. 1.使用命令ifconfig查看服务器上的网卡信息 ...

  9. [zz]lxc使用tc+tbf限制网速

    下面是有关于我开题部分很有帮助,thanks god! 虚拟机有考虑限制网速的需求,所以尝试用tc来做一下虚拟机限速的功能. 使用的效果还是比较理想的,使用tc跟tbf可以做到理想的限速.tc控制的原 ...

最新文章

  1. Spring Security的RBAC数据模型嵌入
  2. 如何评估深度学习模型效果?阿里工程师这么做
  3. 【干货】用户运营中的认知、考虑、行动模型
  4. ACM竞赛学习整理开篇之01背包问题
  5. 自定义EventSource(二)PollingCounter
  6. oracle 回滚空间查询,oracle回滚段和回滚表空间操作
  7. javascript 数组合并与去重
  8. 《推荐系统实战(二)》音乐推荐系统(数据清洗、召回、排序)
  9. 正确理解 AsyncTask,Looper,Handler三者之间的关系(基于android 4.0)
  10. 理解委托是类型安全的
  11. Bailian4094 秘密会谈【水题】
  12. 服务器隐藏盘符如何显示,Windows10系统如何使用注册表隐藏磁盘盘符?
  13. 在ubuntu下安装Dynamips
  14. 人脸识别系统_设计说明书
  15. 以太坊地址检测算法golang实现
  16. php 应用截图,PHP实现网页截图?
  17. Linux系统Word转换PDF,文档字体乱码不显示问题解决。
  18. php ecb加密,PHP使用TripleDes,PKCS7和ECB加密/解密
  19. 活跃地址下降,成交量大幅上涨,疑似青黄不接——陀螺财经周报第八期
  20. eclipse第十七课时

热门文章

  1. 浅析人脸识别中的活体检测算法的几种类型
  2. RISC-V架构总结1
  3. 服务Service的基本用法
  4. php中单引号 双引号的区别,PHP中单引号与双引号的区别
  5. Java并发编程个人理解
  6. 搜狐Q1财报发布:张朝阳手握四张王牌,关键看怎么打
  7. 可穿戴功能性近红外光谱成像在自然环境中的应用
  8. nvidia-cuda-mps-control mps 参数介绍
  9. 几种VCS(版本控制系统)的特点和异同
  10. 电视剧《狂飙》数据分析,正片有效播放市场占有率达65.7%