上海市计算机学会竞赛平台(iai.sh.cn)十月月赛(丙组)解题报告(前4题AK)

上海市计算机学会竞赛平台二星级挑战 上海市计算机学会竞赛平台 | 2022 一星级挑战康托表打印K型计算天数黑色星期五分割队伍调配问题(一)阶乘的余数驼峰与蛇四方定理数根IP地址最年长的人选科组合合成游戏循环节的判定中心对称数 此文章仅供学习交流,不得抄袭刷分!!! 可以选择在我的博客上浏览(不用登录就可以复制) 康托表 #include<iostream> using namespace std; int a, b; int main() { cin >> a >> b; cout << 阅读详情

T1 奇偶数的判定

内存限制: 256 Mb时间限制: 1000 ms

题目描述

给定一个整数 n,若 n是一个偶数,输出 even,若 n 是一个奇数,输出 odd。

输入格式

单个整数:表示 nn。

输出格式

单个字符串:表示 nn 的奇偶性

数据范围

− 1 , 000 , 000 ≤ n ≤ 1 , 000 , 000 -1,000,000\leq n\leq 1,000,000 −1,000,000≤n≤1,000,000

样例数据

输入:

0

输出:

even

输入:

-1

输出:

odd

解题思路

直接判断奇偶

代码展示

#include <bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	if(n%2==0)
		cout<<"even"<<endl;
	else
		cout<<"odd"<<endl;
	return 0;
}

T2 搭积木

内存限制: 256 Mb时间限制: 1000 ms

题目描述

小爱同学想要用积木搭起一个金字塔。为了结构稳定,金字塔的每一层要比上一层多一块积木。即搭建规则如下:

金字塔的第 1 层需要放 1 块积木

金字塔的第 2 层需要放 2 块积木

金字塔的第 3 层需要放 3 块积木

…

金字塔的第 i 层需要放 i 块积木

现在小爱拿到了 n 块积木,请问他最高可以搭出多少层的金字塔?

输入格式

输入一个正整数 n,表示小爱手中的积木数量

输出格式

输出一个正整数,表示小爱最高能搭的金字塔层数

数据范围

对于 50% 的数据, 1 ≤ n ≤ 1 , 000 1 \leq n \leq 1,000 1≤n≤1,000
对于 100% 的数据, 1 ≤ n ≤ 1 , 000 , 000 , 000 1 \leq n \leq 1,000,000,000 1≤n≤1,000,000,000

样例数据

输入:

12

输出:

4

说明:

4层金字塔需要1+2+3+4=10块积木,而5层金字塔需要1+2+3+4+5=15块积木,所以小爱在有12块积木的情况下,最多搭4层金字塔

解题思路

定义一个n存积木数量,然后通过while循环减去1,2,……,i,如果小于n,输出i-1即可

代码展示

#include <bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	int k=0,cnt=0;
	while(n>=0){
		k++;
		n-=k;
		cnt++;
	}
	cout<<cnt-1<<endl;
}

T3最长平台

内存限制: 256 Mb时间限制: 1000 ms

题目描述

给定一个整数数列 a 1 , a 2 , … , a n a a_1,a_2,\dots,a_na a1​,a2​,…,an​a ,请找出最长平台,并输出最长平台的数量(数字相等但位置不同的平台算作不同的平台)。

所谓平台,就是指数列中一段连续的、完全相等的数字,单个数字可以成为一个平台。

输入格式

第一行:单个整数 n
第二行:n 个整数 a 1 , a 2 , … , a n a_1,a_2,\dots,a_n a1​,a2​,…,an​
输出格式
两个整数:表示最长平台的长度与最长平台的数量

数据范围
对于 50% 的数据, n ≤ 1000 n ≤ 1000 n\leq 1000n≤1000 n≤1000n≤1000
对于 100% 的数据, n ≤ 500 , 000 n ≤ 500 , 000 n\leq 500,000n≤500,000 n≤500,000n≤500,000
1 ≤ a i ≤ 1 , 000 , 000 1\leq a_i\leq 1,000,000 1≤ai​≤1,000,000

样例数据

输入:

7
2 2 2 1 3 3 3

输出:

3 2

说明:

最长平台为2 2 2或3 3 3

输入:

5
3 1 4 1 5

输出:

1 5

说明:

每个数字单独成一个平台

