首页 > 其他分享 >Weekly Contest 310

Weekly Contest 310

时间:2022-09-19 18:12:55浏览次数:87  
标签:heapq Contest int 310 item intervals 端点 ans Weekly

Weekly Contest 310

Problem A

Most Frequent Even Element

思路

水题,用map存一下每个偶数数量然后统计就行

代码

class Solution:
    def mostFrequentEven(self, nums: List[int]) -> int:
        nums.sort()
        M = {}
        ans = -1
        t = 0
        for item in nums:
            if item%2==1:
                continue
            M.setdefault(item,0)
            
            M[item]+=1
            if M[item]>t:
                t = M[item]
                ans = item
        return ans

Problem B

Optimal Partition of String

思路

从左往右扫,用set记录出现的字符,重复就清空set

代码

class Solution:
    def partitionString(self, s: str) -> int:
        ans = 0
        M = {s[0]}
        for i in range(1,len(s)):
            if s[i] in M:
                ans += 1
                M = {s[i]}
            else:
                M.add(s[i])
        return ans+1

Problem C

Divide Intervals Into Minimum Number of Groups

思路

区间分组问题,先将区间按照左端点从小到大排序,然后遍历,然后维护一个优先队列,存储右端点,如果队列中最小的右节点都要比当前左端点要大,则需要新开一个组来存储一个区间,否则用这个右端点来代替最小的右端点。

代码

class Solution:
    def minGroups(self, intervals: List[List[int]]) -> int:
        intervals.sort()
        # print(intervals)
        L = []
        heapq.heapify(L)
        for i in range(len(intervals)):
            if len(L)==0 or L[0]>=intervals[i][0]:
                heapq.heappush(L,intervals[i][1])
            else:
                heapq.heappop(L)
                heapq.heappush(L,intervals[i][1])
        return len(L)

Problem D

Longest Increasing Subsequence II

思路

线段树,不会

代码

coming soon

总结

有进步 能出3题了

标签:heapq,Contest,int,310,item,intervals,端点,ans,Weekly
From: https://www.cnblogs.com/baihualiaoluan/p/16708564.html

相关文章

  • 2022 Jiangsu Collegiate Programming Contest
    A.PENTAKILL!把每个一个人的击杀序列分开,判断是否有连续五个不同的击杀就好#include<bits/stdc++.h>usingnamespacestd;map<string,vector<string>>st;int......
  • AtCoder Regular Contest 148 C Lights Out on Tree
    挺好的一道题,简单写一下题解吧。首先有挺多很naive的结论:每个节点按两遍等于没按。熄灭所有的灯只有一种方案。其实将灯熄灭的方案无非就是从上往下dfs,如果当前灯......
  • AtCoder Beginner Contest 268
    E-ChineseRestaurant(Three-StarVersion)假设旋转\(x\)次时,\(n\)个人失望值的总和为\(c_x\),那么只要能求出\(c_x,0\lex<n\)就可以包含所有情况,然后再取......
  • AtCoder Beginner Contest 269 (A-F)题解
    A-AnywayTakahashi这里我还是关了ll的C开了忘了关害的F多了一发罚时#include<bits/stdc++.h>usingnamespacestd;constintN=3e5+10;constintM=9982443......
  • AtCoder Beginner Contest 269
    咕咕咕咕咕。F-NumberedChecker首先矩形容斥,把一个询问拆分成4个询问。现在只需要解决:左上角为\((1,1)\),右下角为\((x,y)\)的矩形区域和这一问题。把列数为奇......
  • 2019-2020 ACM-ICPC Brazil Subregional Programming Contest D Denouncing Mafia
    DenouncingMafia贪心+线段树+\(dfs\)序考虑贪心地每次拿能染色最多的点,每拿走一个点,都会影响其他点的值,如果一个点被染色,则他子树的所有点的贡献值都会-1,因此考......
  • AtCoder Beginner Contest 267 题解
    只会\(A\simG\)主观难度:\(A<B<C<E<D<F<G<Ex\)A-Saturday分别对周一到周五判断即可。#include<bits/stdc++.h>usingnamespacestd;inlineintread(){int......
  • AtCoder Beginner Contest 262(D-E)
    D-IHateNon-integerNumber题意:一个长度为n的数组,选择其中的x项,问其中有多少种选择,这x项的和可以被选择的数目整除,比如,选择3个数,和为6,那么6/3=2,就可以被整除。题解:......
  • Codeforces Round #819 (Div. 1 + Div. 2) and Grimoire of Code Annual Contest 2022
    这场打的稀烂。。。A.MainakandArray题意:将数组中某段子序列翻转一次,求a[n]-a[1]最大的值。思路:有三种情况:第一种,将最小的数翻转到第一位,然后用原来的a[n]减去反......
  • The 2021 China Collegiate Programming Contest (Harbin)
    比赛链接:https://codeforces.com/gym/103447B.MagicalSubsequence题意:给定一个序列\(A\),选择一个长为偶数的子序列\(B\),使得\(B_1+B_2=B_3+B_4...\),问这个......