题目

分析

我们定义\(dis_{x,y,x1,y2}\)表示\((x,y)\)到\((x1,y1)\)的距离。这个用spfa求。

接着,枚举两个集合点\((x,y)、(x1,y1)\), 得出这两个集合点到骑士的距离,放入\(dis1\)和\(dis2\)。

然后考虑贪心,

假设全选\(dis1\),和为\(sum\)。把\(dis2-dis1\)从小到大排个序,把前\(\dfrac{n}{2}\)的值加到\(sum\),答案就是\(\min(sum)\)

#include <cmath>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <queue>
const int maxlongint=2147483647;
const int mo=1000000007;
const int N=205;
using namespace std;
int dis[21][21][21][21],a[N],n,m,r,c,ans=maxlongint,b[N][2],d[N*100][4],tot;
int z[8][2]=
{
{2,1},
{2,-1},
{-2,1},
{-2,-1},
{1,2},
{1,-2},
{-1,-2},
{-1,2}
};
bool bz[21][21];
int spfa(int x,int y)
{
int head=0,tail=1,xx,yy;
d[1][1]=x;
d[1][2]=y;
dis[x][y][x][y]=0;
while(head<tail)
{
xx=d[++head][1];
yy=d[head][2];
bz[xx][yy]=true;
for(int i=0;i<=7;i++)
{
if(dis[x][y][xx+z[i][0]][yy+z[i][1]]>dis[x][y][xx][yy]+1)
{
dis[x][y][xx+z[i][0]][yy+z[i][1]]=dis[x][y][xx][yy]+1;
if(bz[xx+z[i][0]][yy+z[i][1]])
{
bz[xx+z[i][0]][yy+z[i][1]]=false;
d[++tail][1]=xx+z[i][0];
d[tail][2]=yy+z[i][1];
}
} }
}
}
int main()
{
scanf("%d%d%d",&n,&r,&c);
for(int i=1;i<=n;i++)
for(int j=0;j<=1;j++)
scanf("%d",&b[i][j]);
memset(dis,43,sizeof(dis));
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
{
memset(bz,true,sizeof(bz));
spfa(i,j);
}
for(int x=1;x<=r;x++)
for(int y=1;y<=c;y++)
{
int sum=0;
for(int i=1;i<=n;i++)
{
sum+=dis[x][y][b[i][0]][b[i][1]];
}
int o=sum;
for(int xx=1;xx<=r;xx++)
for(int yy=1;yy<=c;yy++)
if(x!=xx || y!=yy)
{
sum=o;
tot=0;
for(int i=1;i<=n;i++)
{
a[++tot]=dis[xx][yy][b[i][0]][b[i][1]]-dis[x][y][b[i][0]][b[i][1]];
}
sort(a+1,a+tot+1);
for(int i=1;i<=n/2;i++)
{
sum+=a[i];
}
if(sum<ans)
ans=sum;
}
}
printf("%d",ans);
}

