喵哈哈村的魔法考试 Round #14 (Div.2)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了喵哈哈村的魔法考试 Round #14 (Div.2)相关的知识,希望对你有一定的参考价值。
喵哈哈村的四月半活动(一)(水题)
描述
今天是四月十五日,是喵哈哈村一年一度的四月半活动,这次活动是由今日头条赞助。
今日头条的乐乐同学在广场上出了一道题,谁答对,就能获得他的祝福哦。
题目如下:
勾股定理是初中数学的重要定理。它的内容是:直角三角形中,两直角边长度的平方和等于斜边长度的平方。若边c是斜边,边a和b是直角边,则a×a+b×b=c×c。
已知一个直角三角形的两边长,求第三条边的长度。
输入
只有一行,这一行有两个用空格隔开的正整数,即已知的两条边。
100%的数据,给出的边长大于0,小于10000。
输出
有若干行,每一行为一个答案,答案保留10位小数(不够补0),注意四舍五入。另:输出的答案请从小到大排序。
4 5
样例输出1
3.0000000000
6.4031242374
Solve:
两条边,第三条要么是斜边要么是直角边,所以考虑a == b?然后!少用long double...我就是一直WA在long double上
Code:
1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef double D; 4 int a , b; 5 int main(int argc, char const *argv[]) 6 { 7 scanf("%d%d" , &a , &b); 8 if(a != b) 9 { 10 if(a < b) 11 swap(a , b); 12 D c = sqrt(a * a - b * b); 13 printf("%.10f\n" , c); 14 } 15 D c = sqrt(a * a + b * b); 16 printf("%.10f\n" , c); 17 return 0; 18 }
喵哈哈村的四月半活动(二)(STL + 二分)
描述
今天是四月十五日,是喵哈哈村一年一度的四月半活动,这次活动是由今日头条赞助。
今日头条的乐乐同学在广场上出了一道题,谁答对,就能获得他的祝福哦。
题目如下:
乐乐是一名天文爱好者,他喜欢晚上看星星。这天,他从淘宝上买下来了一个高级望远镜。他十分开心,于是他晚上去操场上看星星。
不同的星星发出不同的光,他的望远镜可以计算出观测到的星星发出的光的数值W。乐乐当然想尽可能地多看到星星,于是他每看到一颗星星,就要看看他之前有没有看过这颗星星。但是他看的星星太多了,他根本数不过来,于是他让你帮忙。
输入
共有两行,第一行只有一个整数,为观测到的星星的数量n。第二行有n个整数,每两个整数由一个空格隔开,分别为观测到每颗星星的光的数值W1-Wn。
100%的数据,0<n≤500000;-2000000000≤W≤2000000000。
输出
只有一行,这一行共有n个数字0或1。0表示对应的星星之前没有观测到,1表示对应的星星之前已经看过了。注意:数字之间没有空格!
样例输入1
5
1 5 5 4 1
样例输出1
00101
Solve:
水题,我MAP被T了,用了set + 二分,644ms水过
Code:
1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long LL; 4 int n; 5 LL p; 6 set<LL> mmp; 7 set<LL>::iterator it; 8 int main(int argc, char const *argv[]) 9 { 10 scanf("%d" , &n); 11 for(int i = 0 ; i < n ; ++i) 12 { 13 scanf("%lld" , &p); 14 it = mmp.lower_bound(p); 15 if(it != mmp.end() && p == *it) 16 printf("1"); 17 else 18 { 19 printf("0"); 20 mmp.insert(p); 21 } 22 } 23 return 0; 24 }
以上是关于喵哈哈村的魔法考试 Round #14 (Div.2)的主要内容,如果未能解决你的问题,请参考以下文章
喵哈哈村的魔法考试 Round #3 (Div.2) ABCDE
2017-5-16-Train:喵哈哈村的魔法考试 Round #19 (Div.2)