度度熊保护村庄

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 249    Accepted Submission(s): 99

Problem Description
哗啦啦村袭击了喵哈哈村!

度度熊为了拯救喵哈哈村,带着自己的伙伴去救援喵哈哈村去了!度度熊与伙伴们很快的就过来占据了喵哈哈村的各个军事要地,牢牢的守住了喵哈哈村。

但是度度熊发现,这是一场旷日持久的战斗,所以度度熊决定要以逸待劳,保存尽量多的体力,去迎战哗啦啦村的战士。

于是度度熊决定派尽量多的人去休息,但是同时也不能松懈对喵哈哈村的保护。

换句话而言,度度熊希望尽量多的人休息,而且存在一个包围圈由剩下的人组成,且能够恰好的包围住喵哈哈村的所有住房(包括边界)。

请问最多能让多少个人休息呢?

Input
本题包含若干组测试数据。

第一行一个整数n,表示喵哈哈村的住房数量。

接下来n行,每行两个整数(x1[i],y1[i]),表示喵哈哈村的住房坐标。

第n+1行一个整数m,表示度度熊的士兵数量。

接下来m行,每行两个整数(x2[i],y2[i]),表示度度熊伙伴的坐标。

满足:

1<=n,m<=500

-10000<=x1[i],x2[i],y1[i],y2[i]<=10000

Output
请输出最多的人员休息的数目。

如果无法保护整个村庄的话,输出"ToT"

