hdu4562 守护雅典娜
先筛选出来两种圆,一种是包含雅典娜,不包含怪兽的,一种是不包含雅典娜,包含怪兽的,然后圆的半径大小排序,分别对两种圆dp,最后合并两种DP,求出最大的就是结果
#include <cstdio>
#include <set>
#include <iostream>
#include <string>
#include <queue>
#include <cstring>
#include <algorithm>
#define LL long long
#define Inf (1<<30)
#define max(x,y) x>y?x:y
using namespace std;
int n,X,Y;
int cntp,cntq;
struct node
{int x,y,r;int num;
}p[1100],q[1100];
bool cmp(node a,node b)
{return a.r<b.r;
}
int judge(node a,node b)//判断两个圆是否内含或者相离,是的话返回对
{int d=(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);if((a.r-b.r)*(a.r-b.r)<=d&&d<=(a.r+b.r)*(a.r+b.r))return 0;return 1;
}
int main()
{ int i,j,t,o=1;//freopen("D:\\oo.txt","r",stdin);scanf("%d",&t);while(t--){cntp=cntq=0;scanf("%d%d%d",&n,&X,&Y); for(i=0;i<n;i++){int x,y,r;scanf("%d%d%d",&x,&y,&r);int d1=x*x+y*y;int d2=(x-X)*(x-X)+(y-Y)*(y-Y);if(d1<r*r&&d2>r*r)//包含雅典娜,不包含怪兽{p[cntp].x=x;p[cntp].y=y;p[cntp].r=r;p[cntp].num=1;cntp++;}if(d1>r*r&&d2<r*r)//不包含雅典娜,包含怪兽{q[cntq].x=x;q[cntq].y=y;q[cntq].r=r;q[cntq].num=1;cntq++;}}int ans=0;sort(p,p+cntp,cmp);sort(q,q+cntq,cmp);for(i=1;i<cntp;i++){for(j=0;j<i;j++)if(judge(p[i],p[j]))p[i].num=max(p[i].num,p[j].num+1);ans=max(ans,p[i].num);}if(cntp==1)ans=max(p[0].num,ans);//比较坑,因为这里错了很多次for(i=1;i<cntq;i++){for(j=0;j<i;j++)if(judge(q[i],q[j]))q[i].num=max(q[i].num,q[j].num+1);ans=max(ans,q[i].num);} if(cntq==1)ans=max(q[0].num,ans);//比较坑,因为这里错了很多次for(i=0;i<cntp;i++){for(j=0;j<cntq;j++)if(judge(p[i],q[j]))ans=max(ans,p[i].num+q[j].num);}printf("Case %d: %d\n",o++,ans);}return 0;
}
hdu4562 守护雅典娜相关推荐
- hdu4562 守护雅典娜 DP
守护雅典娜 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Subm ...
- HDU4562 守护雅典娜(DP)
守护雅典娜 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Subm ...
- 守护雅典娜 HDU-4562
vj链接: 守护雅典娜 题目描述: 许多塔防游戏都是以经典的"守护雅典娜"为原型的.玩家需要建立各种防御工具来阻止怪物接近我们的女神--雅典娜. 这里,我们可以建造的防御工具只有标 ...
- 杭电acm4562守护雅典娜 (dp+圆)
守护雅典娜 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Subm ...
- HDU 4562 守护雅典娜(dp)
守护雅典娜 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Subm ...
- hdu 4562 守护雅典娜(计算几何+dp)
守护雅典娜 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Subm ...
- HDU 4562 守护雅典娜(金山复赛第二场)
题意是塔防建塔,要求建最多塔 然后符合的情况是: rt 红色是允许的,蓝色是不允许的 输入时选择红色的 然后dp1 ath的圈,再dp2 mon的圈,最后dp3这两种圈的总和 dp1和dp2中能增加的 ...
- HDU 4562 守护雅典娜(动态规划)
答案分为三种只能只有包含雅典娜的塔,只有包含怪兽的塔,包含雅典娜和怪兽的塔的和. 使用dp可以分别计算包含雅典娜.怪兽的最厚塔层数,过程类似LIS.枚举这两种情况的塔数,求和计算第三种情况. #inc ...
- HDOJ - 4562/西山居复赛2 守护雅典娜
比赛的时候WA得一塌糊涂~~原因!..读题粗心了!!上一题的输出是Case #1: 0 , 而本题居然是Case 1: 1 ... 同一套题..神坑... 思路很简单了..能产生防御效果的..无非是能 ...
最新文章
- [干货]Kaggle热门 | 用一个框架解决所有机器学习难题
- oracle查看表和索引碎片,Oracle 表空间索引存储与碎片检查
- Android AsyncTask源码解读
- 【数据结构与算法】之深入解析“省份数量”的求解思路与算法示例
- 最新Android ADT, SDK, SDK_tool等官方下载说明(及时更新)
- Android周日历可滑动可选择日期
- reviewboard 安装
- Telink BDT 的使用方法
- 如何将您的计算机变成带有病态胡须的增压TiVo
- mysql字符集与校对规则设置_mysql 字符集和校对规则
- BI报表工具FineReport的使用2【帆软聚合报表设计,最常用功能】
- java.lang.IllegalArgumentException: Failed to decrypt.
- Eolink 11月企业与产品动态速览!
- 第二次使用Arduino MKR WiFi 1010做服务器
- linux 喂狗时间,看门狗喂狗时间及程序
- 疫情风险地区查询数据库
- Unsupervised Cross-Dataset Transfer Learning for Person Re-identification阅读总结
- javaCV入门指南:调用FFmpeg原生API和JavaCV是如何封装了FFmpeg的音视频操作?
- 数学符号大全 打不出就复制吧
- 新来个阿里 P7,仅花 2 小时,撸出一个多线程永动任务,看完直接跪了,真牛逼!...
热门文章
- 传统节日被淡化 老外:圣诞节在中国流行不可思议
- Go :测试简单的布尔和数字常量(附完整源码)
- html使页面崩溃,HTML5新特性Bug:这12行代码分分钟让你浏览器崩溃iPhone重启
- 通过浏览器直接打开android应用程序,直接通过浏览器打开Android App 应用
- linux(凝思系统)进入单用户模式
- matlab需要64g内存吗,买128G的手机有必要吗?64G手机内存会不够用么?
- CorelDRAW变换面板
- java毕业生设计高校二手交易平台计算机源码+系统+mysql+调试部署+lw
- Exchange Server 2013管理及应用-王进-专题视频课程
- 赢在中国主题曲《在路上》