hdu 6080 度度熊保护村庄(floydS使用技巧)
度度熊保护村庄
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 124 Accepted Submission(s): 53
度度熊为了拯救喵哈哈村,带着自己的伙伴去救援喵哈哈村去了!度度熊与伙伴们很快的就过来占据了喵哈哈村的各个军事要地,牢牢的守住了喵哈哈村。
但是度度熊发现,这是一场旷日持久的战斗,所以度度熊决定要以逸待劳,保存尽量多的体力,去迎战哗啦啦村的战士。
于是度度熊决定派尽量多的人去休息,但是同时也不能松懈对喵哈哈村的保护。
换句话而言,度度熊希望尽量多的人休息,而且存在一个包围圈由剩下的人组成,且能够恰好的包围住喵哈哈村的所有住房(包括边界)。
请问最多能让多少个人休息呢?
第一行一个整数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
如果无法保护整个村庄的话,输出"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使用技巧)相关推荐
- hdu 6080 度度熊保护村庄
题意 哗啦啦村袭击了喵哈哈村! 度度熊为了拯救喵哈哈村,带着自己的伙伴去救援喵哈哈村去了!度度熊与伙伴们很快的就过来占据了喵哈哈村的各个军事要地,牢牢的守住了喵哈哈村. 但是度度熊发现,这是一场旷日持 ...
- 2017百度之星资格赛:1001. 度度熊保护村庄(floyd最小环)
度度熊保护村庄 Accepts: 26 Submissions: 677 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/ ...
- 2020 年百度之星·程序设计大赛 - 测试赛1001 度度熊保护村庄
Problem Description 哗啦啦村袭击了喵哈哈村! 度度熊为了拯救喵哈哈村,带着自己的伙伴去救援喵哈哈村去了!度度熊与伙伴们很快的就过来占据了喵哈哈村的各个军事要地,牢牢的守住了喵哈哈村 ...
- HDU 6082 度度熊与邪恶大魔王 (完全背包)
度度熊与邪恶大魔王 Time Limit: 2000/1000 MS ( ...
- HDU - 6082 度度熊与邪恶大魔王(背包变式)
度度熊与邪恶大魔王 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊一共拥有m种攻击方式,第i种攻击方式,需 ...
- HDU 6113 度度熊的01世界【DFS/Flood Fill】
度度熊的01世界 Accepts: 967 Submissions: 3064 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/ ...
- HDU 6082 度度熊与邪恶大魔王(01背包)
Description 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊一共拥有m种攻击方式,第i种攻击方式 ...
- 【hdu 6082 度度熊与邪恶大魔王 】 完全背包
hdu 6082 这道题一拿过来 对一个熊直接跑完全背包 然后跑 100000 次 完美TLE 其实因为对一个熊跑的时候 下次熊还是会跑的 于是需要对所有的熊直接完全背包预处理 设 dp[i][j] ...
- HDU - 6082——度度熊与邪恶大魔王 (背包+DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6082 思路:dp[i][j]代表打死血量为i,防御力为j的怪兽要用的最少晶石.用背包的方式dp. #i ...
- HDU - 6118 度度熊的交易计划(最大费用可行流)
题目链接:点击查看 题目大意:给出一张 n 个点 m 条边的有向图,每个点可以生产至多 b[ i ] 个物品,每个物品花费为 a[ i ] ,可以出售至多 d[ i ] 个物品,每个物品售价为 c[ ...
最新文章
- 图解GPT-2(完整版)!
- Matlab/Simulink电力系统——无穷大功率电源供电系统三相短路仿真
- Java专家系列:CPU Cache与高性能编程
- java的接口怎么理解_如何理解Java 中的接口
- flink报错org.apache.commons.cli.Option.builder
- Opencv——批量处理同一文件夹下的图片(解决savedfilename = dest + filenames[i].substr(len)问题)
- cannot be deleted directly via the port API: has device owner network:floatingip
- [转载] Java获取泛型T的类型 T.class
- 有权限的网页能分享内页?_有哪些舍不得分享的办公软件?
- 如何从手机上做风控,设备指纹如何下手?
- 红帽linux桌面版镜像下载,红帽 Red Hat Linux相关产品iso镜像下载【迅雷快传】【更新5.11 6.6】...
- ie6-7下的li内有浮动元素后导致多出了4px的高度的bug
- iis启动 服务无法在此时接受控制信息。 (异常来自 HRESULT:0x80070425)
- cdr怎么算曲线周长_cdr怎么计算图形的周长和面积? cdr图形计算长度和面积的技巧...
- 关于四叶玫瑰花数的问题
- BlackHoleDAO能否点燃DeFi3.0用户激情
- ubuntu无法使用man
- 成人大专计算机应用技术专业难毕业吗,深圳成人大专哪个专业容易毕业
- C语言顺序表:1、顺序表的存储、2、顺序表的实现.
- [Swift]LeetCode825. 适龄的朋友 | Friends Of Appropriate Ages
热门文章
- Java学习笔记 - Apache Common CSV 的使用总结
- 黑群DS3617xs 6.2.3套件中心无法添加第三方源/添加第三方源失败解决方案/群晖套件中心无效的位置解决
- 中国移动的固网宽带免费?想多了,收费快接近中国电信了,它已从中获取近千亿收入...
- 四级网络工程师笔记-计算机网络(中)
- PS2019工具介绍笔记(一)
- 14家互联网公司裁员(1-2月裁员清单)
- OSPF LSA内容解析及SPF算法分析
- vestacp调整php.ini,VestaCP中roundcube的SMTP配置方法
- 二倍图三倍图什么意思_ios切图(一倍图+二倍图+三倍图)
- c盘分小了如何扩大c盘,重新分区扩大c盘