算法竞赛入门【码蹄集进阶塔335题】(MT2281-2285)

news/2024/5/6 7:54:01/文章来源:https://blog.csdn.net/m0_54754302/article/details/128119170

算法竞赛入门【码蹄集进阶塔335题】(MT2281-2285)


文章目录

  • 算法竞赛入门【码蹄集进阶塔335题】(MT2281-2285)
  • 前言
      • 为什么突然想学算法了?
      • 为什么选择码蹄集作为刷题软件?
  • 目录
    • 1. MT2281 另一种模
    • 2. MT2282 小码哥的认可
    • 3. MT2283 整数的逆
    • 4. MT2284 行列式
    • 5. MT2285 矩阵乘法
    • 结语


前言

在这里插入图片描述

为什么突然想学算法了?

> 用较为“官方”的语言讲,是因为算法对计算机科学的所有分支都非常重要。 在绝大多数的计算机科学分支领域中,要想完成任何实质性的工作,理解算法的基础知识并掌握与算法密切相关的数据结构知识是必不可少的。
> 但从实际而言,是因为当下快到了考研和找工作的年纪(ಥ_ಥ),无论走哪一条路,都不免需要一些相对丰富的算法知识,是故,便产生了一个暑假速成算法的计划,可能对于像我这种算法竞赛小白而言,几乎很难,但我仍然还是想尝试一下,毕竟,梦想还是要有的,万一实现了呢?~( ̄▽ ̄~)~

在这里插入图片描述


为什么选择码蹄集作为刷题软件?

码蹄集,是在全国高等学校计算机教学与产业实践资源建设专家委员会(TIPCC) 指导下建设的,其依托全国各大名校计算机系和清华大学出版社等单位的强大资源,旨在为计算机学习爱好者提供全面和权威的计算机习题。
在这里插入图片描述


目录

1. MT2281 另一种模

(1)题目描述
给定正整数n,k和n个正整数 c1, C2,…" ,Cn。如果对于任意正整数x,可以通过mod c的值推出a mod k的值则输出Yes否则输出No

格式

输入格式: 第一行n, k,第二行为数列c
.
输出格式: 输出Yes或者No

样例1

输入:
4 5
2 3 5 12
.
输出格式: Yes

备注:

n, k,c[i] ≤1e6 。

(2)参考代码

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
const int maxn = 100010;
int n, k, num = 1;
int prime[maxn];
int main() {cin >> n >> k;vector<int> c(n+1);map<int, int> M;for(int i = 1; i <= n; i++)cin >> c[i];prime[1] = 2;  int hhh = k;for(int i = 2; i <= hhh; i++) {if(k < i) break;if(k % i == 0) {int ttt = true;for(int j = 1; j <= num; j++)if(i % prime[j] == 0 && i != prime[j]) {ttt = false;break;}if(!ttt) continue;prime[++num] = i;int temp = i;while(k % temp == 0) temp *= i;temp /= i;k /= temp;bool t = false;for(int j = 1; j <= n; j++) {if(c[j] % temp == 0) {t = true;break;}}if(!t) {printf("No");return 0;}}}printf("Yes");return 0;
}

2. MT2282 小码哥的认可

(1)题目描述
定义一个正整数α,它有p(az)个约数;如果这个数满足对于任意的i,属于0<i<a,有p(z)> p(i),那么它就受到小码哥的认可;比如840就是被小码哥认可的数。

现在给你一个N,求小于等于N的最大的小码哥的认可数。

格式

输入格式: 一个数N(1≤N≤2,000,000,000) 。
.
输出格式: 表示小于等于N的最大的小码哥的认可数。

样例1

输入: 1000
.
输出: 840

备注:

提示(1<N ≤ 2,000,000,000) .

(2)参考代码


