首页 > 其他分享 >2024.08.25拼多多

2024.08.25拼多多

时间:2024-09-12 18:13:13浏览次数:1  
标签:25 cnt temp nums int res 2024.08 多多

1. 树中删边

多多有一颗 n 个节点的树,树中每一条边都有一个权值。
多多还有一个长度为 n 的正整数序列:删除树中若干条边之后(或者不删),就会变成一个有 x 个连通块的图,
此时的得分为:剩余边权和 + ((两个可以互相到达的节点属于同一个连通块,注意一个孤点也是一个连通块)
多多可以删除图中若干条边(可以不删)。现在多多想知道,最多能够得到多少分。现在请你告诉多多答案

贪心
int main() {
    int n;
    cin>>n;
    int s = 0;
    vector<int> v(n);
    vector<int> a(n);
    for(int i=0;i<n;i++)
        cin>>v[i];
    for(int i=1;i<n;i++){
        int from,to;
        cin>>from>>to>>a[i];
        s+=a[i];
    }
    int res = 0;
    sort(a.begin()+1,a.end());
    for(int i=0;i<n;i++){
        s-=a[i];
        res = max(res,s+v[i]);
    }
    cout<<res<<endl;
    return 0;
}

2. 数列操作

多多有一列正整数组成的数列,支持两种操作:选取一个偶数,使其值减半选取两个数字,
移除并替换为两个数字的和多多希望最终能够得到一个全为奇数的数列,请计算最少需要操作几次

思维题
int main() {
    int n;
    cin>>n;
    vector<int> nums(n);
    for(int i=0;i<n;i++)
        cin>>nums[i];
    int res = INT_MAX;
    int odd = 0;//记录奇数个数
    //偶数通过n次减半最终可以变为奇数,也就是其第一个1在二进制第几位,表示要操作几次,奇数可以将偶数变成奇数
    for(auto num:nums){
        int cnt = 0;
        int cur = num;
        while(cur%2==0){
            cnt++;
            cur/=2;
        }
        if(cnt==0) odd++;
        res = min(res,cnt);
    }
    if(odd==0) cout<<n-1+res<<endl;
    else cout<<n-odd<<endl;
}

3. 交换礼物

多多携带一件价值为的礼物参加了一个节日派对。除多多外在场的有个人,第i个人的当前持有的礼物价值为。
多多可以和任意当前持有礼物价值比多多低的人交换礼物。请问最少经过多少次交换,可以使得个人持有的礼物价值形成单调不减的数列

思维题
int main() {
    int n,v;
    cin>>n>>v;
    vector<int> nums(n);
    for(int i=0;i<n;i++)
        cin>>nums[i];

    int idx = 1;
    while(idx<n){
        if(nums[idx]<nums[idx-1]) break;
        idx++;
    }
    if(idx==n){
        cout<<0<<endl;
        return 0;
    }
    nums[idx] = v;
    vector<int> temp = nums;
    sort(temp.begin(),temp.end());

    int res = 0;
    for(int i=n-1;i>=0;i--){
        if(nums[i]==temp[i]) continue;
        if(v==temp[i]){
            res++;
            v = nums[i];//替换
        }
        else{
            cout<<-1<<endl;
            return 0;
        }
    }
    cout<<res<<endl;
    return 0;
}

4. 字符串操作

给定长度为n的01串,定义一次操作为, 将整个字符串按顺序分为两部分, 将两部分各自翻转后再按原顺序拼接。
提问,进行任意次的操作后,可以得到的最长的连续的01交替的子串有多长。
例:原01串为 01001,可以先将原串分为 010 和 01 两部分, 分别翻转得到 010 和 10 ,
按原顺序拼接后得到 01010.  此时最长的连续交替子串为 01010,长度为5.

思维题
int main() {
    int n;
    cin>>n;
    string str;
    cin>>str;
    int res = 1; int cnt = 1;
    for(int i=1;i<2*n;i++)
        if(str[i%n]!=str[(i-1)%n]){
            cnt ++;
            res = max(res,cnt);
        }
        else cnt = 1;
    cout<<min(res,n)<<endl;
    return 0;
}

标签:25,cnt,temp,nums,int,res,2024.08,多多
From: https://www.cnblogs.com/929code/p/18410787

相关文章

  • 2576. 求出最多标记下标
    给你一个下标从0开始的整数数组nums。一开始,所有下标都没有被标记。你可以执行以下操作任意次:选择两个互不相同且未标记的下标i和j,满足2*nums[i]<=nums[j],标记下标i和j。请你执行上述操作任意次,返回nums中最多可以标记的下标数目。示例1:输入:nums=[3......
  • KubeSphere 社区双周报| 2024.08.30-09.12
    KubeSphere社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过commit的贡献者,并对近期重要的PR进行解析,同时还包含了线上/线下活动和布道推广等一系列社区动态。本次双周报涵盖时间为:2024.08.30-09.12。贡献者名单近期重要更新KubeSphereK......
  • 2552.统计上升四元组
    题目描述:给你一个长度为n下标从0开始的整数数组nums,它包含1到n的所有数字,请你返回上升四元组的数目。如果一个四元组(i,j,k,l)满足以下条件,我们称它是上升的:0<=i<j<k<l<n且nums[i]<nums[k]<nums[j]<nums[l]。示例1:输入:nums=[1,3,2,4,5]......
  • 最高奖励25万?!IT人拥有软考证书可以领取哪些补贴?
       软考证书在哪些地区可以领取补贴,领取多少补贴,这是很多同学关心的问题。以下汇总了部分地区的补贴,同学们可以看看。01  广州黄埔区:1、在黄埔区重点产业单位工作的专业技术人才,对在本区重点产业单位工作的专业技术人才,通过职称评审新取得副高级职称的,一次性给予4000元培养......
  • 【每日一题】LeetCode 2576.求出最多标记下标(贪心、数组、双指针、二分查找、排序)
    【每日一题】LeetCode2576.求出最多标记下标(贪心、数组、双指针、二分查找、排序)题目描述给定一个整数数组nums,数组下标从0开始。你需要执行以下操作,直到无法再执行为止:选择两个互不相同且未标记的下标i和j。满足条件2*nums[i]<=nums[j],则标记下标i和j。......
  • GEOG 2500 Web Browsing
    GEOG2500–Fall2024Lab1:WebBrowsing&IntroductiontoESRIWebTraining  Objectives:•   Becomefamiliarwiththewwwto learnaboutGIS andto access Geographic Data•   Locatewebsitesthatcan be useful inyourGISworld• ......
  • 20240909_111725 c语言 关于进位制
    各种进制注意:在较老的版本如VisualStudio2010中,C语言不支持直接使用0b开头来表示二进制数。对于八进制数,如果写成intnum=12;这是十进制的12,如果要明确表示八进制的12,可以写成intnum=012;测一测注,包含了语法错误的情况......
  • uniapp微信小程序的老年防诈科普及交流平台设计和实现 f254d可视化分析系统
    目录技术介绍具体实现截图微信开发者工具HBuilderXuniapp系统设计java类核心代码部分展示登录的业务流程的顺序是:可行性论证详细视频演示技术可行性系统测试系统安全性数据完整性实现思路系统实现源码获取技术介绍如今微信小程序有以下发展优势(1)无须下载,无须注......
  • 【有源码】2025年最全的计算机软件毕业设计选题大全:300个热门选题推荐!本科选题大全汇
    注意:该项目只展示部分功能,如需了解,文末咨询即可。本文目录1、前言2、视频简介3、300个毕设选题参考-微信小程序4、更多推荐1、前言在移动互联网时代,微信小程序凭借其便捷、轻量化的特点,已经成为开发者和用户关注的焦点。从电商平台到社交娱乐,微信小程序的应用场......
  • P2596
    树状数组是个好东西#include<bits/stdc++.h>#defineFill(a,b)memset(a,b,sizeof(a))usingnamespacestd;constint_(3e5+10),INF(2e9),PF(1e5);inlinelonglongRead(){charc='%';longlongx=0,z=1;for(;c>'9'......