题目链接:

id=3034">点击打开链接

题目大意:砸地鼠游戏,n*n的方格,锤子每次最多移动d,地鼠在t时刻出如今(x,y)时间。维持一个单位时间,不会在同一时间同一位置出现两仅仅老鼠,锤子能够砸经过的地鼠,问最多能够砸多少地鼠。(初始锤子能够在任何位置)

dp[t][i][j]:t时刻在锤子在(i,j)位置时能砸到的最多的地鼠个数

状态转移方程:由于锤子最多移动d,所以枚举(x-d,y-d)到(x+d,y+d)的点(tx,ty),觉得这是(x,y)向(tx,ty)移动的第一个点。然后计算在d范围内的点。统计被砸的地鼠的个数

注意:肯能通过边界外的点进行移动

20 5 4
1 0 1
0 1 1
0 5 2
1 6 2
0 0 0

结果是4

所以要将全部的点移动(5,5)的距离,能够避免负坐标

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std ;
int dp[12][41][41] ;
int Map[12][41][41] ;
void f(int n,int t,int x,int y,int d) {
int i , j , k , p , q , num ;
for(i = max(0,x-d) ; i <= min(n-1,x+d) ; i++) {
for(j = max(0,y-d) ; j <= min(n-1,y+d) ; j++) {
if( i == x && j == y ) continue ;
p = i - x ;
q = j - y ;
k = num = 0 ;
while( x+k*p >= 0 && x+k*p < n && y+k*q >= 0 && y+k*q < n && k*k*(q*q+p*p) <= d*d ) {
if( Map[t][x+k*p][y+k*q] ) num++ ;
dp[t][x][y] = max(dp[t][x][y],dp[t-1][x+k*p][y+k*q]+num) ;
k++ ;
}
}
}
return ;
}
int main() {
int n , d , m ;
int x , y , t ;
int i , j , max_t , ans ;
while( scanf("%d %d %d", &n, &d, &m) && n+d+m != 0 ) {
memset(dp,0,sizeof(dp)) ;
memset(Map,0,sizeof(Map)) ;
max_t = ans = 0 ;
while( m-- ) {
scanf("%d %d %d", &x, &y, &t) ;
Map[t][x+5][y+5] = 1 ;
max_t = max(max_t,t) ;
}
n += 12 ;
for(t = 1 ; t <= max_t ; t++) {
for(i = 0 ; i < n ; i++) {
for(j = 0 ; j < n ; j++) {
f(n,t,i,j,d) ;
ans = max(ans,dp[t][i][j]) ;
}
}
}
printf("%d\n", ans) ;
}
return 0 ;
}

poj3034--Whac-a-Mole(dp)的更多相关文章

  1. LightOJ 1033 Generating Palindromes(dp)

    LightOJ 1033  Generating Palindromes(dp) 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...

  2. lightOJ 1047 Neighbor House (DP)

    lightOJ 1047   Neighbor House (DP) 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87730# ...

  3. UVA11125 - Arrange Some Marbles(dp)

    UVA11125 - Arrange Some Marbles(dp) option=com_onlinejudge&Itemid=8&category=24&page=sho ...

  4. 【POJ 3071】 Football(DP)

    [POJ 3071] Football(DP) Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4350   Accepted ...

  5. 初探动态规划(DP)

    学习qzz的命名,来写一篇关于动态规划(dp)的入门博客. 动态规划应该算是一个入门oier的坑,动态规划的抽象即神奇之处,让很多萌新 萌比. 写这篇博客的目标,就是想要用一些容易理解的方式,讲解入门 ...

  6. Tour(dp)

    Tour(dp) 给定平面上n(n<=1000)个点的坐标(按照x递增的顺序),各点x坐标不同,且均为正整数.请设计一条路线,从最左边的点出发,走到最右边的点后再返回,要求除了最左点和最右点之外 ...

  7. 2017百度之星资格赛 1003:度度熊与邪恶大魔王(DP)

    .navbar-nav > li.active > a { background-image: none; background-color: #058; } .navbar-invers ...

  8. Leetcode之动态规划(DP)专题-详解983. 最低票价(Minimum Cost For Tickets)

    Leetcode之动态规划(DP)专题-983. 最低票价(Minimum Cost For Tickets) 在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行.在接下来的一年里,你要旅行的 ...

  9. 最长公共子序列长度(dp)

    /// 求两个字符串的最大公共子序列长度,最长公共子序列则并不要求连续,但要求前后顺序(dp) #include <bits/stdc++.h> using namespace std; ...

  10. Leetcode之动态规划(DP)专题-647. 回文子串(Palindromic Substrings)

    Leetcode之动态规划(DP)专题-647. 回文子串(Palindromic Substrings) 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串. 具有不同开始位置或结束位置的子 ...

随机推荐

  1. BZOJ4010 [HNOI2015]菜肴制作 【拓扑排序 + 贪心】

    题目 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予 1到N的顺序编号,预估质量最高的菜肴编号为1.由于菜肴之间 ...

  2. 洛谷P4364 [九省联考2018]IIIDX 【线段树】

    题目 [题目背景] Osu听过没?那是Konano最喜欢的一款音乐游戏,而他的梦想就是有一天自己也能做个独特酷炫的音乐游戏.现在 ,他在世界知名游戏公司KONMAI内工作,离他的梦想也越来越近了.这款 ...

  3. mybatis读取oracle中blob

    controller: byte[] blob = commonService.getPersonImage(bean.getIdCard()); String base64 = new String ...

  4. springboot中的controller注解没有生效

    springboot中的controller注解没有生效  , 启动的Application类没有在controller的父目录或同级目录

  5. bzoj 2794 [Poi2012]Cloakroom 离线+背包

    题目大意 有n件物品,每件物品有三个属性a[i], b[i], c[i] (a[i]<b[i]). 再给出q个询问,每个询问由非负整数m, k, s组成,问是否能够选出某些物品使得: 对于每个选 ...

  6. Linq技巧2——限制返回数据中的继承类型

    假如有像下面这样的一个模型, 怎样在查询时仅仅需要的Cars呢? 这样的几个继承关系的实体中,查询时Where 条件可以加入OfType<SubType>(),你可以这样来写: var o ...

  7. 【BZOJ3524】Couriers(主席树)

    题意:给一个长度为n的序列a.1≤a[i]≤n.m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2.如果存在,输出这个数,否则输出0. n,m≤5000 ...

  8. 开始学习es6(二) let 与 const 及 块级作用域

    1.var JavaScript中,我们通常说的作用域是函数作用域,使用var声明的变量,无论是在代码的哪个地方声明的,都会提升到当前作用域的最顶部,这种行为叫做变量提升(Hoisting) cons ...

  9. C语言中的bool类型

    C99中提供了一个头文件 <stdbool.h> 定义了bool代表_Bool,true代表1,false代表0.只要导入 stdbool.h ,就能非常方便的操作布尔类型了. 代码如下: ...

  10. css-通过css让块显示或隐藏

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...