'''
一个数值的约束个数等于其分解质因数之后,每个质因子上 "次幂加1" 的乘积,2*10……9以内的数值约数个数1600个左右,因此按照
约数个数给数值分类,显然每一类中的最小值才可能是候选的解,因此可以对2~1600的数做因数分解,每个值代表月数个数每个因子对
应一个质因子次幂,显然这个因子序列应该要非降序,第1个因子数值 = 质因子2的次幂+1,第2个因子数值 = 质因子3次幂+1 ......
DFS递归分解 2~1600,就可以得到每一类中的最小值,再用这些候选答案组成一个序列,进行升序排序,然后逐个验证是否满足要求,
最终实际的出来的候选序列长度只有70, 在这70个数值中二分找答案即可
也可以打表
'''
# -*- coding: utf-8 -*-
import time
from typing import List, Tuple
from collections import deque, Counter
from queue import PriorityQueue
import math
from functools import lru_cache
#from sortedcontainers import SortedDict, SortedSet
import random
import copy
import sys
sys.setrecursionlimit(99999999)
# 质数表
P = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
all_vals = {1 : 1}
# 将数值分解成非降序的约数乘积形式,每个约束大于等于2
def devide(arr:List, val, orig):if val == 1:ans = 1n = len(arr)for i in range(len(arr)):ans *= P[i] ** (arr[n-1-i]-1)if ans <= 2000000000:if orig not in all_vals:all_vals[orig] = anselse:all_vals[orig] = min(ans, all_vals[orig])returnmin_v = arr[-1] if len(arr) > 0 else -1for d in range(2, val+1):if val % d == 0 and d >= min_v:arr.append(d)devide(arr, val // d, orig)arr.pop(-1)
def main():# # 枚举约数个数,2*10^9以内的数值约数最多1600个左右,这里上界设置成1700for i in range(2, 1701):devide([], i, i)#print(all_vals)vals = [(v, k) for k, v in all_vals.items()]vals.sort()mx = -1buf = []for a, b in vals:if b > mx:buf.append(a)mx = max(mx, b)N = int(input())ans = Nonel, r = 0, len(buf)-1while l <= r:mid = (l + r) >> 1if buf[mid] <= N:ans = buf[mid]; l = mid + 1else:r = mid - 1print(ans)
if __name__ == '__main__':main();

3. MT2283 整数的逆

(1)题目描述
定义p = 1000000007,给定一个正整数n,求一个小于p的正整数,使得n * Z在模p意义下为1,即存在正整数k,使得n * 优 = k* p+1


格式

输入格式: 一个正整数n 。
.
输出格式: 输出一行一个整数α表示答案。

样例1

输入格式: 500000004
.
输出格式: 2

备注:

其中:1≤n ≤1,000,000,000 。

(2)参考代码

MOD = 10**9 + 7
def pow_mod(a, k, p):ans = 1pow_val = a % pwhile k != 0:if k & 1 != 0:ans = (ans * pow_val) % ppow_val = (pow_val ** 2) % pk >>= 1return ans
def rev_meta(b, p):return pow_mod(b, p-2, p)
def main():n = int(input())print(rev_meta(n, MOD))
if __name__ == '__main__':main();

4. MT2284 行列式

(1)题目描述
给出矩阵,求其行列式。


格式

输入格式:
第一行输入T表示数据组数。
对于每组数据,第一行输入n表示边长。接下来n行,每行输入n个整数,代表矩阵的元素。
.
输出格式: 对于每组数据,输出矩阵的行列式,答案请对0z1f1f1f1f取模。

样例1:

输入
3
3
1 -2 -1
0 3 2
3 1 -1
3
0 3 2
1 -2 -1
3 1 -1
4
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
.
输出
522133271
8
0

(2)参考代码

#include <cmath>
#include <cstdio>
#include <iostream>
using namespace std;
typedef long long  lld;
lld a[15][15];
int sign;
lld N, MOD = 0x1f1f1f1f;
void solved()
{lld ans = 1;for (int i = 0; i < N; i++) //当前行{for (int j = i + 1; j < N; j++) {int x = i, y = j;while (a[y][i]) //利用gcd的方法,不停地进行辗转相除{lld t = a[x][i] / a[y][i];for (int k = i; k < N; k++)a[x][k] = (a[x][k] - a[y][k] * t) % MOD;swap(x, y);}if (x != i) //奇数次交换,则D=-D'整行交换{for (int k = 0; k < N; k++)swap(a[i][k], a[x][k]);sign ^= 1;}}if (a[i][i] == 0) //斜对角中有一个0,则结果为0{cout << 0 << endl;return;}elseans = ans * a[i][i] % MOD;}if (sign != 0)ans *= -1;if (ans < 0)ans += MOD;printf("%lld\n", ans);
}
int main()
{int t;scanf("%d", &t);while (t--){sign = 0;scanf("%lld", &N);for (int i = 0; i < N; i++)for (int j = 0; j < N; j++)scanf("%lld", &a[i][j]);solved();}return 0;
}

5. MT2285 矩阵乘法

(1)题目描述


格式

输入格式:

.
输出格式:

样例1

输入格式:
4 3 4
1 2 3
4 -5 6
7 8 9
-3 2 1
4 5 6 7
8 6 9 7
0 0 1 0
.
输出格式:
20 17 27 21
-24 -10 -15 -7
92 83 123 105
4 -3 1 -7

备注:

其中: 1≤m ≤le8,1 ≤n ≤1e10

(2)参考代码

#include<bits/stdc++.h> 
/*
思路:不越狱的状态好计算所以:越狱数=总的状态数-不越狱的状态数
其中 总的状态数为:m^n不越狱的状态数: m*(m-1)^(n-1) :只有第一个可以选择m个宗教,其他的只能选和前一个不同的宗教所以是m-1种情况
这里计算用了快速幂的方法。
*/
using namespace std;
long long p=1007;
long long qpow(long long x, long long y){if(y==0)return 1;if(y%2==1){return qpow(x, y - 1) * x % p;}else{long long t = qpow(x, y/2) % p;return t*t % p;}
}
int main( )
{long long m,n;cin>>m>>n;long long ans = qpow(m,n)-(m*qpow(m-1,n-1)%p);cout<<(ans+p)%p<<endl;//注意需要+p之后再取 %p,防止有负数return 0;
}

结语

感谢大家一直以来的不断支持与鼓励,码题集题库中的进阶塔350题正在逐步更新,之后会逐步跟进星耀,王者的题,尽请期待!!!
同时,也希望这些题能帮助到大家,一起进步,祝愿每一个算法道路上的“苦行僧”们,都能够历经磨难,终成正果,既然选择了这条路,走到了这里,中途放弃,岂不是太过可惜?

另附中国计算机学会的杰出会员、常务理事轩哥博士的B站视频讲解链接https://space.bilibili.com/518554541/?spm_id_from=333.999.0.0,供大家更好的进行学习与刷题~( ̄▽ ̄~)~

愿你的结局,配得上你一路的颠沛流离。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_228055.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

影响工业产品设计的主要因素

设计师对工业产品的产品外观设计主要依靠形状、图案和颜色的结合&#xff0c;创造出具有一定功能性质的新产品。在这个过程中&#xff0c;设计师需要充分利用各种因素&#xff0c;外观工业设计公司强调材料的机制和颜色。那么&#xff0c;影响产品设计的主要因素是什么呢? 一、…

【Linux】8.0 多线程

文章目录1.0 Linux线程概念1.1 Linux线程基本概念1.2 Linux线程优劣介绍2.0 Linux线程控制2.1 pthread_create(创建线程)2.2 pthread_join(线程等待)2.3 pthread_exit(线程终止)2.4 pthread_detach(线程分离)3.0 线程id和LWP的关系4.0 Linux线程互斥4.1 线程互斥相关概念4.2 线…

spring-boot-starter-data-redis 引发的一系列惨案

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> pom 引入jar包 &#xff0c;如果redis配置文件使用 lettuce &#xff0c;还需要引入 commons-pool2 &a…

数据可视化,销量第一的新能源汽车是什么?比亚迪新能源汽车销量接近60万辆

去年以来&#xff0c;新能源汽车火热度席卷全球&#xff0c;中国的新能源汽车无论制造或者销售&#xff0c;数量增长迅猛。下面小编用一款数据可视化软件&#xff0c;带你用可视化数据解读高端制造背后&#xff0c;中国新能源汽车的具体销售情况。同样如果你工作上有数据报表需…

固话号码认证有什么好处?固话号码认证有什么作用?

固话号码认证为企业提供号码认证服务&#xff0c;在来电时显示企业信息&#xff0c;可提高电话号码辨识度&#xff0c;防止错误标记&#xff0c;确保展现的企业信息与企业的手机终端、APP等多平台展示信息一致&#xff0c;保证品牌企业的身份及商业价值。 那如何上线号码认证服…

多点DMALL × Apache Kyuubi:构建统一SQL Proxy探索实践

伴随着国家产业升级的推进和云原生技术成熟&#xff0c;多点 DMALL 大数据技术也经历了从存算一体到存算分离的架构调整变迁。本文将从引入 Kyuubi 实现统一 SQL Proxy 的角度讲述这一探索实践的历程。 多点 DMALL 成立于2015年&#xff0c;提供一站式全渠道数字零售解决方案 D…

离线解锁 CodeCombat 全关卡教程 使用docker安装实现

背景 暂时还没收入&#xff0c;想玩顺便&#xff0c;但官方的有点贵&#xff08;是真的贵&#xff0c;扛不住&#xff09; 前期准备 下载安装docker desktop https://www.123pan.com/s/fmvUVv-HqApH&#xff0c; 这个安装不会的随便搜一个教程&#xff0c;挺多的。我随便找了一…

HTML篇_二、HTML简介_HTML入门必修第一课

HTML篇_二、HTML简介 一、HTML的基本结构 1.1 HTML的基本结构及解析 基本结构 这里我们先放一段代码块来进行展示&#xff0c;感受一下来自HTML的魅力。然后下文再对这段代码块进行解析。 <!DOCTYPE html> <html><head><meta charset"utf-8&quo…

使用自己的数据集测试Unbiased Mean Teacher for Cross-domain Object Detection

要复现Unbiased Mean Teacher for Cross-domain Object Detection&#xff08;UMT&#xff09;&#xff0c;首先要正确运行CycleGAN。 1. CycleGAN CycleGAN的github链接&#xff1a;https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix 1.1 CycleGAN环境配置 git cl…

[附源码]SSM计算机毕业设计学生宿舍设备报修JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

板卡测评 | 基于TI AM5708开发板——ARM+DSP多核异构开发案例分享

本次测评板卡是创龙科技旗下的TL570x-EVM,它是一款基于TI Sitara系列AM5708ARM Cortex-A15+浮点DSPC66x处理器设计的异构多核SOC评估板,由核心板和评估底板组成。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。 评估板接口资源丰富,引出…

函数定义、this指向、闭包等

1、函数的定义和调用 1.1函数的定义方式 1、自定义函数&#xff08;命名函数&#xff09; 2、函数表达式&#xff08;匿名函数&#xff09; 3、利用 new Function (‘参数1’, ‘参数2’, ‘函数体’) 1、自定义函数&#xff08;命名函数&#xff09; function fn() {}2、函…

jsp196ssm毕业设计选题管理系统hsg4361B6

本系统选用Windows作为服务器端的操作系统&#xff0c;开发语言选用Java&#xff0c;数据库选用Mysql&#xff0c;使用mybatis数据库连接技术&#xff0c;使用Myeclipse作为系统应用程序的开发工具&#xff0c;Web服务器选用Tomcat版本。 下面分别简单阐述一下这几个功能模块需…

外汇天眼:经济衰退无阻加息,欧美货币政策齐收紧

美联储和欧洲央行官员在近两日发表讲话&#xff0c;先后释放进一步加息信号&#xff0c;美股、欧股事后均收跌&#xff0c;市场预计美元、欧元近期将下跌。 通胀仍高于目标&#xff0c;两大央行将进一步加息 除了非农报告等关键通胀数据&#xff0c;本周央行动态同样备受市场关…

[附源码]Python计算机毕业设计SSM流浪动物管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

(4E)-TCO-PEG4-DBCO,1801863-88-6,反式环辛烯-四聚乙二醇-二苯并环辛炔

(4E)-TCO-PEG4-DBCO物理数据&#xff1a; CAS&#xff1a;1801863-88-6 | 中文名&#xff1a;(4E)-反式环辛烯-四聚乙二醇-二苯并环辛炔 | 英文名&#xff1a;(4E)-TCO-PEG4-DBCO 结构式&#xff08;Structural&#xff09;&#xff1a; (4E)-TCO-PEG4-DBCO物理数据补充&…

vue+videojs视频播放、视频切换、视频断点分段上传

“本次需求是做一个视频列表&#xff0c;点击视频列表播放对应视频&#xff1b;同时要求实现断点分段上传大文件&#xff08;视频&#xff09;的功能 。 videojs文档&#xff1a;Getting Started with Video.js - Video.js: The Player Framework | Video.js 断点续传组件地址…

linux安装elasticsearch-head (es可视化界面)

系列-Linux centos7.6 安装elasticsearch8.x (es8) 教程 Linux centos7.6 安装elasticsearch8.x (es8) 教程_言之有李LAX的博客-CSDN博客 系列-linux安装elasticsearch-head &#xff08;es可视化界面&#xff09; linux安装elasticsearch-head &#xff08;es可视化界面&am…

浅析linux内核网络协议栈--linux bridge

1 . 前言 本文是参考附录上的资料整理而成&#xff0c;以帮助读者更好的理解kernel中brdige 模块代码。 2. 网桥的原理 2.1 桥接的概念 简单来说&#xff0c;桥接就是把一台机器上的若干个网络接口“连接”起来。其结果是&#xff0c;其中一个网口收到的报文会被复制给其他…

httpclient

1.什么是httpclient HttpClient 是Apache Jakarta Common 下的子项目&#xff0c;可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包&#xff0c;并且它支持 HTTP 协议最新的版本和建议。 2.http请求&#xff08;结合spring的注解&#xff09; 2-1GET请…