解题思路

本题在考试期间想到了小熊的果篮上面去了,后来发现根本没必要,只需要用一个两层循环将原数列扫一下找出最大长度,然后从原序列查找到最大长度的序列用cnt数组记录即可

代码展示

#include <bits/stdc++.h>
using namespace std;
int main(){
	int n,a[500100],ans=-1,len;
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	for(int i=1;i<n;i++){
		int len=1;
		for(int j=i+1;j<=n;j++){
			if(a[i]==a[j])
				len++;
			else
				break;
		}
		ans=max(ans,len);
	}
	int cur=0;
	for(int i=1;i<=n;i++){//注意要循环到n,否则len为1的扫不出来
		len=1;
		for(int j=i+1;j<=n;j++){
			if(a[i]==a[j])
				len++;
			else
				break;
		}
		if(ans==len)
			cur++;
	}
	cout<<ans<<" "<<cur<<endl;
}

T4积木染色

内存限制: 256 Mb时间限制: 1000 ms

题目描述

有 n 块积木排成一排,小爱需要给每块积木染色,颜色有 m 种,请问有多少种方法,能使相邻两块积木的颜色均不相同?

输入格式

输入两个正整数n,mn,m

输出格式

输出满足条件的方案数模10^9+7的结果

数据范围

对于30%的数据, 1 ≤ n , m ≤ 10 1 \leq n,m \leq 10 1≤n,m≤10
对于60%的数据, 1 ≤ n , m ≤ 1 0 4 1 \leq n,m \leq 10^4 1≤n,m≤104
对于 100% 的数据, 1 ≤ n ≤ 1 0 15 , 1 ≤ m ≤ 1 0 9 1 \leq n \leq 10^{15},1 \leq m \leq 10^9 1≤n≤1015,1≤m≤109

样例数据

输入:

3 2

输出:

2

说明:

合法的染色方案有:{1,2,1} {2,1,2}

解题思路

这是一道排列组合的颜色填充问题具体思路如下(图解):
在这里插入图片描述

所以染色的方案数就是 n × ( m − 1 ) ( n − 1 ) n \times (m-1)^{(n-1)} n×(m−1)(n−1),但是本题n的值最大为 1 0 15 10^{15} 1015,所以这种算法只能得到60分

代码展示

#include <bits/stdc++.h>
using namespace std;
const long long MOD=1e9+7;
int main(){
	long long n,m;
	cin>>n>>m;
	long long ans=m;
	for(long long i=1;i<=n-1;i++){
		ans*=(m-1);
		ans%=MOD;
	}
	cout<<ans%MOD<<endl;
	return 0;
}

代码优化

对于多次幂的运算有一种优化方法叫做快速幂,详细可以参照这篇论文快速幂算法。
例如对于指数是偶数的 3 10 3^{10} 310,过程如下

3^10=3*3*3*3*3*3*3*3*3*3

//想办法把指数变小

3^10=(3*3)*(3*3)*(3*3)*(3*3)*(3*3)

3^10=(3*3)^5

3^10=9^5

或者我们要求指数式奇数的 9 5 9^{5} 95

9^5=(9^4)*(9^1)

9^5=(81^2)*(9^1)

9^5=(6561^1)*(9^1)

9^5=(6561^0)*(9^1)*(6561^1)=1*(9^1)*(6561^1)=(9^1)*(6561^1)=9*6561=59049

以上截选于快速幂算法

快速幂具体代码如下

long long power(long long a,long long b) {
    long long ans = 1;
    while(b>0){
        if(b%2==0){
            b=b/2;
            a=a*a%MOD;
        }
        else {
            b=b-1;
            ans=ans*a%MOD;
            b=b/2;
            a=a*a%MOD;
        }
    }
    return ans;
}

所以加上了快速幂,来看一下我们的代码吧

#include <bits/stdc++.h>
using namespace std;

const long long MOD=1e9+7;

long long pow(long long a,long long b) {
    long long ans = 1;
    while(b>0){
        if(b%2==0){
            b=b/2;
            a=a*a%MOD;
        }
        else{
            b=b-1;
            ans=ans*a%MOD;
            b=b/2;
            a=a*a%MOD;
        }
    }
    return ans;
}

