2024全国大学生高新技术竞赛——算法智星挑战赛(A~J)

好多都是之前的原题,甚至有上次第二届全国大学生信息技术认证挑战赛的原题,刚打完又来一遍,没绷住。

A. 手机

原题之一,具体出处忘了

最无脑的方法直接用map记录每个按下的值就行了,代码仅供参考。

#include <bits/stdc++.h>
//#define int long long
#define per(i,j,k) for(int (i)=(j);(i)<=(k);++(i))
#define rep(i,j,k) for(int (i)=(j);(i)>=(k);--(i))
#define debug(a) cout<<#a<<"="<<a<<endl
#define all(x) x.begin(),x.end()
#define EX exit(0)
#define fr first
#define se second
#define endl '\n'
using namespace std;
using ll=long long;map<int,int>f;void solve(){string s;getline(cin,s);f[' ']=1;f['a']=1;f['b']=2;f['c']=3;f['d']=1;f['e']=2;f['f']=3;f['g']=1;f['h']=2;f['i']=3;f['j']=1;f['k']=2;f['l']=3;f['m']=1;f['n']=2;f['o']=3;f['p']=1;f['q']=2;f['r']=3;f['s']=4;f['t']=1;f['u']=2;f['v']=3;f['w']=1;f['x']=2;f['y']=3;f['z']=4;f['*']=1;f['0']=1;f['#']=1;int ans=0;per(i,0,s.length()-1){ans+=f[s[i]];}cout<<ans;
}signed main(){ios::sync_with_stdio(false),cin.tie(nullptr);int t=1;while(t--)solve();return 0;
}

B. 幸运数

根据题意模拟一遍就行了,没什么思维点。

#include <bits/stdc++.h>
#define int long long
#define per(i,j,k) for(int (i)=(j);(i)<=(k);++(i))
#define rep(i,j,k) for(int (i)=(j);(i)>=(k);--(i))
#define debug(a) cout<<#a<<"="<<a<<endl
#define all(x) x.begin(),x.end()
#define EX exit(0)
#define fr first
#define se second
#define endl '\n'
using namespace std;
using ll=long long;int bitLen(int x){int res=0;while(x){x/=10;res++;}return res;
}int bitsum(int x){int res=0;while(x){res+=x%10;x/=10;}return res;
}void solve(){int n;cin>>n;per(i,1,n){int res=0;int tmp;cin>>tmp;while(tmp){int bit=tmp%10;tmp/=10;res+=tmp%10;tmp/=10;bit*=7;while(bit>9){bit= bitsum(bit);}res+=bit;}if(res%8==0){cout<<"T"<<endl;}else{cout<<"F"<<endl;}}
}signed main(){ios::sync_with_stdio(false),cin.tie(nullptr);int t=1;while(t--)solve();return 0;
}

C. A+B problem

这道题出的相当差,语言混用的情况下居然出高精度题目,C/C++选手震怒。

代码就不放了,就是高精加,给个python代码参考。

a = int(input())
b = int(input())
print(a+b)

D. 幂的末尾

因为只要末三位,高位乘数只会越来越大不会影响末尾,所以我们可以模拟(a*a*a*a)连乘b次,其中对a*a的值一直除1000,保留末三位防止溢出,或者使用快速幂(可以不用,b不是很大)。

#include <bits/stdc++.h>
#define int long long
#define per(i,j,k) for(int (i)=(j);(i)<=(k);++(i))
#define rep(i,j,k) for(int (i)=(j);(i)>=(k);--(i))
#define debug(a) cout<<#a<<"="<<a<<endl
#define all(x) x.begin(),x.end()
#define EX exit(0)
#define fr first
#define se second
#define endl '\n'
using namespace std;
using ll=long long;int qkpow(int a1, int b1, int p1) {int res=1;int base = a1;while (b1) {if (b1 & 1)res *= base;res %= p1;base *= base;base %= p1;b1 >>= 1;}res %= p1;return res;
}
void solve() {int a,b;cin>>a>>b;int ans=qkpow(a,b,1000);vector<int> d;while(ans){d.push_back(ans%10);ans/=10;}while(d.size()<3) d.push_back(0);stack<int>s;for(auto val:d)s.push(val);while(s.size()){cout<<s.top();s.pop();}
}signed main(){ios::sync_with_stdio(false),cin.tie(nullptr);int t=1;while(t--)solve();return 0;
}