【NOIP2016A组模拟7.13】亚瑟王之宫的更多相关文章

  1. NOIP2017提高组 模拟赛13(总结)

    NOIP2017提高组 模拟赛13(总结) 第一题 函数 [题目描述] [输入格式] 三个整数. 1≤t<10^9+7,2≤l≤r≤5*10^6 [输出格式] 一个整数. [输出样例] 2 2 ...

  2. [JZOJ100043] 【NOIP2017提高A组模拟7.13】第K小数

    Description 有两个正整数数列,元素个数分别为N和M.从两个数列中分别任取一个数相乘,这样一共可以得到N*M个数,询问这N*M个数中第K小数是多少. Input 输入文件包含三行. 第一行为 ...

  3. JZOJ100045 【NOIP2017提高A组模拟7.13】好数

    题目 题目大意 首先有一个定义: 对于一个数,如果和它互质的数可以组成一个等差数列,那么这个数叫"好数". 现在给你一个数列,有三种操作: 1.询问一段区间内的好数的个数. 2.将 ...

  4. Bzoj4008 [HNOI2015]亚瑟王

    Time Limit: 20 Sec  Memory Limit: 512 MBSec  Special Judge Submit: 1009  Solved: 605[Submit][Status] ...

  5. 【BZOJ4008】[HNOI2015]亚瑟王 期望

    [BZOJ4008][HNOI2015]亚瑟王 Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最 ...

  6. 【BZOJ-4008】亚瑟王 概率与期望 + DP

    4008: [HNOI2015]亚瑟王 Time Limit: 20 Sec  Memory Limit: 512 MBSec  Special JudgeSubmit: 832  Solved: 5 ...

  7. BZOJ 4008: [HNOI2015]亚瑟王( dp )

    dp(i, j)表示考虑了前i张牌, 然后还有j轮的概率. 考虑第i+1张牌: 发动的概率 : p = dp(i, j) * (1 - (1-p[i+1])^j) 没发动的概率 : dp(i, j) ...

  8. [HNOI 2015]亚瑟王

    Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂 亮.众所周知,亚瑟王是一 ...

  9. bzoj 4008 亚瑟王 - 动态规划 - 概率与期望

    Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂 亮.众所周知,亚瑟王是一 ...

随机推荐

  1. VirtualBox主机虚拟机互通

    首先使用的是桥接模式,桥接模式相当于是使用Hub来把主机以及虚拟机进行关联: 然后就是选择“界面名称”,这里吐槽一下,这里其实是“Interface Name”,Interface代表的是网卡的接口, ...

  2. Delphi中TQuery.Filter用法

    今天维护一个老项目是用delphi5 + BDE写的.为了更方便查询数据,就增加一个查询功能.由于数据量查询出来后就比较少,于是就想到Filter like 但 BDE并不支持 Filter = 'n ...

  3. IIS安全狗问题

    1.没有安装以前网站运行正常,安装IIS全狗以后,ajaxpro2出现,找不到任何问题,卸载安全狗以后正常. 2.很久以前遇到的一个问题,有一款NET的cms系统,也是安装了安全狗以后不正常,忘记了c ...

  4. Oracle 启用登录终端超时锁定功能

    远程连接oracle 会出现超时连接断开的问题,所以需要修改oracle配置. 修改超时时间10分钟 ALTER PROFILE DEFAULT LIMIT IDLE_TIME 10; 查询修改后的超 ...

  5. 剑指Offer编程题(Java实现)——两个链表的第一个公共结点

    题目描述: 输入两个链表,找出它们的第一个公共结点. 思路一: 设 A 的长度为 a + c,B 的长度为 b + c,其中 c 为尾部公共部分长度,可知 a + c + b = b + c + a. ...

  6. Vue 实现手动刷新组件

    Vue 实现手动刷新组件:https://www.jianshu.com/p/742142dc95f3

  7. NOIP赛前集训备忘录(含每日总结)(日更?。。。)

    NOIP赛前集训备忘录(含每日考试总结) 标签: 有用的东西~(≧▽≦)/~啦啦啦 阅读体验:https://zybuluo.com/Junlier/note/1279194 考试每日总结(这个东西是 ...

  8. RabbitMq学习5-路由(Routing)

    一.路由(Routing) 在前面的教程中,我们实现了一个简单的日志系统.可以把日志消息广播给多个接收者. 本篇教程中我们打算新增一个功能——使得它能够只订阅消息的一个字集.例如,我们只需要把严重的错 ...

  9. 解决stanfordnlp一直运行不报错也没有结果

    最近学习stanfordnlp,当运行程序时,发现程序一直没有反应,上网查询说是内存不够,但是本地电脑是8g内存.后来重新下载了所需文件,问题解决.

  10. [七月挑选]IntelliJ IDEA常用设置

    title: IntelliJ IDEA常用设置 设置idea的类注释快捷键 File -> Settings -> Live Templates 1.右边的 + -> Templa ...