Sample Input
2 1 1 2 2 4 0 0 0 4 4 2 4 0 1 1 1 2 0 0 0 1
Sample Output
1
ToT
预备知识:1.如何判断点在向量上的方向(temp=(a.y-b.y)*c.x+(b.x-a.x)*c.y+a.x*b.y)大于零则c在左边,小于零c在右边,等于零c在线上
2.Floyd(最小环算法)
方法:1.如果所有的住的地方均在(a,b)(枚举士兵的位置)的右边或者在(a,b)的线上则map[a][b]=1,否则map[a][b]=inf;
2:用Floyd求出最小环与m比较,如果不成环则最小环=inf
#include <stdio.h>
#include<algorithm>
#include<string.h>
#define inf 99999999
using namespace std;
struct point{int x,y;
}a[1000],b[1000];
int map[1000][1000];
int rightorleft(point a,point b,point c)
{int temp=(a.y-b.y)*c.x+(b.x-a.x)*c.y+a.x*b.y-b.x*a.y;return temp;//小于零在右边 大于零在左边 等于零共线
}
int check(point a,point b,point c)
{if(a.x>b.x&&a.x>c.x)return 1;if(a.x<b.x&&a.x<c.x)return 1;if(a.y>b.y&&a.y>c.y)return 1;if(a.y<b.y&&a.y<c.y)return 1;return 0;
}
int main(int argc, char *argv[])
{int n,m;while(scanf("%d",&n)!=EOF){int x,y,i,j,k;for(i=0;i<n;i++){scanf("%d %d",&x,&y);a[i].x=x;a[i].y=y;}scanf("%d",&m);for(i=0;i<m;i++){scanf("%d %d",&x,&y);b[i].x=x;b[i].y=y;}for(i=0;i<m;i++){for(j=0;j<m;j++){map[i][j]=inf;}}for(i=0;i<m;i++){for(j=0;j<m;j++){int flag=1;for(k=0;k<n;k++){if((rightorleft(b[i],b[j],a[k])>0)||(rightorleft(b[i],b[j],a[k])==0&&check(a[k],b[i],b[j]))){flag=0;break;}}if(flag)map[i][j]=1;}}for(i=0;i<m;i++)//start {for(j=0;j<m;j++){if(map[j][i]==inf)continue;for(k=0;k<m;k++){map[j][k]=min(map[j][k],map[j][i]+map[i][k]);}}}int ans=99999999;for(i=0;i<m;i++){ans=min(ans,map[i][i]);}if(ans>m)printf("ToT\n");elseprintf("%d\n",m-ans);}   return 0;
}

注意:dijstra的算法求最短路径方便,Floyd求最小环方便,c在ab向量的右边在ba向量的左边

HDU6080 百度之星资格赛1001 度度熊保护村庄相关推荐

  1. 2017百度之星资格赛:1001. 度度熊保护村庄(floyd最小环)

    度度熊保护村庄  Accepts: 26  Submissions: 677  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 32768/ ...

  2. 2017百度之星资格赛—1003度度熊与邪恶大魔王

    其他题目就不发博客了(有些也没做出来!!),感觉这次百度之星资格赛题目数据有毒,吐槽,其他题目也不好说,感觉这个题目正常点. 这个题目我当时想到的就是动态规划,但是评论中很多人说是贪心,我一直不理解, ...

  3. 2020 年百度之星·程序设计大赛 - 测试赛1001 度度熊保护村庄

    Problem Description 哗啦啦村袭击了喵哈哈村! 度度熊为了拯救喵哈哈村,带着自己的伙伴去救援喵哈哈村去了!度度熊与伙伴们很快的就过来占据了喵哈哈村的各个军事要地,牢牢的守住了喵哈哈村 ...

  4. 百度之星资格赛1003 度度熊与邪恶大魔王

    Problem Description 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊一共拥有m种攻击方式 ...

  5. 百度之星资格赛1003 度度熊与邪恶大魔王(dp)--2017

    度度熊与邪恶大魔王 Problem Description 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊 ...

  6. (百度之星资格赛) 度度熊与邪恶大魔王 (dp)

    度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊一共拥有m种攻击方式,第i种攻击方式,需要消耗k[i]的晶石 ...

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

    1003度度熊与邪恶大魔王 Accepts: 1503 Submissions: 9026 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 3 ...

  8. 2017百度之星资格赛1003 度度熊与邪恶大魔王(完全背包)

    题意: 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来.邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力.度度熊一共拥有m种攻击方式,第i种攻击方式,需要消耗k[i]的 ...

  9. 2017百度之星资格赛 1003 度度熊与邪恶大魔王

    本题我们可以类比背包 背包dp[i][j] 表示再有i个物品下j个空间所获得的最大价值 本题dp[i][j] 可以表示干掉i个血量j个防御力下的最小花费 我们看其实我们就是在不同血量之间转移 如果当前 ...

  10. 百度之星资格赛 1003 度度熊与邪恶大魔王 DP 完全背包

    题目链接: http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=774&pid=1003 题目大意: a[i], ...

最新文章

  1. 动态绑定与继承:不得不去想细节
  2. Android之PullToRefresh控件源码解析
  3. .Net Core 3.0 gRPC部署问题解决
  4. linux将bridge当做hub来用
  5. android4 设置栈大小,【技术分享】Android内核漏洞利用技术实战:环境搭建栈溢出实战...
  6. ClassLoader.getResourceAsStream(name);获取配置文件的方法
  7. 计算机视觉中的牛人贡献及其主页
  8. 类 java_java类的基本结构
  9. Javascript的websocket的使用方法
  10. 上传Text文档并转换为PDF(解决乱码)
  11. python以读写方式打开文件_python 文件读写with open模式r,r+,w,w+,a,a+的区别
  12. Joomla网站的移植步骤
  13. qchart 怎么点击一下 出一条线_疏通身上一条线,很多难缠病,不知不觉消失了!...
  14. tplink软件升级有用吗_TP-LINK路由器升级方法 | 吴文辉博客
  15. 设置Easyui datagrid的pageNumber导致两次请求的解决方案
  16. HD2500显卡驱动linux,Intel HD Graphics 4000/2500集成显卡驱动
  17. 技术架构图-软件研发流程
  18. APMServ中Apache启动失败解决方法大全
  19. 第三方支付的商户订单号和支付交易号
  20. 英文格式的时间转换为 yyyy-MM-dd 格式

热门文章

  1. Nii切片->2D ndarray灰色图->PIL灰色图->PIL RGB彩色图
  2. DDD领域驱动设计:四层架构应用
  3. PHP 微信公众号消息加解密
  4. 解决word模板目录域更新失败的问题
  5. 转行软件测试两个多月,感觉很迷茫,下一步该如何提高自己?
  6. 苹果计算机cpu 型号怎么看,MacBook苹果电脑怎么查看cpu型号等配置详情
  7. ESP32的倒腾日记——做一个蓝牙双模快捷键盘
  8. 宏晶微MS2130 USB3.0高清视频采集芯片应用于直播导播一体机
  9. DBLink应用速成
  10. c语言字符串转为大写,c语言 字符串转大写的简单实例