E. 赛前准备

这道题显然题目有问题导致无人通过,和下面的G一样,SpecialJudge的题目都错了,是不是主办方没开啊...

要求精确的 k 次兴奋,那显然构造 1 {2 3 4} [5 6 7 8],先输出1,方括号是k个数,满足k次兴奋,然后再降序输出尖括号里面的值就可以了;因为输出了1,所以一定会有1个兴奋,特判k=0,逆序输出n~1完成构造。

代码参考(注意本题无人AC)

#include <bits/stdc++.h>
//#define int long long
#define per(i,j,k) for(int (i)=(j);(i)<=(k);++(i))
#define rep(i,j,k) for(int (i)=(j);(i)>=(k);--(i))
#define debug(a) cout<<#a<<"="<<a<<endl
#define all(x) x.begin(),x.end()
#define EX exit(0)
#define fr first
#define se second
#define endl '\n'
using namespace std;
using ll=long long;void solve(){int n,k;cin>>n>>k;//1 2 3 4 5if(k==0){rep(i,n,1){cout<<i<<" ";}return;}cout<<1;for(int i=n-k+1;i<=n;++i){cout<<" "<<i;}for(int i=n-k;i>1;--i)cout<<" "<<i;cout<<endl;
}signed main(){ios::sync_with_stdio(false),cin.tie(nullptr);int t=1;cin>>t;while(t--)solve();return 0;
}

F. 生活大爆炸版石头剪刀布

没什么好说的,刷洛谷的这道题大概率都会碰见,是一道原题。

传送门:P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

G. 最小乘积

原题,这是第二届全国大学生信息技术认证挑战赛的题目,不知道怎么跑这来了,并且还是无人通过。具体参考我上次写的题解,分类讨论即可。

【算法科目】2024年第二届全国大学生信息技术认证挑战赛 题解-CSDN博客

H. 探险

原题++,也是第二届全国大学生信息技术认证挑战赛的题目。

一样参考我上次写的题解。【算法科目】2024年第二届全国大学生信息技术认证挑战赛 题解-CSDN博客

I. 2的幂次方表示

洛谷原题。

传送门:P1010 [NOIP1998 普及组] 幂次方 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

从高位到低位拆分就行了。

#include <bits/stdc++.h>
//#define int long long
#define per(i,j,k) for(int (i)=(j);(i)<=(k);++(i))
#define rep(i,j,k) for(int (i)=(j);(i)>=(k);--(i))
#define debug(a) cout<<#a<<"="<<a<<endl
#define all(x) x.begin(),x.end()
#define EX exit(0)
#define fr first
#define se second
#define endl '\n'
using namespace std;
using ll=long long;void recursion(int n){for(int i=14;i>=0;i--){if(pow(2,i)<=n){if(i==1){cout<<"2";}else if(i==0){cout<<"2(0)";}else{cout<<"2(";recursion(i);cout<<")";}n-=pow(2,i);if(n!=0)cout<<"+";}}
}void solve(){int n;cin>>n;recursion(n);
}signed main(){ios::sync_with_stdio(false),cin.tie(nullptr);int t=1;while(t--)solve();return 0;
}

J. 去除没有吸引力的配对

主办方是不是没有想过,参赛人可能也会做Codeforce?,这道题是Codeforce原题。

传送门:Problem - C - Codeforces

分类讨论,假设现在有一个a,那么不管在哪有别的和他不一样的字母,必然会抵消。

假设现在有多个aaaaa,那么不管在哪有别的和他不一样的字母,必然也全部会抵消。(且剩下的会是多的,如b比a多,那么剩下就是bbbb或者b,回归讨论)

显然答案就是字母最多的那个。

