首页 > 其他分享 >第 93 场双周赛

第 93 场双周赛

时间:2023-01-04 00:11:47浏览次数:72  
标签:int Solution 双周 vector ans vals 93 size

1.数组中字符串的最大值

数组中字符串的最大值

Solution

class Solution {
public:
    int maximumValue(vector<string>& strs) {
        int ans = -1;
        for(auto x : strs){
            int n = x.size();
            int sum = 0;
            bool flag = true;
            for(int i = 0;i < n;i++){
                if(x[i] < '0' || x[i] > '9'){
                    ans = max(ans,n);
                    flag = false;
                    break;
                }
                sum = sum*10 + x[i]-'0';
            }
            if(flag) ans = max(ans,sum);
        }
        return ans;
    }
};

2.图中最大星和

图中最大星和

Solution

建立图的邻接表,然后按大小排序算就行

class Solution {
public:
    int maxStarSum(vector<int>& vals, vector<vector<int>>& edges, int k) {
        //建立邻接表
        int n = vals.size();
        vector<vector<int>> g(n);
        for (auto &e : edges) {
            if (vals[e[1]] > 0) {
                g[e[0]].push_back(vals[e[1]]);
            }
            if (vals[e[0]] > 0) {
                g[e[1]].push_back(vals[e[0]]);
            }
        }
        int ans = INT_MIN;
        for (int i = 0; i < n; i++) {
            int cur = vals[i];
            sort(g[i].begin(), g[i].end(), greater<>());
            int upper = min(k, (int)g[i].size());
            for (int j = 0; j < upper; j++) {
                cur += g[i][j];
            }
            ans = max(ans, cur);
        }
        return ans;
    }
};

3.青蛙过河 II

青蛙过河 II

Solution

二分答案,看题就能看出

class Solution {
public:
    int maxJump(vector<int>& stones) {
        auto check = [&](int x, vector<int> &m){
            //先跳到最后
            vector<bool> book(m.size(),false);
            for(int i = 0,j = 1;j < m.size();j++){
                while(j < m.size() && m[j] - m[i] <= x) j++;
                book[j-1] = true;
                i = j-1;
            }
            book[m.size() - 1] = false;
            //从正面跳一遍
            for(int i = 0,j = 1;j < m.size(); j++){
                while(j < m.size() && book[j]) j++;
                if(m[j] - m[i] > x) return false;
                i = j;
            }
            return true;
        };
        int l = 1, r = stones.back();
        while(l < r){
            int mid = l + (r - l) / 2;
            if(check(mid,stones)){
                r = mid;
            }else{
                l = mid+1;
            }
        }
        return l;
    }
};

4.让数组不相等的最小总代价

让数组不相等的最小总代价

Solution

标签:int,Solution,双周,vector,ans,vals,93,size
From: https://www.cnblogs.com/TTS-TTS/p/17023754.html

相关文章

  • mt19937随机数生成_学习笔记
    好文传送门1好文传送门2使用模板:#include<bits/stdc++.h>usingnamespacestd;mt19937rnd(std::random_device{}());intmain(){for(inti=1;i<=10;i++)......
  • 【230101-3】指数比大小:6的93次方 vs 9的63次方
    ......
  • LeetCode第 94 场双周赛
    1.最多可以摧毁的敌人城堡数目题目最多可以摧毁的敌人城堡数目Solution可以第一重循环找到\(1\),然后从该位置分别向左和向又寻找\(-1\),寻找过程中遇到\(1\)则停止,不......
  • [JZOJ4937] 与运算
    DescriptionSolution设F[i]表示当前前若干项异或起来为i的最大答案考虑转移。显然我们可以只转移i的一个二进制位。找一位去掉,设去掉后为j,并求出有多少个a能包含j而不包含......
  • UVA193 Graph Coloring - 一般图最大独立集 -
    题目链接:https://www.luogu.com.cn/problem/UVA193题解:注意不是二分图最大独立集和最大匹配没啥关系直接dfs//bySkyRainWind#include<bits/stdc++.h>#definempr......
  • CF--793--D
    关键构成一颗树,奇数点要为偶数个,并且大于0(学了这么就我竟然连这个也不知道,呜呜呜)然后就是把1作为叶子节点,把0串起来就行了,感觉没有2000的难度代码#include<bits/stdc+......
  • P8293 [省选联考 2022] 序列变换
    https://www.luogu.com.cn/problem/P8293题解题意转化:将括号序列建成一棵树,操作1相当于把一个点和它的儿子都挂到同一深度的另一个点下面,操作2相当于表示同一深度的......
  • C++ 随机数生成器 mt19937
    一下代码来自官方示例//mersenne_twister_engineconstructor#include<iostream>#include<chrono>#include<random>intmain(){//obtainaseedfromthe......
  • 【793】墨卡托坐标转WGS84
    代码:#WebMercator-wgs84defwebMercator2wgs84(x,y):lon=x/20037508.34*180lat=y/20037508.34*180lat=180/math.pi*(2*math.atan(math.exp(lat*math......
  • CF939F Cutlet 题解
    题意简述有一个正反面都为\(0\)的卡片,每过\(1\)分朝下那一面的数值就会增加\(1\),你可以在几个区间的时间内翻转卡片,求经过\(2n\)秒后能否让这个卡片的正反面的数都......