首页 > 其他分享 >2024/07/30 每日一题

2024/07/30 每日一题

时间:2024-07-30 14:31:55浏览次数:7  
标签:return 07 int variables 30 List 2024 ans pair

LeetCode 2961 双模幂运算

方法1:快速幂

class Solution:
    def getGoodIndices(self, variables: List[List[int]], target: int) -> List[int]:
        ans = list()
        for i, (a, b, c, m) in enumerate(variables):
            res = self.getVal(a % 10, b)
            if pow(res, c, m) == target:
               ans.append(i)
        return ans

    def getVal(self, a: int, b: int) -> int:
        pair = {
            4: [6, 4],
            9: [1, 9],
            2: [6, 2, 4, 8],
            3: [1, 3, 9, 7],
            7: [1, 7, 9, 3],
            8: [6, 8, 4, 2]
        }
        if a == 0 or a == 1 or a == 5 or a == 6:
            return a
        elif a == 4 or a == 9:
            return pair[a][b % 2]
        else:
            return pair[a][b % 4]
class Solution {
    public List<Integer> getGoodIndices(int[][] variables, int target) {
        List<Integer> ans = new ArrayList<Integer>();
        for(int i = 0; i < variables.length; i++) {
            int res = getVal(variables[i][0] % 10, variables[i][1]);
            if (fastPow(res, variables[i][2], variables[i][3]) == target)
                ans.add(i);
        }
        return ans;
    }

    public int fastPow(int a, int b, int mod) {
        a %= mod; int ans = 1;
        while (b > 0) {
            if ((b & 1) == 1)
                ans = ans * a % mod;
            a = a * a % mod;
            b >>= 1;
        }
        return ans;
    }

    public int getVal(int a, int b) {
        int[][] pair = new int[][] {
            {0}, {1}, {6, 2, 4, 8}, {1, 3, 9, 7}, {6, 4},
            {5}, {6}, {1, 7, 9, 3}, {6, 8, 4, 2}, {1, 9}
        };
        if (a == 0 || a == 1 || a == 5 || a == 6)
            return pair[a][0];
        else if (a == 4 || a == 9)
            return pair[a][b % 2];
        else
            return pair[a][b % 4];
    }
}

标签:return,07,int,variables,30,List,2024,ans,pair
From: https://www.cnblogs.com/XuGui/p/18332272

相关文章

  • 盖世计划--0725--B班训练
    A结论题。容易做差去考虑,设\(c_i=a_i-b_i\),每次操作就是在\(c\)序列上选择\(k\)个位置,奇数位\(+1\),偶数位\(-1\)。这并不会改变区间和,所以有解的必要条件是区间和为\(0\)。这还不够,转化到前缀和上考虑,我们发现操作只会让前缀和变大,所以另一个条件就是任意位置的前缀和......
  • 盖世计划--0726--B班模拟
    又写不了一点,怎么会是呢。菜。A为什么第一题的难度都很懵,不知道是真难还是我傻。你考虑分类讨论保留奇数位还是偶数位,然后就可以知道若干不合法的位置。感觉显然是不能动合法的位置,怎么使代价最小?如果你把要修改的位置分为奇偶两类的话,感觉依次连可以取到最小值。然后你又不知......
  • LeetCode-day30-2961. 双模幂运算
    LeetCode-day30-2961.双模幂运算题目描述示例示例1:示例2:思路代码题目描述给你一个下标从0开始的二维数组variables,其中variables[i]=[ai,bi,ci,mi],以及一个整数target。如果满足以下公式,则下标i是好下标:0<=i<variables.length((aibi%10)ci)......
  • Adobe Premiere Pro(PR2024)软件下载(附安装链接)
    一、简介AdobePremierePro(简称Pr)是由Adobe公司开发的一款功能强大的视频编辑软件。它支持多平台使用,包括Windows和Mac系统,并且拥有良好的兼容性和高效的性能。PremierePro不仅提供了视频剪辑、特效添加、音频处理等基本功能,还能与其他Adobe软件(如AfterEffects、Photoshop......
  • Pr下载安装(视频剪辑软件Pr安装包下载2024)百度网盘下载
    百度网盘链接:https://pan.baidu.com/s/1V6U1FXxeiKSbO7-lThrb_Q?pwd=0d1n 提取码:0d1n 功能:视频剪辑功能:PremierePro提供了强大的视频剪辑功能,包括导入、预览、裁剪、拼接、调整、分层、分组、嵌套、同步等。用户可以在时间线上进行精确的剪辑和编辑操作。视频特效功能:......
  • Java修炼 Java SE 面试题目 (简答) 2024.7.26 22:16
    目录1.基础知识2.控制流和循环3.集合框架4.异常处理5.多线程编程6.输入输出操作7.类和接口8.Lambda表达式和函数式编程9.内存管理和垃圾回收:10.Java虚拟机(JVM):1.基础知识解释Java的面向对象特性,如封装、继承和多态。Java的面向对象特性包括封装(将数据和代码封......
  • 企业源代码加密软件,2024常用五款源代码加密软件推荐
    在当今的商业环境中,保护企业的核心知识产权,尤其是源代码,变得至关重要。源代码不仅是企业创新的基石,也是其竞争优势的关键。为了确保这些宝贵资产的安全,许多企业正在寻求有效的加密解决方案。以下是2024年推荐的五款源代码加密工具,它们能够为企业提供全面的安全保障。安秉源代......
  • 2024年国内人工智能大模型智能体盘点!
    今年是智能体大爆发的一年,国内主流大模型从卷参数转向卷智能体平台,诞生如文心智能体、豆包智能体、元器智能体等平台,同时基于平台用户创作几十万功能各异的行业智能体,而智能体对我们营销会有哪些帮助?01什么是AI智能体AI智能体,又称智能代理或智能体,是指具有自主感知、学......
  • [SHOI2007] 园丁的烦恼
    二维数点问题我们通过扫描线可以将静态的二维问题转换为动态的一维问题维护动态的一维问题就使用数据结构维护序列点击查看代码#include<bits/stdc++.h>usingnamespacestd;structt1{ intx,y;}t[500005];structq1{ intx1,y1,x2,y2;}q[500005];structl1{......
  • PS02024软件下载(含全版本下载链接安装包)+安装教程
    PS2024的功能非常强大,以下是一些主要的新增和改进功能:改进的图层管理:新版本提供了更直观和高效的图层管理方式,使用户能够更好地组织和管理复杂的图像项目。增强的自动选择工具:通过引入先进的AI技术,PS2024可以更准确地识别和选择图像中的不同对象,从而提高工作效率。全新的内容......