#include <bits/stdc++.h>
//#define int long long
#define fr first
#define se second
#define endl '\n'
using namespace std;int n,ans,cnt[200];
string s;void solve(){cin>>n>>s;for(int i=0;i<n;++i)cnt[s[i]]++;for(char i='a';i<='z';++i)ans=max(ans,cnt[i]-(n-cnt[i]));if(n&1 and !ans)ans++;cout<<ans<<endl;
}void init(){for(char i='a';i<='z';++i)cnt[i]=0;ans=0;
}
signed main(){ios::sync_with_stdio(false),cin.tie(nullptr);int t;cin>>t;while(t--)solve(),init();return 0;
}

10道题目

错题:E,G

原题:A,F,H,I,J

剩下的 B,C,D 没啥好说的,太常规了。

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

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

相关文章

appium相关的知识

>adb shell dumpsys window | findstr mCurrentFocus adb devices # 实例化字典 desired_caps = dict() desired_caps[platformName] = Android desired_caps[platformVersion] = 9 # devices desired_caps[deviceName] = emulator-5554 # 包名 desired_caps[appPackage] …

【云原生系列】云计算概念与架构设计介绍

1 什么是云计算 云计算是一种基于互联网的计算模式&#xff0c;在这个模式下&#xff0c;各种计算资源&#xff08;例如计算机、存储设备、网络设备、应用程序等&#xff09;可以通过互联网实现共享和交付。云计算架构设计的主要目标是实现高效、可扩展、可靠、安全和经济的计算…

Android Studio开发之路(八)Spinner样式设置

一、需求 白色背景显示下拉框按钮 问题&#xff1a; 设置Spinner的背景可以通过设置background&#xff1a; android:background"color/white",但是一旦设置了这个值&#xff0c;右侧的下拉按钮就会消失 方法一、自定义一个style&#xff08;不成功&#xff09; …

Packet Tracer - 交换机安全配置解析

第一步先连线SW1连到SW2接口连接G0/2到G0/2 指令配置 SW-1 SW-1>enable SW-1#conf t Enter configuration commands, one per line. End with CNTL/Z. SW-1(config)#interface range G0/1-2 SW-1(config-if-range)#switchport mode SW-1(config-if-range)#switchport no…

sqlserver 开启发布订阅模式

主服务器 用于发布与分发 从服务器 订阅 分发服务器的概念&#xff0c;是指用于管理发布与订阅的交互&#xff0c;这里用发布服务器充当即可 主服务器操作&#xff1a; 按需选择&#xff0c;一般选择快照发布 如果不需要排除列则不做任何选择 定义执行时间 这里配置连接到…

Web前端开发 小实训(二) 简易计算器

实训目的 学生能够使用函数完成简易计算器编写 操作步骤 1、请将加减乘除四个方法生成为以下函数&#xff0c;且有返回值 中文英语加法add减法subtract乘法multi除法division次幂pow()平方根sqrt() 提示&#xff1a; 除法中的除数不能为0&#xff01; 参考代码&#xff1…

super与this

目录 原型链与继承继承中的原型链 classsuper与this 我们可能会对一个问题感到好奇&#xff1a;为什么在派生类中&#xff0c;我们需要在调用this之前调用super。我们通常将其视为一种规范&#xff0c;却很少深入探究这个规范的真正意义。许多人认为super不过是ES6之前继承方式…

python作业 切片逆转

题目&#xff1a; &#xff08;反转显示一个整数&#xff09;编写下面的函数&#xff0c;反向显示一个整数。 列如&#xff1a;reserse(3456)。编写一个测试程序&#xff0c;提示用户输入一个整数&#xff0c;然后显示它的反向数。 第一步定义一个函数&#xff1a; def rev…

【前端开发基础知识快速入门】

前端开发基础知识&快速入门 一、VSCode 使用1.1 安装常用插件1.2 创建项目1.3 创建网页1.4 运行效果二、ES62.1 简介2.2 什么是 ECMAScript2.3 ES6 新特性2.3.1 let 声明变量2.3.2 const 声明常量(只读变量)2.3.3 解构表达式2.3.4 字符串扩展2.3.5 函数优化2.3.6 对象优化…