int main(){
	long long n,m;
	cin>>n>>m;
	long long ans=m;
	cout<<m*pow(m-1,n-1)%MOD<<endl;
	return 0;
}
上海市计算机学会竞赛平台 2023.3月赛 看上面的程序,有很多判断是重复的(好多判了两次及以上),我们再看题目,可以发现:其实,数列里的数字大小对我们无所谓,我们关注的只有其是否大于K。这题可以看做找规律,因为这个歌是循环播放的,所以当T大于所有歌时间和(假设为tim)时,在模拟就没有意义了,因为tim分钟后,又回到第一首,这和问第(T-tim)分钟播放的曲子是一样的。用一个变量记录现在播放了多久,每次加上现在播放歌的时间,当超过n时,输出首歌的序号。正常超时,但因数都是成对出现的,即当a是n因子时,n/a也是n因数,二者分布在。 阅读详情

相关推荐

上海市计算机学会竞赛平台 2月月赛 丙组

先将数据存入结构体中,然后按左端点排序。这是,如果一个区间的左端点在上一个区间的右端点右面,那这一定是两个不同的区间,反之则并为一个区间。有一个圆环上有 n 个点,一个染色方案需要为每个点分配三种颜色中的一种,且圆环上相邻的点颜色不能相同。建立一个数组,在每个位置填数,保证不与前一个相同,如果是第n个,则多判断是否与第一个相同,否则记录。,它们的并集可以表示为若干不相交的闭区间,请按照左端点从小到大的顺序输出这些区间的并集。而相邻区间的问题可以将区间的首位乘2,这样相邻的区间内会空一个,输出时除2即可。

bo__yuan的博客 1016

推荐——上海市计算机学会竞赛平台

今天推荐个网站:上海市计算机学会竞赛平台。里面题挺多的,还可以。

SUPER_SHARK_C的博客 1330

上海市计算机学会竞赛平台 2022 三星级挑战

上海计算机学会2020年5月月赛C++丙组T5最大回撤 第二届上海市青少年算法竞赛小学组T5最后一击 上海计算机学会2021年6月月赛C++丙组T5平衡点 上海计算机学会2021年8月月赛C++丙组T4栈的判断 上海计算机学会2020年4月月赛C++丙组T5吃苹果 上海计算机学会2021年12月月赛C++乙组T2逆波兰式 上海计算机学会2021年9月月赛C++丙组T3股票市场 上海计算机学会2021年5月月赛C++丙组T5城市的中心 上海计算机学会2020年4月月赛C++乙组

长春高老师编程 1448

上海市计算机学会竞赛平台(iai.sh.cn)2023一月月赛(丙组)解题报告

上海市计算机学会竞赛平台(iai.sh.cn)2023一月月赛(丙组)解题报告

Net_bad的博客 2074

从传统扫描到SSN:Tessent数据包技术如何减少90%测试时间

本文深入探讨了Tessent流式扫描网络(SSN)如何通过其核心的数据包技术,彻底改变芯片测试范式。该技术将测试数据封装成标准化数据包,在共享总线上进行智能路由与分发,实现了动态带宽分配与核心独立测试,从而将复杂SoC(如AI芯片)的总体测试时间大幅削减90%,并显著提升测试灵活性与可扩展性。

meat5的博客 490

rk3576之imx415 4k@60fps

1;0;1;0;1;0;1;0;1;0;1;0;1;0;

darennet的专栏 704

上海市计算机学会竞赛平台(iai.sh.cn)2023三月月赛(丙组)解题报告

MYOI

Net_bad的博客 1820

VHDL实战:基于EDA的数字频率计(FREQ)设计与优化

本文详细介绍了使用VHDL语言和EDA工具设计并优化数字频率计(FREQ)的全过程。从核心原理与模块划分入手,深入讲解了时钟分频、测频控制、计数锁存及显示驱动等关键模块的VHDL实现,并提供了从代码编写、功能仿真到综合布局布线的完整EDA实战指南。文章还探讨了测量精度优化、资源权衡及跨时钟域处理等进阶话题,是掌握FPGA数字系统设计的经典案例。

milk8的博客 583

上海市计算机学会竞赛平台 2024 年 7 月月赛 丙组详解

上海市计算机学会竞赛平台的月赛似乎越来越水了(或者是我变强了)。上一次参赛还是在 2023 年 8,7,6 月,那时候只能拿一、二等奖(190∼440 分),现在可以 AK 了!愿所有比赛越来越水自己的实力越来越强。

