博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 3034 动态规划
阅读量:4647 次
发布时间:2019-06-09

本文共 1598 字,大约阅读时间需要 5 分钟。

思路:这是一道坑爹的动态规划,思路很容易想到,就是细节。

用dp[t][i][j],表示在第t时间,锤子停在(i,j)位置能获得的最大数量。那么只要找到一个点转移到(i,j)收益最大即可。

#include#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define pb push_back#define mp make_pair#define Maxn 2000010#define Maxm 80002#define LL __int64#define Abs(x) ((x)>0?(x):(-x))#define lson(x) (x<<1)#define rson(x) (x<<1|1)#define inf 100000#define lowbit(x) (x&(-x))#define Mod 1000000007using namespace std;int dp[13][100][100],g[13][100][100];int get_num(int t,int x1,int y1,int x2,int y2){ int i,j; if(x1>x2){ swap(x1,x2); swap(y1,y2); } int l,r,sum=0; if(x1==x2){ l=min(y1,y2); r=max(y1,y2); for(i=l;i<=r;i++){ sum+=g[t][x1][i]; } return sum; } if(y1==y2){ l=min(x1,x2); r=max(x1,x2); for(i=l;i<=r;i++){ sum+=g[t][i][y1]; } return sum; } for(i=x1;i<=x2;i++){ if((i-x1)*(y2-y1)%(x2-x1)==0){ sum+=g[t][i][(i-x1)*(y2-y1)/(x2-x1)+y1]; } } return sum;}int main(){ int n,d,m,t,i,j,x,y,z,k,T; while(scanf("%d%d%d",&n,&d,&m)!=EOF,n||m||d){ memset(dp,0,sizeof(dp)); memset(g,0,sizeof(g)); T=0; int ans=0; for(i=1;i<=m;i++){ scanf("%d%d%d",&x,&y,&z); g[z][x+d+1][y+d+1]=1; T=max(T,z); } n+=2*d+2; for(t=1;t<=T;t++){ for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ for(x=i-d;x<=i+d;x++){ for(y=j-d;y<=j+d;y++){ if(x<=0||x>n||y<=0||y>n) continue; if((x-i)*(x-i)+(y-j)*(y-j)<=d*d){ dp[t][i][j]=max(dp[t][i][j],dp[t-1][x][y]+get_num(t,i,j,x,y)); ans=max(ans,dp[t][i][j]); } } } } } } printf("%d\n",ans); } return 0;}

 

转载于:https://www.cnblogs.com/wangfang20/p/3300831.html

你可能感兴趣的文章
Linux安装postgresql
查看>>
MyBatis启动:MapperStatement创建
查看>>
【 全干货 】5 分钟带你看懂 Docker !
查看>>
[转]优化Flash性能
查看>>
popStar手机游戏机机对战程序
查看>>
Java Web项目结构
查看>>
lambda表达式树
查看>>
二次注入原理及防御
查看>>
会话记住已登录功能
查看>>
Linux内核分析——可执行程序的装载
查看>>
儿子和女儿——解释器和编译器的区别与联系
查看>>
第一阶段冲刺3
查看>>
父类引用指向子类对象
查看>>
网页如何实现下载功能
查看>>
IT男专用表白程序
查看>>
读《大道至简》第六章感想
查看>>
ef linq 中判断实体中是否包含某集合
查看>>
章三 链表
查看>>
Solution for Concurrent number of AOS' for this application exceeds the licensed number
查看>>
CSE 3100 Systems Programming
查看>>