度度熊保护村庄

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

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

判断整个村庄是否在两个点的左侧,如果在就连边,最后判断一个点到自身的最短距离(即环的大小)即可;

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <map>
#include <queue>
#include <bitset>
using namespace std;
typedef long long LL;
const int N = 507;
struct node
{int x, y;node operator -(const node &A)const{node c;c.x=x-A.x,c.y=y-A.y;return c;}double operator *(const node &A)const{return x*A.y-y*A.x;}
}a[N], b[N];
int w[N][N];
int judge(node A,node B,node C)
{int xmaxt=max(A.x,B.x),xmint=min(A.x,B.x);int ymaxt=max(A.y,B.y),ymint=min(A.y,B.y);if(C.x>=xmint&&C.x<=xmaxt&&C.y>=ymint&&C.y<=ymaxt) return 0;return 1;
}int main()
{int n, m;while(scanf("%d", &n)!=EOF){memset(w,0x3f3f3f3f,sizeof(w));for(int i=0;i<n;i++) scanf("%d %d", &b[i].x, &b[i].y);scanf("%d", &m);for(int i=0;i<m;i++) scanf("%d %d", &a[i].x, &a[i].y);for(int i=0;i<m;i++){for(int j=0;j<m;j++){int flag=0;for(int k=0;k<n;k++){//cout<<(a[j]-a[i])*(b[k]-a[i])<<endl;if((a[j]-a[i])*(b[k]-a[i])<0||((a[j]-a[i])*(b[k]-a[i])==0&&judge(a[i],a[j],b[k]))){flag=1;break;}}if(!flag) w[i][j]=1;}}for(int k=0;k<m;k++){for(int i=0;i<m;i++){if(w[i][k]==0x3f3f3f3f) continue;for(int j=0;j<m;j++){w[i][j]=min(w[i][k]+w[k][j],w[i][j]);}}}int ans=0x3f3f3f3f;for(int i=0;i<m;i++) ans=min(ans,w[i][i]);if(ans>m) puts("ToT");else cout<<m-ans<<endl;}return 0;
}

hdu 6080 度度熊保护村庄(floydS使用技巧)相关推荐

  1. hdu 6080 度度熊保护村庄

    题意 哗啦啦村袭击了喵哈哈村! 度度熊为了拯救喵哈哈村,带着自己的伙伴去救援喵哈哈村去了!度度熊与伙伴们很快的就过来占据了喵哈哈村的各个军事要地,牢牢的守住了喵哈哈村. 但是度度熊发现,这是一场旷日持 ...

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

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

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

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

  4. HDU 6082 度度熊与邪恶大魔王 (完全背包)

    度度熊与邪恶大魔王                                                                 Time Limit: 2000/1000 MS ( ...

  5. HDU - 6082 度度熊与邪恶大魔王(背包变式)

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

  6. HDU 6113 度度熊的01世界【DFS/Flood Fill】

    度度熊的01世界 Accepts: 967 Submissions: 3064  Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/ ...

  7. HDU 6082 度度熊与邪恶大魔王(01背包)

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

  8. 【hdu 6082 度度熊与邪恶大魔王 】 完全背包

    hdu 6082 这道题一拿过来 对一个熊直接跑完全背包 然后跑 100000 次 完美TLE 其实因为对一个熊跑的时候 下次熊还是会跑的 于是需要对所有的熊直接完全背包预处理 设 dp[i][j] ...

  9. HDU - 6082——度度熊与邪恶大魔王 (背包+DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6082 思路:dp[i][j]代表打死血量为i,防御力为j的怪兽要用的最少晶石.用背包的方式dp. #i ...

  10. HDU - 6118 度度熊的交易计划(最大费用可行流)

    题目链接:点击查看 题目大意:给出一张 n 个点 m 条边的有向图,每个点可以生产至多 b[ i ] 个物品,每个物品花费为 a[ i ] ,可以出售至多 d[ i ] 个物品,每个物品售价为 c[ ...

最新文章

  1. 图解GPT-2(完整版)!
  2. Matlab/Simulink电力系统——无穷大功率电源供电系统三相短路仿真
  3. Java专家系列:CPU Cache与高性能编程
  4. java的接口怎么理解_如何理解Java 中的接口
  5. flink报错org.apache.commons.cli.Option.builder
  6. Opencv——批量处理同一文件夹下的图片(解决savedfilename = dest + filenames[i].substr(len)问题)
  7. cannot be deleted directly via the port API: has device owner network:floatingip
  8. [转载] Java获取泛型T的类型 T.class
  9. 有权限的网页能分享内页?_有哪些舍不得分享的办公软件?
  10. 如何从手机上做风控,设备指纹如何下手?
  11. 红帽linux桌面版镜像下载,红帽 Red Hat Linux相关产品iso镜像下载【迅雷快传】【更新5.11 6.6】...
  12. ie6-7下的li内有浮动元素后导致多出了4px的高度的bug
  13. iis启动 服务无法在此时接受控制信息。 (异常来自 HRESULT:0x80070425)
  14. cdr怎么算曲线周长_cdr怎么计算图形的周长和面积? cdr图形计算长度和面积的技巧...
  15. 关于四叶玫瑰花数的问题
  16. BlackHoleDAO能否点燃DeFi3.0用户激情
  17. ubuntu无法使用man
  18. 成人大专计算机应用技术专业难毕业吗,深圳成人大专哪个专业容易毕业
  19. C语言顺序表:1、顺序表的存储、2、顺序表的实现.
  20. [Swift]LeetCode825. 适龄的朋友 | Friends Of Appropriate Ages

热门文章

  1. Java学习笔记 - Apache Common CSV 的使用总结
  2. 黑群DS3617xs 6.2.3套件中心无法添加第三方源/添加第三方源失败解决方案/群晖套件中心无效的位置解决
  3. 中国移动的固网宽带免费?想多了,收费快接近中国电信了,它已从中获取近千亿收入...
  4. 四级网络工程师笔记-计算机网络(中)
  5. PS2019工具介绍笔记(一)
  6. 14家互联网公司裁员(1-2月裁员清单)
  7. OSPF LSA内容解析及SPF算法分析
  8. vestacp调整php.ini,VestaCP中roundcube的SMTP配置方法
  9. 二倍图三倍图什么意思_ios切图(一倍图+二倍图+三倍图)
  10. c盘分小了如何扩大c盘,重新分区扩大c盘