2301_76224755 的博客,一只 OIER,只会 C++。 2211

2024最新版Anaconda Navigator安装使用指南

本文简要介绍如何下载安装Anaconda Navigator最新版,以及如何使用Python内核搭载来完成应用程序开发。

jackson_lingua的博客 1万+

第二章:创建交互式地图

那么您应该已经有了一个安装了这些包的 conda 环境。否则,您需要创建一个新的 conda 环境并使用以下命令安装。

韩天放 4215

上海市计算机学会竞赛平台2022年11月月赛乙组 总结

3h.第一次提交:320pts。比赛结束前:400pts。

SandwichBK的博客 1351

Thinkpad可以安装Win11吗?Thinkpad升级Win11教程

win11正式版推出之后,不少用户也想要体验一把新系统,但是不知道thinkpad是否支持win11,其实基本上现在在售的都是可以升级win11的。2、如果大家使用的是老款的ThinkPad,那么可以通过软件来检测自己是否支持win11。【电脑健康状况检查下载】答:在售的ThinkPad都是可以支持win11的,但是部分旧版本不支持。2、这时候想要升级win11的话,就可以通过镜像系统的方式来跳过系统检测。3、如果使用上面的软件检测可以支持win11,那么只要进入“设置”

xhp618的博客 2985

上海市计算机学会竞赛平台乙组比赛目录及题解持续更新中

T2 消除交叉 T3 竞速溜冰 T4 多米诺骨牌。T2 放置拼块 T3 制作哒宝 T4 区间交集。T1 发红包 T2 图的三染色 T3 最大子集。T2 千层背包 T3 随处游荡 T4 打字。T2 赛车 T3 围三角 T4 退课。T3 树的匹配 T4 平分子集(三)T3 炼制合金 T4 数三角形(二)T3 降低均值 T4 加与乘(二)T3 子集和(三) T4 社交软件。T3 树的最长路 T4 最大频率。T3 字符填充 T4 看小说。

长春高老师编程 9681

YOLO11涨点优化:SPPF原创自研创新 | SPPF创新结构,重新设计全局平均池化层和全局最大池化层,增强全局视角信息和不同尺度大小的特征

SPPF_improve利用全局平均池化层和全局最大池化层,加入一些全局背景信息和边缘信息,从而获取全局视角信息并减轻不同尺度大小所带来的影响

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1869

天地图下载带审图号(审图号: GS(2024)0650号)的 “行政区划” 数据(含shp文件下载地址)

