阿姆斯特朗回旋加速喷气式阿姆斯特朗炮
2015-12-10 22:31
453 查看
题目来源:https://biancheng.love/contest-ng/index.html#/34/problems
题目描述
时代在进步,在Nova君的改进下,阿姆斯特朗回旋加速喷气式阿姆斯特朗炮终于进化成为了先进的电磁轨道炮,不仅能够在直筒中发射直线型电磁炮,还能利用正负极磁场,在两座炮台间形成弧形电磁炮,大大加强了御敌能力。某一天,天人(外星人)入侵了地球,现在要用阿姆斯特朗回旋加速喷气式阿姆斯特朗炮进行轰击,简化图如下:![](现在抽象问题,假设外星人都在X轴上方(不含X轴本身)出现,现在有三门阿姆斯特朗回旋加速喷气式阿姆斯特朗炮,中间的A炮,可以发射以原点O为起点的任意射线的电磁炮,其方向向量和X轴正方向夹角为Θ,可以消灭位于射线的所有敌人,位于两翼的炮B和炮C形成电磁回路,两炮口间有半圆形的弧形电磁炮,可以消灭位于弧形线上的所有敌人,设半圆的半径为R。每当发现敌人,A炮可以计算出敌人与O点连线和X轴正方向的夹角Θi,B炮和C炮可以计算出敌人所处弧形炮的半径Ri。现在有N个敌人,至少需要发射几次炮弹才能清理所有的外星人?(B、C联动只算发射一次)
PS:
(1)假设Θi为角度制,范围1~179(单位:度)
(2)假设敌人出现的最大半径为1000
输入
多组测试数据(组数不超过10),对于每组数据,输入N+1行,第一行输入一个正整数N,代表外星人的个数。接下来的N行,每行输入两个正整数,为对应的A炮计算出的Θi和B、C炮计算出的Ri。输出
对于每组数据,输出一行,代表发射的最少次数。输入样例
3 12 22 34
输出样例
2 代码:
#include<iostream> #include<cstdio> #include<list> #include<algorithm> #include<cstring> #include<string> #include<queue> #include<stack> #include<map> #include<vector> #include<cmath> #include<memory.h> #include<set> longlongTNF=99999999; #defineLL__int64 #defineeps1e-8 usingnamespacestd; #defineM400000100 #defineinf0xfffffff vector<int>G[1212]; chartempmp[1212]; intmp[1212][1212]; intlmarry[1212],rmarry[1212]; boolvisl[1212],visr[1212]; intdis[2][4]={0,-1,0,1,1,0,-1,0}; intn=1000,m=1000,k; voidclear() { memset(lmarry,-1,sizeof(lmarry)); memset(rmarry,-1,sizeof(rmarry)); memset(visl,false,sizeof(visl)); memset(visr,false,sizeof(visr)); memset(mp,0,sizeof(mp)); for(inti=0;i<1212;i++) G[i].clear(); } booldfs(intx) { visl[x]=true; for(inti=0;i<G[x].size();i++) { intv=G[x][i]; if(!visr[v]) { visr[v]=true; if(lmarry[v]==-1||dfs(lmarry[v])) { lmarry[v]=x; rmarry[x]=v; return1; } } } return0; } intmain(void) { while(~scanf("%d",&k)) { clear(); intu,v; for(inti=0;i<k;i++) { scanf("%d%d",&u,&v); G[u].push_back(v); } intans=0; for(inti=1;i<=n;i++) { memset(visr,false,sizeof(visr)); if(dfs(i)) ans++; } printf("%d",ans); memset(visl,false,sizeof(visl)); memset(visr,false,sizeof(visr)); printf("\n"); } }
相关文章推荐
- 抽奖算法
- ubuntu mysql远程连接
- eclipse jetty插件的安装
- nginx 502错误 upstream sent too big header while reading response header from upstream
- Django doc summary (1)
- 2015/12/10--基础javascript实例
- 零崎的悠哉日常Ⅲ
- kaldi monophone training outline
- OpenDayLight+Mininet测试环境搭建
- 横.竖屏旋转方法
- leetcode -- Minimum Height Trees -- 关于graph的,重点
- HDU 2082 找单词
- 市场调查与分析概述2
- System.currentTimeMillis()与SystemClock.uptimeMillis()
- python学习日记_第三天(ex6~8)
- UIScrollView, UIPageControl 的详细使用
- [笔记] 大型网站技术架构——核心原理与案例分析 [二]
- Mac OS apache php配置
- 转载几篇别人写的皮肤类控件的技术文章
- Mac OS apache php配置