暴力DP。

dp[x1][y1][x2][y2][t]表示,第一个人在(X1,Y1),第二个人在(X2,Y2),时间为t的时候获得的最大价值。

时间复杂度o(t*n*m*n*m*5*5).

什么都不优化跑了4600ms,差点超时,剪了点枝,2500ms跑过。

空间复杂度是可以优化的,dp[x1][y1][x2][y2][t]只与t-1时刻的有关,所以dp数组最后一维可以开成2,用滚动数组做。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<algorithm>
using namespace std; int dp[][][][][];
char s[][];
int val[][][];
int n,m,p;
int dir[][];
int top; void init()
{
top=;
dir[][]=;dir[][]=;
dir[][]=;dir[][]=;
dir[][]=;dir[][]=-;
dir[][]=;dir[][]=;
dir[][]=-;dir[][]=; memset(dp,-,sizeof dp);
memset(val,,sizeof val);
} bool P(int a,int b)
{
if(a>=&&a<n&&b>=&&b<m) return ;
return ;
} void read()
{
scanf("%d%d",&n,&m);
for(int i=;i<n;i++) scanf("%s",s[i]);
scanf("%d",&p);
for(int i=;i<p;i++)
{
int t,x,y,v;
scanf("%d%d%d%d",&t,&x,&y,&v);
x--;y--;
val[x][y][t]=val[x][y][t]+v;
top=max(top,t);
}
} void work()
{
int ans=;
dp[][][][][]=;
for(int t=;t<=top;t++)
{
for(int x1=;x1<n;x1++)
{
for(int y1=;y1<m;y1++)
{
if(s[x1][y1]!='.') continue;
for(int x2=;x2<n;x2++)
{
for(int y2=;y2<m;y2++)
{
if(s[x2][y2]!='.') continue;
for(int d1=;d1<;d1++)
{
int new_x1=x1+dir[d1][];
int new_y1=y1+dir[d1][]; if(P(new_x1,new_y1)==) continue;
if(s[new_x1][new_y1]!='.') continue; for(int d2=;d2<;d2++)
{
int new_x2=x2+dir[d2][];
int new_y2=y2+dir[d2][]; if(P(new_x2,new_y2)==) continue;
if(s[new_x2][new_y2]!='.') continue; if(dp[new_x1][new_y1][new_x2][new_y2][t-]==-) continue; int sum=;
sum=dp[new_x1][new_y1][new_x2][new_y2][t-];
if(x1==x2&&y1==y2) sum=sum+val[x1][y1][t];
else sum=sum+val[x1][y1][t]+val[x2][y2][t]; dp[x1][y1][x2][y2][t]=max(dp[x1][y1][x2][y2][t],sum);
ans=max(ans,dp[x1][y1][x2][y2][t]);
}
}
}
}
}
}
}
printf("%d\n",ans);
} int main()
{
int T;
scanf("%d",&T);
while(T--)
{
init();
read();
work();
}
return ;
}

FZU 2092 收集水晶的更多相关文章

  1. FZU 2092 收集水晶(记忆化搜索)

    Problem 2092 收集水晶 Accept: 101 Submit: 439 Time Limit: 5000 mSec Memory Limit : 32768 KB Problem Desc ...

  2. FZU 2092 收集水晶 bfs+记忆化搜索 or 暴力

    题目链接:收集水晶 一眼看过去,觉得是普通的bfs,初始位置有两个.仔细想了想...好像如果这样的话..........[不知道怎么说...T_T] dp[12][12][12][12][210] 中 ...

  3. FZU 2092 收集水晶 dp+bfs

    定义dp[t][x1][y1][x2][y2]为在t时刻,人走到x1,y1,影子走到x2,y2所获得最大价值 最终就是所有的dp[max][..][..][..][..]的最大值 然后递推也很自然,枚 ...

  4. FZU 2092 bfs+记忆化搜索

    晚上团队训练赛的题 和普通bfs不同的是 这是同时操纵人与影子两个单位进行的bfs 由于可能发生人和影子同时接触水晶 所以不可以分开操作 当时使用node记录人和影子的位置 然后进行两重for循环来分 ...

  5. WinForm GDI+ 资料收集

    UI(User Interface)编程在整个项目开发过程中是个颇为重要的环节,任何好的解决方案若没有良好的用户界面呈现给最终用户,那么就算包含了最先进的技术也不能算是好程序.UI编程体现在两个方面, ...

  6. 水晶报表(web)表格信息展示

    一.环境安装 开发工具使用VS2010+SAP Crystal Reports13_0+.NETformwork4.0 因为vs2010已经不再集成水晶报表,所以需要我们去找合适的版本下载http:/ ...

  7. YYS FZU - 2278 (期望)JAVA

    题目链接: G - YYS FZU - 2278 题目大意: 我们现在想要收集到n个卡片,现在已知抽到每种卡片的概率为1/n,现在每隔(n-1)!天就可以进行一次抽奖,问收集齐所有卡片的期望天数. 具 ...

  8. FZU Monthly-201903 tutorial

    FZU Monthly-201903 tutorial 题目(难度递增) easy easy-medium medium medium-hard hard 思维难度 ABF G CH D E A. D ...

  9. 1.8 收集的XSS Payload

    收集的XSS Payload ,可以做成字典,到时候批量测试:--------------------------------------------------------------------- ...

随机推荐

  1. OpenLayer 3 鼠标位置坐标显示控件

    <body> <div id="map"> <div id="mouse-position"></div> &l ...

  2. EditText的一点深入的了解

    最近在开发android下的记事本程序时,频繁的使用EditText控件,折腾来折腾去,算是对其的了解更深入了一些.特将这些收获记录如下: 一.几个属性的介绍 android:gravity=&quo ...

  3. preg_replace 方法

    标红关键字 $text = "Sample sentence from KomunitasWeb, regex has become popular in web programming. ...

  4. PHP中级篇 Apache配置httpd-vhosts虚拟主机总结及注意事项[OK]

    经常使用Apache虚拟主机进行开发和测试,但每次需要配置虚拟主机时都习惯性的ctrl+c和ctrl+v,这次由于重装系统,需要配置一个新的PHP开发环境虚拟主机,于是总结一下Apaceh配置http ...

  5. FRP 浅析

    一.Reactive? 请先看一个非常简单的小应用,它允许用户在一个搜索输入框里输入关键词,然后在其下方的结果区域实时显示从Flicker网站搜索得到的图片,当用户输入的关键词发生变化,显示的图片也会 ...

  6. Java中域 实例域 静态域

    1.java中的域 所谓的域,翻译成英文就是field, 也就是我们常说的字段,或者说是属性. 比如类的字段(属性),局部的,全局的.所谓域,其实是“field”的翻译 然后实例域,就是 实例(&qu ...

  7. ios学习基础篇一

    搜集的不错的oc学习资料 大概总结: http://my.oschina.net/luoguankun/blog/208526 详细教程: http://www.w3cschool.cc/ios/io ...

  8. CSS3线性渐变

    万恶的IE!!! <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  9. Django: 之数据库完美解析

    Python的web矿建有Django.Tornado.Flask等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定,模版引擎.缓存.Session等诸多功能. ...

  10. linux tomcat服务器优化配置

    在 /usr/local/tomcat/bin/catalina.sh里首行加入, 防止内存不够的问题 JAVA_OPTS="-Xms512m -Xmx1024m -Xss1024K -XX ...