首页 > 代码库 > 喵哈哈村的魔法考试 Round #14 (Div.2)
喵哈哈村的魔法考试 Round #14 (Div.2)
喵哈哈村的四月半活动(一)(水题)
描述
今天是四月十五日,是喵哈哈村一年一度的四月半活动,这次活动是由今日头条赞助。
今日头条的乐乐同学在广场上出了一道题,谁答对,就能获得他的祝福哦。
题目如下:
勾股定理是初中数学的重要定理。它的内容是:直角三角形中,两直角边长度的平方和等于斜边长度的平方。若边c是斜边,边a和b是直角边,则a×a+b×b=c×c。
已知一个直角三角形的两边长,求第三条边的长度。
输入
只有一行,这一行有两个用空格隔开的正整数,即已知的两条边。
100%的数据,给出的边长大于0,小于10000。
输出
有若干行,每一行为一个答案,答案保留10位小数(不够补0),注意四舍五入。另:输出的答案请从小到大排序。
样例输入1
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 else18 {19 printf("0");20 mmp.insert(p);21 }22 }23 return 0;24 }
喵哈哈村的魔法考试 Round #14 (Div.2)