bzoj 1605: [Usaco2008 Open]Crisis on the Farm 牧场危机(DP)
1605: [Usaco2008 Open]Crisis on the Farm 牧场危机
Time Limit: 10 Sec Memory Limit: 64 MB
Submit: 403 Solved: 145
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
Sample Output
dp[k][i][j]表示第k步所有奶牛的总体偏移量为(i, j)的最大挽救数
因为i, j可以为负,所以要整体+k
还要输出路径,反过来DFS一遍是必须的
不好写
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
typedef struct
{int x;int y;
}Point;
Point s1[1005], s2[1005];
int cnt[66][66], dp[33][66][66], dir[4][2] = {1,0,0,1,0,-1,-1,0};
char ans[33][66][66], Q[5] = "WSNE";
int main(void)
{int n, m, k, i, j, p, bet, f, q;scanf("%d%d%d", &n, &m, &k);for(i=1;i<=n;i++)scanf("%d%d", &s1[i].x, &s1[i].y);for(i=1;i<=m;i++)scanf("%d%d", &s2[i].x, &s2[i].y);for(i=1;i<=n;i++){for(j=1;j<=m;j++){if(abs(s1[i].x-s2[j].x)>k || abs(s1[i].y-s2[j].y)>k)continue;cnt[31+s1[i].x-s2[j].x][31+s1[i].y-s2[j].y]++;}}memset(ans, 'Z', sizeof(ans));memset(dp, -62, sizeof(dp));bet = 0;dp[0][31][31] = 0;for(p=1;p<=k;p++){for(i=1;i<=62;i++){for(j=1;j<=62;j++){dp[p][i][j] = max(max(dp[p-1][i-1][j], dp[p-1][i][j-1]), max(dp[p-1][i+1][j], dp[p-1][i][j+1]))+cnt[i][j];if(p==k)bet = max(bet, dp[p][i][j]);}}}for(i=1;i<=62;i++){for(j=1;j<=62;j++){if(dp[k][i][j]==bet)ans[k][i][j] = 'A';}}for(p=k-1;p>=0;p--){for(i=1;i<=62;i++){for(j=1;j<=62;j++){for(f=0;f<=3;f++){if(dp[p][i][j]+cnt[i+dir[f][0]][j+dir[f][1]]==dp[p+1][i+dir[f][0]][j+dir[f][1]] && ans[p+1][i+dir[f][0]][j+dir[f][1]]<'Z')ans[p][i][j] = Q[f];}}}}p = q = 31;printf("%d\n", bet);for(i=0;i<=k-1;i++){printf("%c", ans[i][p][q]);switch(ans[i][p][q]){case 'E': p--; break;case 'W': p++; break;case 'S': q++; break;case 'N': q--;}}printf("\n");return 0;
}
bzoj 1605: [Usaco2008 Open]Crisis on the Farm 牧场危机(DP)相关推荐
- [Usaco2008 Open]Crisis on the Farm 牧场危机
1605: [Usaco2008 Open]Crisis on the Farm 牧场危机 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 288 S ...
- bzoj1605 洛谷2905 [Usaco2008 Open]Crisis on the Farm 牧场危机(DP)
很暴力的一个题 这个题目大概分为以下几步 一.计算从原点走多少步产生的贡献 曼哈顿距离搞一搞 二.进行DP求最大值 按照字典序贪心的按WSNE进行DP,取最后一个 三.检查合格的终止点 便利一遍DP数 ...
- bzoj 1609: [Usaco2008 Feb]Eating Together麻烦的聚餐(DP)
1609: [Usaco2008 Feb]Eating Together麻烦的聚餐 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 1616 Solv ...
- BZOJ 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛【DP】
1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec Memory Limit: 64 MB Description 奶牛们在被划分成N ...
- P2905 [USACO08OPEN]农场危机Crisis on the Farm(简单dp+麻烦“回溯”)
惯例,化简题意(看长短决定难度) 一块草坪上有两种点(姑且称为a和b),各有坐标,现在能同时使所有a点向东西南北任意一个方向移动一个单位,若a点与b点重合,则答案增加重合数,求答案的最大值并且求出这个 ...
- 1621: [Usaco2008 Open]Roads Around The Farm分岔路口(记忆化搜索)
1621: [Usaco2008 Open]Roads Around The Farm分岔路口 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 883 ...
- bzoj1605 / P2905 [USACO08OPEN]农场危机Crisis on the Farm
P2905 [USACO08OPEN]农场危机Crisis on the Farm 发现总步数$k<=30$,考虑用$k$瞎搞 设$f[u][i][j]$表示已经吹$u$次哨,全体奶牛向右走$i ...
- 洛谷P2905 [USACO08OPEN]农场危机Crisis on the Farm
P2905 [USACO08OPEN]农场危机Crisis on the Farm 题目描述 约翰和他的奶牛组建了一只乐队"后街奶牛",现在他们正在牧场里排练.奶牛们分成一堆 一堆 ...
- How to fix the global rice crisis 如何应对全球稻米危机 | 经济学人20230401版双语精翻
文 / 柳下婴(微信公众号:王不留) 4月1日<经济学人>周报封面即社论区(Leaders)精选文章:<如何应对全球稻米危机>(How to fix the global ri ...
最新文章
- git 将暂存区文件提交_Git知识
- STO双中心势能积分
- 配置ftp服务器亲测可用
- [MapReduce_add_4] MapReduce 的 join 操作
- Tensorflow笔记(基础): 图与会话,变量
- docker容器内漏洞_如何在2020年发现和修复Docker容器漏洞
- CentOS6.5与XP双系统安装
- LAMP_PHP配置
- 【机器学习】竞争神经网络(Competitive Neural Network)的python实现
- [转]innodb的锁时间
- MyBatis官方文档——XML配置部分
- Unhandled exception. System.NullReferenceException: Object reference not set to an....
- 数梅派4b 显示器_无显示器配置树莓派4B
- Linux驱动模块加载失败
- 命令行压缩工具7z.exe使用详解
- Gauss-Legendre求积公式-高斯型积分公式
- spring-狂神学习笔记-联系我获取md文档
- css 光影掠过文字效果
- Ionic Capacitor 插件开发
- 机械键盘组合键失灵、Windows键失灵
热门文章
- python 干什么工作具有明显优势-python能做什么?有哪些优点?
- python 代码命令大全-Linux命令大全
- 语音识别芯片的经典应用案例
- 语音情感识别的优选方法与流程
- Linux服务器的eth,linux做服务器安装两块网卡问题????
- JavaScript创建页面节点
- el-cascader获取label
- sql server php删除,使用 SQL Server 添加删除修改查询储存过程
- cad坐标提取插件_如何快速地将CAD里的坐标提取到Excel中?最简单的方法你知道吗?...
- python怎么存为动图_Python将视频或者动态图gif逐帧保存为图片的方法