在科研投稿论文过程中,多数期刊杂志要求我们制作涉及国界的图件,必须使用自然资源部地图技术审查中心发布的标准地图底图。如地理学报、地理科学等期刊的投稿指南中写到:非标准底图本刊不予发表!(如图1.1所示)如果一定要用,凡涉国界图件(国内部分地区、全国、世界部分地区、全球)必须使用自然资源部标准地图服务系统标准地图底图(http://bzdt.ch.mnr.gov.cn/)(如图1.1所示)或国家测绘局地理信息局标准地图底图(如图1.2所示),所用底图边界要完全无修改(包括南海诸岛位置)。

JData_Engineer的博客 2302

上海市计算机学会竞赛平台2023年3月月赛丙组

题目描述给定一个由”L","C“,”R“三个字母组成的循环序列:”LCRLCRLCRLC⋯“,这个序列的循环节为“LCR”。现在给定一个数字n,请求出这个序列的第n位是哪个字母。输入格式单个整数:表示 n。输出格式单个字符:表示字母序列的第n个字母。数据范围对于 50% 的数据,1≤n≤1,000,000对于 100% 的数据,1≤n≤1,000,000,000样例数据输入:5输出:C无话可说。longlong。

GaoGuohao2022的博客 968

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

上海市计算机学会月赛 2021年10月月赛丙组

上海市计算机学会月赛2021年10月月赛丙组 T1 运费计算 T2 阶乘的余数 T3 多边形的判定 T4 淘气合影 T5 黑白翻转棋

Dsmtyu《-这是一串密码哦 1213

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上海市计算机学会竞赛平台2022年11月月赛丙组搭积木

4层金字塔需要1+2+3+4=10块积木,而5层金字塔需要1+2+3+4+5=15块积木,在12块积木的情况下,最多搭4层金字塔。小爱用积木搭起一座金字塔。为了结构稳定,金字塔的每一层要比上一层多一块积木。给定积木的数量 𝑛n,请问最高可以搭出多少层的金字塔?单个整数表示金字塔的最高高度。

a121677_的博客 264

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

2020年5月月赛丙组——上海市计算机学会竞赛平台

cin>>n;while (k!=n){k--;t++;else z++;cout<<t;return 0;double k,n;string a;cin>>a;i++){i++){return 0;int k=0;i<8;i++){int n,m;char q;cin>>n>>m;i<=n;i++){j<=m;j++){cin>>q。

CylMK的博客 1462

信奥生必备的 32 个学习、刷题和效率网站:从 C++ 入门到 NOI 进阶

这篇文章整理了32个信奥学习必备网站,分为三类: 基础学习类(4个) 推荐OI Wiki、C++学习网等,适合入门C++语法和算法知识框架搭建。 刷题比赛类(17个) 包括洛谷、Codeforces等主流OJ平台,覆盖从入门到NOI进阶的题库资源,可按阶段选择练习。 辅助工具类(11个) 含NOI官网、算法可视化工具(VisuAlgo)、复杂度查询等实用资源,帮助提升学习效率。 建议根据当前学习阶段选择性使用,避免信息过载。重点关注平台特点与适用场景,如洛谷适合日常刷题,Codeforces训练比赛思维,V

weixin_43923422的博客 1418

上海市计算机学会竞赛平台 2022 一星级挑战

奖牌的数量 数人数 盈亏问题 方舱医院 数球数 切蛋糕 时间格式 数字加密 打渔还是晒网 竞选班长 做烧饼 植树造林 促销骰子 逢七必过 回文数的判定 打印栅栏 猴子吃桃 数洞洞 评委打分 签到积分 正规数的判定 最大平方因子 汽水兑奖 戴口罩 多边形的判定 偶位回文 空心正方形 疫苗接种 增长与翻倍 感应门

长春高老师编程 926

上海市计算机学会竞赛平台2023年6月月赛题解

i

lyoi20210204的博客 895

|上海市计算机学会竞赛平台| 铁人三项

易知 z 在这一个三元组之前打入的都满足 x 大于现在的 x,或者 x 等于现在的 x 且 y 小于等于现在的 y,其中存在有一个 y 大于现在的 y(才能纳入查询范围中),z(最大值)大于现在的 z。若对于一个运动员 i,存在另一个运动员 j,满足 xi​<xj​ 且 yi​<yj​ 且 zi​<zj​,则称 i 为不可用的,否则就称 i 是可用的。否则的话,对于所有已经遍历的三元组,大于现在 z 的三元组的 z,y 都小于等于现在的 y,不能完全将其淘汰。分别为 xi​、yi​ 与 zi​。

back_room的博客 541

上海市计算机学会竞赛平台2024年7月月赛丙组录制节目(一)

电视里将要播放 nn 个节目,第 ii 个节目从时刻 sisi​ 开始,到 titi​ 结束,没有回放。小爱有一台录像机,一台录像机在工作的时候只能录一个节目,小爱最多可以录下多少完整的节目呢?如果某节目的结束时间等于另一个节目的开始时间,那么这两个节目是可以用一台录像机的。

a121677_的博客 445

上海市计算机学会竞赛平台2024年11月月赛丙组线段数

对于 100%100% 的数据,3≤n≤1053≤n≤105,1≤ai≤1091≤ai​≤109。Eve 希望最终数组中任意三个相邻元素之和都是 33 的倍数。对于 60%60% 的数据,3≤n≤10003≤n≤1000。第二行 nn 个整数 a1,⋯ ,ana1​,⋯,an​。对于 30%30% 的数据,3≤n≤53≤n≤5。1+3+5=9,是 3 的倍数,不需要操作。请求出需要达成目标所需的最小操作次数。对 i=4,7,10 分别操作一次。第一行一个整数 nn。一行一个整数表示答案。

a121677_的博客 452
上一篇: 上海市计算机学会竞赛平台(iai.sh.cn)十月月赛(丙组)解题报告
下一篇: AtCoder Beginner Contest 280(https://atcoder.jp/contests/abc280)A~D
Net_bad
博客等级 码龄4年 331粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值