【C语言】动态内存分配(一)

目录 1.为什么要有动态内存分配 2.malloc和free 2.1malloc 2.2free 1.为什么要有动态内存分配 我们已经掌握的内存开辟方式有: 但是上述的开辟空间的方式有两个特点: ⭐空间开辟大小是固定的。 ⭐数组在申明的时候&#xff0c;必须指定数组的长度&#xff0c;数组空间一旦…

OpenCV C++实现区域面积筛选以及统计区域个数

目录 1、背景介绍 2、代码实现 2.1 获取原图 2.1.1 区域图像imread 2.1.2 具体实现 2.2 获取图像大小 2.3 阈值分割 2.3.1 阈值分割threshold 2.3.2 具体实现 2.4 区域面积筛选 2.4.1 获取轮廓findContours 2.4.2 获取轮廓面积contourArea 2.4.3 填充区域fil…

浅谈大数据时代下的电商风控||电商数据API接口

抢抢抢&#xff01;最后1天&#xff0c;双十一直播活动来啦&#xff01;抢直播专属优惠…… 视频号 随着大数据时代的兴起&#xff0c;互联网电商风控已经从无风控、人工抽取规则为主的简易规则模型发展到当前基于大数据的风控。与金融风控不同&#xff0c;互联网电商风控呈现出…

vscode中jsconfig.json文件首行提示错误

在使用react框架开发前端时&#xff0c;文件jsconfig.json首行提示错误&#xff0c;打开设置&#xff0c;勾选如下图这项

Linux 第十一章

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…

Java 图形化框架 - AWT、Swing

文章目录 关于 AWTAWT继承体系 关于 Swing关于 JFC 和 Swing Swing 组件组件层次Swing组件和AWT组件的对应关系&#xff1a;Swing组件按照功能来分类&#xff1a; Java使用AWT和Swing相关的类可以完成图形化界面编程&#xff0c;其中AWT的全称是抽象窗口工具集(Abstract Window…

北大发现了一种特殊类型的注意力头!

检索头的发现或许将有力地帮助大模型领域在提高长上下文推理能力、减少幻觉和压缩KV缓存方面的研究。 从 Claude100K 到 Gemini10M&#xff0c;我们正处于长上下文语言模型的时代。如何在长上下文中利用任何输入位置的信息&#xff1f;北大联合另外四所高校发现了一种特殊类型…

运维 kubernetes(k8s)基础学习

一、容器相关 1、发展历程&#xff1a;主机–虚拟机–容器 主机类似别墅的概念&#xff0c;一个地基上盖的房子只属于一个人家&#xff0c;很多房子会空出来&#xff0c;资源比较空闲浪费。 虚拟机类似楼房&#xff0c;一个地基上盖的楼房住着很多人家&#xff0c;相对主机模式…

微信小程序的开发

1.了解项目的基本组成结构 pages 用来存放所有小程序的页面 utils 用来存放工具性质的模块(例如:格式化时间的自定义模块) app.js 小程序项目的入口文件 app.json 小程序项目的全局配置文件 app.wxss 小程序项目的全局样式文件 project.config.json 项目的配置文件 sitem…

Docker基础学习(5.Docker镜像命令)

⭐ 作者简介&#xff1a;码上言 ⭐ 代表教程&#xff1a;Spring Boot vue-element 开发个人博客项目实战教程 ⭐专栏内容&#xff1a;个人博客系统 ⭐我的文档网站&#xff1a;http://xyhwh-nav.cn/ ⭐微信公众号&#xff1a;码上言 文章目录 Docker run流程镜像是什么&a…

通用视觉多模态大模型 一统理解/生成/分割/编辑

这是一款通用视觉多模态大模型&#xff0c;支持从视觉理解到视觉生成、从低层次到高层次的一系列视觉任务&#xff0c;解决了困扰大语言模型产业已久的图像/视频模型割裂问题&#xff0c;提供了一个全面统一静态图像与动态视频内容的理解、生成、分割、编辑等任务的像素级通用视…