牛客竞赛每日俩题 - Day6
创始人
2024-04-01 14:38:10
0

数学等比数列优化

猴子分桃__牛客网

思路:

把他当成高中数学等比数列题目,一下子就简单起来了!!

                        可以分得桃子数量,                 剩余的桃子数量
第一个小猴子,( x -1) *1/5                           ( x-1) * 4/5 = 4/5x - 4/5
第二个小猴子,((x - 1)*4/5-1)*1/5                ( 4/5x - 4/5-1)*4/5 = (4/5)^2* x- (4/5)^2- 4/5
第三个小猴子,(( 4/5x - 4/5-1)*4/5-1)*1/5    ((4/5)^2* x-(4/5)^2-4/5 -1)*4/5=(4/5)^3* x- (4/5)^3 - (4/5)^2 - 4/5

于是我们可以推出分给第n个猴子后剩下:

((4/5)^n *x - ((4/5)^n +(4/5)^n-1 + ...+(4/5)^1 ) )

令s = (4/5)^n +(4/5)^n-1 + ...+(4/5)^1,使用等比数列前n项和公式

s = 4*(1 - 4/5^n)
所以(4/5)^n * x - 4* (1 - 4/5^n) ---->   4^n / 5^n*(x +4) - 4(剩下)
(x+4)是5^n的倍数,最小的情况∶(x+4) = 5^n
即x = 5^n - 4时取剩下最小值4^n-4

 数学优化O(1)复杂度!!

#include 
#include 
#include 
using namespace std;
int main()
{int n;while(cin >> n) {if (n == 0) break;long total = pow(5, n) - 4;long left = pow(4, n) + n - 4;cout << total << " " << left << endl;}return 0;
}

简单哈希/sort妙用/抵消法

数组中出现次数超过一半的数字_牛客题霸_牛客网

方法一:

简单哈希;如果哈希表里有则加一,无则加入新表

class Solution {
public:int MoreThanHalfNum_Solution(vector numbers) {unordered_map map;int half=numbers.size()/2;for(auto e:numbers){if(map.count(e)) map[e]++;else map.insert(make_pair(e,1));if(map[e]>half) return e;}return 0;}
};

 方法二:

利用sort性质

class Solution {
public:int MoreThanHalfNum_Solution(vector numbers) {sort(numbers.begin(),numbers.end());return numbers[numbers.size()/2];}
};

方法三:

目标条件:
目标数据超过数组长度的一半,那么对数组,我们同时去掉两个不同的数字,到最后剩下的一个数就是该数字。 如果剩下两个,那么这两个也是一样的,就是结果,在其基础上把最后剩下的一个数字或者两个回到原来数组中, 将数组遍历一遍统计一下数字出现次数进行最终判断。
class Solution {public:int MoreThanHalfNum_Solution(vector numbers) {if (numbers.size() == 0) {return 0;}
//重点写一下//可以采取不同的数量进行抵消的思路int number = numbers[0];int times = 1;for (int i = 1; i < numbers.size(); i++) {if (times == 0) { //如果当前times是0,说明之前的不同抵消完了number = numbers[i];times = 1;} else if (numbers[i] == number) times++;else times--;}
//如果输入本身满足条件,则times一定>0, 并且number保存的就是准目标,但是还需要确认int count = 0;for (int i = 0; i < numbers.size(); i++) {if (numbers[i] == number) {count++;}}return count > numbers.size() / 2 ? number : 0;}
};

 

相关内容

热门资讯

铸法治之魂 优营商之境 聚发展... 营商环境是区域发展的核心竞争力,也是激发市场主体活力的关键所在。 2025年12月3日,《毕节市优化...
“惠民政策落不到村”,紧抓! “重点研究周武村党组织软弱涣散的问题,大家直奔主题,谈谈看法。”山西长治市潞城区店上镇会议室里,一场...
《南阳市中医药产业发展促进条例... 河南日报客户端记者 曾倩 12月26日,南阳市政府新闻办公室召开《南阳市中医药产业发展促进条例》(以...
资讯|蓝天彬律师应邀参加研讨会... 2025年12月27日,由北京市海淀区律师协会、北京市西城区律师协会、南京市律师协会联合主办,北京市...
河北一男子称因挪车问题,与一女... 据媒体报道,12月27日,河北衡水龙先生称一女司机以车辆被挡为由,要求他挪车,随后两人因此产生纠纷,...
天津一律师简介宣传爱人是“市局... 12月28日,天津一名刑辩何姓律师的社交平台账号在介绍中称自己是“警嫂”,“爱人是市局经侦办案警官”...
教育部:学籍变动管理实行“一人... 北京商报讯(记者 关子辰 牛清妍)12月29日,记者从教育部官网获悉,《全国学前儿童学籍管理办法(试...
共逐封关政策红利 全球闽商海南... 中新网海口12月29日电 (记者 符宇群)“此行我想了解更多海南封关运作后的相关政策导向,并引导大湾...
国资委:研究制定国有企业履行战... 12月29日,国务院国资委主任张玉卓在学习时报发文表示,党的二十届三中全会明确的各项改革任务需要在2...