A-牛牛算数
题目描述
给你一个含有n个元素的数组arr[i],请你告诉牛牛这个数组的中位数大还是平均数大,如果中位数更大输出1,如果平均数更大输出-1,如果中位数和平均数相等输出0
示例1
输入
[1,3,4]
输出
1
说明:
中位数3,平均数约等于2.67,所以输出1
示例2
输入
[7,4,8,11]
输出
0
说明
中位数7.5,平均数7.5,所以输出0
示例3
输入
[6,6,6,6,5,8]
输出
-1
说明
中位数6,平均数约等于6.17,所以输出-1
备注:
对于30%30%的数据: 1<=n<=1e3,1<=arr[i]<=1e9,1≤n≤1e3,1≤arr[i]≤1e9
对于100%100%的数据: 1<=n<= 1e6,1<= arr[i]<=1e9,1≤n≤1e6,1≤arr[i]≤1e9
用double就行
class Solution {
public:
/**
*
* @param arr int整型vector
* @return int整型
*/
int Answerofjudge(vector<int>& arr) {
// write code here
sort(arr.begin(),arr.end());
double sum=0,mid;
int len=arr.size();
if(len%2==0)
mid=(double)(arr[len/2]+arr[len/2-1])/2;
else
mid=arr[len/2];
for(auto i:arr)
sum+=i;
if(sum/len<mid)
return 1;
else if(sum/len>mid)
return -1;
return 0;
}
};
B-牛牛质数
题目描述
牛牛有一个质数p,和两个区间[a,b],[c,d],分别在两个区间中取一个数x,y。求有多少对(x,y)使得x∗y是p的倍数。给定你两个区间,求从区间中取出数相乘是p的倍数的个数。
示例1
输入
3,7,4,6,3
输出
9
说明:
(3,4),(3,5),(3,6),(4,6),(5,6),(6,6),(7,6),(6,4),(6,5)一共有9个
备注:
1≤a≤b≤10^9
1≤c≤d≤10^9
1≤p≤10^9
数据保证p为质数
这题如果直接枚举范围的每一个整数容易超时,直接枚举p的整数倍就行,然后判断是否在范围内再进行计算。
class Solution {
public:
/**
* 返回两个区间内各取一个值相乘是p的倍数的个数
* @param a int整型 第一个区间的左边界
* @param b int整型 第一个区间的右边界
* @param c int整型 第二个区间的左边界
* @param d int整型 第二个区间的右边界
* @param p int整型 质数
* @return long长整型
*/
long long numbers(int a, int b, int c, int d, int p) {
// write code here
long long int sum=0,sum1=0,sum2=0;
int tmp;
for(int i=1;i*p<=b;i++){
if(i*p>=a&&i*p<=b){
tmp=i*p;
sum1++;
break;
}
}
sum1+=((b-tmp)/p);
sum=(d-c+1)*sum1;
for(int i=1;i*p<=d;i++){
if(i*p>=c&&i*p<=d){
tmp=i*p;
sum2+=(b-a+1)-sum1;
break;
}
}
return sum+sum2+((d-tmp)/p)*(b-a+1-sum1);
}
};
C-锻炼身体
题目描述
疫情期间,牛牛整天摊在床上沉溺于手机,身体日渐虚胖,因此牛妹拿走家中的 wifi 路由器,迫使牛牛下床来拿到路由器。在这过程中,牛牛想要在尽可能短的时间内拿到路由器,而牛妹却希望牛牛多走一会儿。现假设牛妹家中有 nn 个房间,任意两个房间有且仅有一条路径,起初路由器在编号为 xx 的房间内,牛牛在编号为 1 的房间内,牛牛与牛妹速度相同,当俩人同时开始移动,牛牛要经过几个房间才能拿到路由器。
只要牛牛和路由器处在同一房间,便看作牛牛已拿到路由器。
输入
第一个参数为 nn ,(1≤n≤100,000)
第二个参数为 xx ,(1≤x≤n)
第三个参数为大小为 n-1的点对 (u_i, v_i)
输出
牛牛最多需要经过的房间数(包括 1 号房间在内)。
示例1
输入
5,2,[(1,2),(2,3),(3,4),(2,5)]
输出
4
说明
当牛妹将路由器放到 4 号房间时,牛牛需要经过 1 -> 2 -> 3 -> 4 共四个房间。
这题没看懂,听老师解说是一棵树,用dfs找出离牛妹近离牛牛远的结点即可。。。