[Usaco2008 Open]Crisis on the Farm 牧场危机
1605: [Usaco2008 Open]Crisis on the Farm 牧场危机
Time Limit: 10 Sec Memory Limit: 64 MB
Submit: 288 Solved: 95
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
3 4
6 2
5 7
8 2
9 2
6 4
5 4
6 7
8 7
Sample Output
the area. Each haystack ends up saving 1 cow.
6
EEE
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
const int maxn = 80;
const int dx[4] = {1,0,-1,0};
const int dy[4] = {0,1,0,-1};
const char d[4] = {'W','S','E','N'};
struct W{
char a[maxn];
bool operator < (const W &b) const{
for (int l = 1; l <= maxn; l++)
{
if (a[l] < b.a[l]) return true;
if (a[l] > b.a[l]) return false;
}
}
}w[maxn][maxn][maxn];
struct C{
int x,y;
}cow[1010];
int f[maxn][maxn][maxn],Map[1010][1010],n,m,k,i,j,cnt[maxn][maxn];
bool vis[maxn][maxn][maxn];
int main()
{
//freopen("yzy.txt","r",stdin);
cin >> n >> m >> k;
memset(Map,0,sizeof(Map));
memset(f,0,sizeof(f));
memset(vis,false,sizeof(vis));
for (i = 1; i <= n; i++) scanf("%d%d",&cow[i].x,&cow[i].y);
for (i = 1; i <= m; i++)
{
int x,y;
scanf("%d%d",&x,&y);
Map[x][y] = 1;
}
for (int l = 1; l <= n; l++)
for (i = 0; i <= 2*k; i++)
for (j = 0; j <= 2*k; j++)
{
int xx = cow[l].x + i - k;
int yy = cow[l].y + j - k;
if (xx < 0 || xx > 1000 || yy < 0 || yy > 1000)
{
continue;
}
cnt[i][j] += Map[xx][yy];
}
f[0][k][k] = 0;
vis[0][k][k] = true;
for (int l = 1; l <= k; l++)
for (i = 0; i <= 2*k; i++)
for (j = 0; j <= 2*k; j++)
for (int L = 0; L < 4; L++)
{
int xx = i + dx[L];
int yy = j + dy[L];
if (xx < 0 || xx > 2*k || yy < 0 || yy > 2*k || !vis[l-1][xx][yy]) continue;
vis[l][i][j] = true;
if (f[l][i][j] < f[l-1][xx][yy] + cnt[i][j])
{
f[l][i][j] = f[l-1][xx][yy] + cnt[i][j];
w[l][i][j] = w[l-1][xx][yy];
w[l][i][j].a[l] = d[L];
}
else
if (f[l][i][j] == f[l-1][xx][yy] + cnt[i][j])
{
W K;
K = w[l-1][xx][yy];
K.a[l] = d[L];
if (K < w[l][i][j] || f[l][i][j] == 0) w[l][i][j] = K;
}
}
int ans = -1,I,J;
for (i = 0; i <= 2*k; i++)
for (j = 0; j <= 2*k; j++)
if (f[k][i][j] > ans)
{
ans = f[k][i][j];
I = i; J = j;
}
else
if (f[k][i][j] == ans)
{
if (w[k][i][j] < w[k][I][J])
{
I = i;J = j;
}
}
printf("%d\n",ans);
for (i = 1; i <= k; i++) cout << w[k][I][J].a[i];
return 0;
}
[Usaco2008 Open]Crisis on the Farm 牧场危机相关推荐
- 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 S ...
- bzoj1605 洛谷2905 [Usaco2008 Open]Crisis on the Farm 牧场危机(DP)
很暴力的一个题 这个题目大概分为以下几步 一.计算从原点走多少步产生的贡献 曼哈顿距离搞一搞 二.进行DP求最大值 按照字典序贪心的按WSNE进行DP,取最后一个 三.检查合格的终止点 便利一遍DP数 ...
- 洛谷P2905 [USACO08OPEN]农场危机Crisis on the Farm
P2905 [USACO08OPEN]农场危机Crisis on the Farm 题目描述 约翰和他的奶牛组建了一只乐队"后街奶牛",现在他们正在牧场里排练.奶牛们分成一堆 一堆 ...
- bzoj1605 / P2905 [USACO08OPEN]农场危机Crisis on the Farm
P2905 [USACO08OPEN]农场危机Crisis on the Farm 发现总步数$k<=30$,考虑用$k$瞎搞 设$f[u][i][j]$表示已经吹$u$次哨,全体奶牛向右走$i ...
- 1621: [Usaco2008 Open]Roads Around The Farm分岔路口(记忆化搜索)
1621: [Usaco2008 Open]Roads Around The Farm分岔路口 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 883 ...
- How to fix the global rice crisis 如何应对全球稻米危机 | 经济学人20230401版双语精翻
文 / 柳下婴(微信公众号:王不留) 4月1日<经济学人>周报封面即社论区(Leaders)精选文章:<如何应对全球稻米危机>(How to fix the global ri ...
- P2905 [USACO08OPEN]农场危机Crisis on the Farm(简单dp+麻烦“回溯”)
惯例,化简题意(看长短决定难度) 一块草坪上有两种点(姑且称为a和b),各有坐标,现在能同时使所有a点向东西南北任意一个方向移动一个单位,若a点与b点重合,则答案增加重合数,求答案的最大值并且求出这个 ...
- P2905 [USACO08OPEN]农场危机Crisis on the Farm
传送门 DP 设 f [ i ] [ j ] [ k ] 表示已经走了 i 步,向上走了 j 步,向右走了 k 步时能拯救的最多奶牛数(j,k可以为负,表示反向) 设 g [ i ] [ j ] 表示 ...
- 《告别失控:软件开发团队管理必读》一一1.2 成功的程序设计经理为什么难当...
本节书摘来自异步社区出版社<告别失控:软件开发团队管理必读>一书中的第1章,第1.2节,作者: [美]Mickey W. Mantle(米奇 W.蒙托) , Ron Lichty(罗恩•利 ...
最新文章
- 华为链路汇聚命令(静态)
- Java常见内存溢出异常分析
- 丁钧:移动,未来的王
- Logstash配置语法及相关命令
- html:(29):伪选择符和分组选择符
- 【APIO2009-3】抢掠计划
- 【车道线检测】基于matlab Hough变换视频车道线检测 【含Matlab源码 274期】
- 讯飞语音转写json结果格式化,提取文字(基于python)
- 最简单的视频编码器:基于libx265(编码YUV为H.265)
- 自注意力中的不同的掩码介绍以及他们是如何工作的?
- 干货教程:如何把一张照片用PS做成漫画风格(附最新视频教程)
- 华厦眼科上市:募资31亿市值393亿 挂靠厦门大学
- 搭建自己的dns服务器
- 诺基亚如何利用计算机上网,诺基亚S60怎么通过笔记本的WIFI上网?
- 如何成为一名合格的程序员?
- mysql怎样添加唯一标识_MySql设置唯一标识,主键等设置
- android手机桌面怎么调,安卓手机如何修改手机桌面上的CMCC
- 手拉手微商俱乐部 微信营销实战课程开讲啦
- Eolink x CSDN|战略合作,共建API全生命周期开发生态
- 三年级下册我想发明的机器人_3年级我想发明的机器人作文300字(共5篇)
热门文章
- 老调重弹,Android Studio 打包H5项目(2020版)
- 华为董事会名单大曝光:孙亚芳任正非等13名董事
- 蚂蚁金服若IPO 信贷业务或将得到长远发展
- 关于微信公众号调起支付
- android入门整理
- 【子桓说】西安女硕士:我挺感谢新媒体的
- Praat脚本-022 | 提取时长和音强
- [iOS]上传图片和音视频到阿里云
- 信息学奥赛一本通1278:复制书稿(evd)
- php curl couldnt connect to host,linux curl命令:curl: (7) couldn't connect to host ?