题目:http://codeforces.com/contest/348/problem/D

如果只走一条路那就直接dp就可以了。

设cal(x1,y1,x2,y2)为(x1,y1)→(x2,y2)的路径数。

cal(1,2,n-1,m)*cal(2,1,n,m-1)把相交的情况也算进去了。

但是对于每一种相交的情况,发现它们都对应一种将两个终点反转的情况。

那么ans=cal(1,2,n-1,m)*cal(2,1,n,m-1)-cal(1,2,n,m-1)*cal(2,1,n-1,m)

  1. #include<cstring>
  2. #include<iostream>
  3. #include<cstdio>
  4. #include<queue>
  5. #include<cmath>
  6. #include<algorithm>
  7. #define rep(i,l,r) for (int i=l;i<=r;i++)
  8. #define down(i,l,r) for (int i=l;i>=r;i--)
  9. #define clr(x,y) memset(x,y,sizeof(x))
  10. #define low(x) (x&(-x))
  11. #define maxn 3005
  12. #define inf int(1e9)
  13. #define mm 1000000007
  14. #define ll long long
  15. using namespace std;
  16. ll f[maxn][maxn],ans1,ans2,ans3,ans4;
  17. int n,m,mp[maxn][maxn];
  18. char s[maxn];
  19. ll read(){
  20. ll x=,f=; char ch=getchar();
  21. while (!isdigit(ch)) {if (ch=='-') f=-; ch=getchar();}
  22. while (isdigit(ch)) {x=x*+ch-''; ch=getchar();}
  23. return x*f;
  24. }
  25. int main(){
  26. n=read(); m=read();
  27. rep(i,,n){
  28. scanf("%s",s+);
  29. rep(j,,m) if (s[j]=='#') mp[i][j]=;
  30. }
  31. if (mp[][]==||mp[][]==) {puts(""); return ;}
  32. f[][]=;
  33. rep(i,,n) rep(j,,m) if (!mp[i][j]) f[i][j]+=(f[i-][j]+f[i][j-])%mm;
  34. ans1=f[n-][m]; ans3=f[n][m-];
  35. clr(f,); f[][]=;
  36. rep(i,,n) rep(j,,m) if (!mp[i][j]) f[i][j]+=(f[i-][j]+f[i][j-])%mm;
  37. ans2=f[n][m-]; ans4=f[n-][m];
  38. printf("%lld\n",((ans1*ans2-ans3*ans4)%mm+mm)%mm);
  39. return ;
  40. }

CF 348DTurtles的更多相关文章

  1. ORA-00494: enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 5166'

    凌晨收到同事电话,反馈应用程序访问Oracle数据库时报错,当时现场现象确认: 1. 应用程序访问不了数据库,使用SQL Developer测试发现访问不了数据库.报ORA-12570 TNS:pac ...

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

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

  3. cf Round 613

    A.Peter and Snow Blower(计算几何) 给定一个点和一个多边形,求出这个多边形绕这个点旋转一圈后形成的面积.保证这个点不在多边形内. 画个图能明白 这个图形是一个圆环,那么就是这个 ...

  4. ARC下OC对象和CF对象之间的桥接(bridge)

    在开发iOS应用程序时我们有时会用到Core Foundation对象简称CF,例如Core Graphics.Core Text,并且我们可能需要将CF对象和OC对象进行互相转化,我们知道,ARC环 ...

  5. [Recommendation System] 推荐系统之协同过滤(CF)算法详解和实现

    1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...

  6. CF memsql Start[c]UP 2.0 A

    CF memsql Start[c]UP 2.0 A A. Golden System time limit per test 1 second memory limit per test 256 m ...

  7. CF memsql Start[c]UP 2.0 B

    CF memsql Start[c]UP 2.0 B B. Distributed Join time limit per test 1 second memory limit per test 25 ...

  8. CF #376 (Div. 2) C. dfs

    1.CF #376 (Div. 2)    C. Socks       dfs 2.题意:给袜子上色,使n天左右脚袜子都同样颜色. 3.总结:一开始用链表存图,一直TLE test 6 (1)如果需 ...

  9. CF #375 (Div. 2) D. bfs

    1.CF #375 (Div. 2)  D. Lakes in Berland 2.总结:麻烦的bfs,但其实很水.. 3.题意:n*m的陆地与水泽,水泽在边界表示连通海洋.最后要剩k个湖,总要填掉多 ...

随机推荐

  1. 探索C++对象模型

    只说C++对象模型在内存中如何分配这是不现实的,所以这里选择VS 2013作为调试环境具体探讨object在内存中分配情况.目录给出了具体要探讨的所有模型,正文分标题依次讨论.水平有限,如有错误之处请 ...

  2. CET-4- translation1

    questions 2017/10/17 多年来,家长和老手都曾得到过这样一种信息(message):尽量利用任何机会表扬孩子,对他们所干的任何事情都要说好.据说这样做有助于提高孩子的自尊.但是近来许 ...

  3. NOI2009 植物大战僵尸

    啊一道好题感觉写得挺爽的啊这题这种有一点懵逼然后学了一点东西之后很明朗的感觉真是好!预处理参考 :http://www.cppblog.com/MatoNo1/archive/2014/11/01/1 ...

  4. Spark源码剖析(六):Worker原理与源码剖析

    上篇文章我们剖析了Master的原理和源码,知道了当Master使用资源分配算法将资源分配完成后,就会给对应的Worker发送启动Driver或者Executor的消息,那么Worker收到这些消息后 ...

  5. git正确的删除远程仓库的文件并用.gitignore忽略提交此文件

    我向远程仓库提交了如下文件src/ pom.xml target/ WebContent/,发现没必要提交target目录. 于是做了如下操作: git rm -r --cached target g ...

  6. JavaScript简单入门(补充篇)

    本文是对上一篇 JavaScript简单入门 的一些细节补充. 一.全局变量和局部变量 在<script>标签内定义的变量是当前页面中的全局变量.即 <script>标签可以直 ...

  7. ES6 对象的扩展(上)

    属性的简介表示法 允许直接写入变量和函数作为对象的属性和方法,这样的书写更简洁. function f( x, y ) { return { x, y }; } // 等同于 function f( ...

  8. alias 命令详解

    alias 命令 作用:  设置命令别名,可以将较长的命令进行简化,使用alias 时,用户必须使用单引号将原来的命令引起来,防止特殊字符导致错误. 如要永久生效则将alias 命令存放到bash 的 ...

  9. 如何去除本地文件与svn服务器的关联

    1.每个目录逐个去删除.svn文件夹 .svn属于隐藏文件夹,可通过操纵Windows文件资源管理器使隐藏文件可视,删除该文件,即可. 2.首先建立一个新文件,文件命名为remove-svn-fold ...

  10. ubuntu 安装 pythonenv

    This will get you going with the latest version of pyenv and make it easy to fork and contribute any ...