vijos 隐形的翅膀
背景
小杉终于进入了天堂。他看到每个人都带着一双隐形翅膀,他也想要。
(小杉是怎么看到的?……)
描述
天使告诉小杉,每只翅膀都有长度,两只翅膀的长度之比越接近黄金分割比例,就越完美。
现在天使给了小杉N只翅膀,小杉想挑出一对最完美的。
格式
输入格式
每组测试数据的
第一行有一个数N(2<=N<=30000)
第二行有N个不超过1e5的正整数,表示N只翅膀的长度。
20%的数据N<=100
输出格式
对每组测试数据输出两个整数,表示小杉挑选出来的一对翅膀。
注意,比较短的在前,如果有多对翅膀的完美程度一样,请输出最小的一对。
样例1
样例输入1
4
2 3 4 6
样例输出1
2
3
限制
每个测试点1s
提示
你可以认为黄金分割比就是0.6180339887498949
来源
lolanv
这题比较神奇
1 /* 2 枚举一个数 a[i] 3 除以黄金比 得到 t=a[i]/gold 4 找到 与 t相差最小的数 5 */ 6 #include<cstdio> 7 #include<iostream> 8 #include<algorithm> 9 #define gold 0.6180339887498949 10 #define MAXN 30010 11 12 using namespace std; 13 14 int n,a[MAXN],Lx,Ry; 15 16 double minn=1000000.0; 17 18 inline void read(int&x) { 19 x=0;int f=1;char c=getchar(); 20 while(c>'9'||c<'0') {if(c=='-') f=-1;c=getchar();} 21 while(c>='0'&&c<='9') {x=(x<<1)+(x<<3)+c-48;c=getchar();} 22 x=x*f; 23 } 24 25 inline bool cmp(int a,int b) { 26 return a<b; 27 } 28 29 inline double abs(double x) { 30 if(x<0) return -x; 31 return x; 32 } 33 34 int main() { 35 read(n); 36 for(int i=1;i<=n;i++) read(a[i]); 37 sort(a+1,a+1+n,cmp); 38 for(int i=1;i<=n;i++) { 39 if(a[i]==0) continue; 40 double p=a[i]/gold; 41 int l=i,r=n,mid,k; 42 while(l<=r) { 43 mid=(l+r)>>1; 44 if(a[mid]>p) r=mid-1,k=r; 45 else l=mid+1; 46 } 47 if(a[k]==0) continue; 48 double temp=abs((double)a[i]/a[k]-gold); 49 if(temp<minn) { 50 minn=temp; 51 Lx=a[i]; 52 Ry=a[k]; 53 } 54 } 55 printf("%d\n%d\n",Lx,Ry); 56 return 0; 57 }
90分代码
上面的方法不知道哪里有问题
只好换一种原理
1 /* 2 枚举两个数 3 计算黄金比 4 取最优值 5 */ 6 #include<cstdio> 7 #include<iostream> 8 #include<algorithm> 9 #define gold 0.6180339887498949 10 #define MAXN 30010 11 12 using namespace std; 13 14 int n,a[MAXN],Lx,Ry; 15 16 double minn=1000000.0; 17 18 inline void read(int&x) { 19 x=0;int f=1;char c=getchar(); 20 while(c>'9'||c<'0') {if(c=='-') f=-1;c=getchar();} 21 while(c>='0'&&c<='9') {x=(x<<1)+(x<<3)+c-48;c=getchar();} 22 x=x*f; 23 } 24 25 inline bool cmp(int a,int b) { 26 return a<b; 27 } 28 29 inline double abs(double x) { 30 if(x<0) return -x; 31 return x; 32 } 33 34 inline bool judge(int x,int y) { 35 double GOLD=(double)a[x]/(double)a[y]; 36 if(GOLD<gold) { 37 if(gold-GOLD<minn) { 38 minn=gold-GOLD; 39 Lx=a[x]; 40 Ry=a[y]; 41 } 42 return 1; 43 } 44 if(GOLD>gold) { 45 if(GOLD-gold<minn) { 46 minn=GOLD-gold; 47 Lx=a[x]; 48 Ry=a[y]; 49 } 50 return 0; 51 } 52 } 53 54 int main() { 55 read(n); 56 for(int i=1;i<=n;i++) read(a[i]); 57 sort(a+1,a+1+n,cmp); 58 for(int i=1;i<=n;i++) { 59 if(a[i]==0) continue; 60 double p=a[i]/gold; 61 int l=i,r=n,mid,k; 62 while(l<=r) { 63 mid=(l+r)>>1; 64 if(judge(i,mid)) r=mid-1; 65 else l=mid+1; 66 } 67 } 68 printf("%d\n%d\n",Lx,Ry); 69 return 0; 70 }
AC代码
vijos 隐形的翅膀相关推荐
- vijos||隐形的翅膀
小杉终于进入了天堂.他看到每个人都带着一双隐形翅膀,他也想要. (小杉是怎么看到的?--) 描述 天使告诉小杉,每只翅膀都有长度,两只翅膀的长度之比越接近黄金分割比例,就越完美. 现在天使给了小杉N只 ...
- vijos 1237 隐形的翅膀
隐形的翅膀 背景 小杉终于进入了天堂.他看到每个人都带着一双隐形翅膀,他也想要. (小杉是怎么看到的?--) 描述 天使告诉小杉,每只翅膀都有长度,两只翅膀的长度之比越接近黄金分割比例,就越完美. 现 ...
- 隐形的翅膀 vijos
隐形的翅膀 背景 小杉终于进入了天堂.他看到每个人都带着一双隐形翅膀,他也想要. (小杉是怎么看到的?--) 描述 天使告诉小杉,每只翅膀都有长度,两只翅膀的长度之比越接近黄金分割比例,就越完美. 现 ...
- .NET2.0隐形的翅膀,正则表达式搜魂者【月儿原创】
.NET2.0隐形的翅膀,正则表达式搜魂者 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.14 本文实现了:只能输入1个数 ...
- 视频监控为校园安全插上“隐形的翅膀”
随着公众社会安全防范意识的提高,安防系统慢慢在各种公共场合普及.而我国教育事业的发展,高校的规模越来越大,学生人数不断增多,校区开放程度和后勤服务社会化程度亦越来越高,学校的管理工作和安全保安工作面临 ...
- 知识管理:如何让“隐形的翅膀”飞起来?
知识管理:如何让"隐形的翅膀"飞起来? 时间:2013-06-07 16:25:46 来源: 中国期刊网 作者:陈新红 知识具有垄断性,但许多企业把知识管理看作员工的额外工作,或寄 ...
- 隐形的翅膀怎么用计算机弹出来,《隐形的翅膀》原版吉他谱分享,用音阶指法弹简谱其实很简单 ... ......
<隐形的翅膀>是张韶涵的一首流行经典老歌,我们很多学吉他的朋友,初学吉他的时候经常会弹唱的一首歌,弹得可能简单版或者是其他版本,这里分享一个原版的吉他伴奏,相对来说要难一点,不过对于弹吉他 ...
- 隐形的翅膀怎么用计算机弹出来,《隐形的翅膀》原版吉他谱分享,用音阶指法弹简谱其实很简单 … …-520吉他网...
时间:2020-05-14 来源:网络资源 <隐形的翅膀>是张韶涵的一首流行经典老歌,我们很多学吉他的朋友,初学吉他的时候经常会弹唱的一首歌,弹得可能简单版或者是其他版本,这里分享 ...
- 歌曲:隐形的翅膀 歌手:张韶涵
歌名:隐形的翅膀 歌手:张韶涵 每一次 都在徘徊孤单中坚强 每一次 就算很受伤也不闪泪光 我知道 我一直有双隐形的翅膀 带我飞 飞过绝望 不去想 他们拥有美丽的太阳 我看见 每天的夕阳也会有变化 我知 ...
最新文章
- MyEclipse10中导入的jquery文件报错(出现红叉叉,提示语法错误)
- Linux有问必答:如何安装autossh
- mysql1231错误_Mysql学习---Python操作Mysql 1231
- rem、px、em之间的区别以及网页响应式设计写法
- java 复写_课程5.4之函数的复写(override)
- Hollis要转行了?
- springboot+flowable第三节(动态设置审批人)
- 用Dreamweaver+ASP实现分页技术的参考
- ArrayBuffer和TypedArray,以及Blob的使用
- jqgrid 编辑状态获取该单元格的元素的id 和操作该元素
- aliyun gradle 代理_gradle:现代高效的java构建工具
- Visio 2019
- 工人退休工资偏低,为什么?
- 【Java学习笔记】斗地主规则抽牌模拟(利用LinkedList集合及Collections集合工具类实现)
- QNAP文件系统不干净,qFinder搜索不到nas,可以ping通
- 如何使用Python 绘制惊艳众人的瀑布图
- 小米6内存测试软件,小米6采用的是eMMC还是UFS2.1?来测试一下吧
- socket网络编程 poll的简单用法
- 37岁Android程序员裸辞,四个月被497家公司拒绝,问猎头后懵了
- meta20 无法安装 google play_不ROOT不刷机,小米手机如何安装谷歌 GMS 三件套
热门文章
- Python raise用法(超级详细,无师自通)
- 孤岛惊魂风格哈啥地方噶啥地方嘎斯的发
- (XCTest.h file not found)cocoapods引入Specta库之后报XCTest.h文件无法找到
- phpMyAdmin使用教程
- 511遇见易语言乐玩插件多线程后台绑定-方法2
- Android 序列化(Serializable和Parcelable),kotlin开发windows程序
- Unity3D shader——水的折射与反射
- 在matlab中输入平方
- 创维布局大屏AIoT,两款智能电视新品重磅登场
- GAN生成动漫头像Pytorch