第十三届蓝桥杯省赛大学B组编程题(c++)

news2025/1/18 19:03:24

D.刷题统计

二分(AC):

注意:二分时右边界 right 的确定

#include<iostream>
using namespace std;
long long a,b,n;
bool check(long long x){
    long long t=x/7;
    x%=7;
    long long temp=0;
    if(x<=5) temp=x*a;
    else temp=5*a+(x-5)*b;
    long long cnt=t*(5*a+2*b)+temp;
    return cnt>=n;
}
int main(){
    cin>>a>>b>>n;
    long long left=0,right=n/min(a,b)+1;
    while(left<right){
        long long mid=(left+right)/2;
        if(check(mid)) right=mid; 
        else left=mid+1;
    }
    cout<<left<<endl;
    return 0;
}

E.修剪灌木

数学思维(AC):

#include<iostream>
using namespace std;
int n;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        int left=2*(i-1);
        int right=2*(n-i);
        cout<<max(left,right)<<endl;
    }
    return 0;
}

F.X 进制减法

暴力+模拟(AC):

十年OI一场空,不开浪浪见祖宗

#include<iostream>
using namespace std;
typedef long long ll;
const int N=1e5+5;
const ll mod=1e9+7;
ll n,ma,mb,ans1,ans2,a[N],b[N],x[N],v[N];
int main(){
    ios::sync_with_stdio(false),cin.tie(0);
    cin>>n>>ma;
    for(int i=ma-1;i>=0;i--) cin>>a[i];
    cin>>mb;
    for(int i=mb-1;i>=0;i--) cin>>b[i];
    for(int i=max(ma-1,mb-1);i>=0;i--) x[i]=max((long long)2,max(a[i]+1,b[i]+1));
    for(int i=0;i<=max(ma,mb)-1;i++){
        if(i==0) v[i]=1;
        else{
            v[i]=v[i-1]*x[i-1];
            v[i]%=mod;
        }
    }
    for(int i=ma-1;i>=0;i--) ans1+=v[i]*a[i],ans1%=mod;
    for(int i=mb-1;i>=0;i--) ans2+=v[i]*b[i],ans2%=mod;
    cout<<(ans1-ans2+mod)%mod<<endl;
    return 0;
}

G.统计子矩阵

二维前缀和+暴力(70 points):

#include<iostream>
using namespace std;
const int N=505;
int n,m,k,a[N][N];
long long ans;
int main(){
    cin>>n>>m>>k;
    for(int i=1;i<=n;i++) {
        for(int j=1;j<=m;j++) {
            cin>>a[i][j];
            a[i][j]+=a[i-1][j]+a[i][j-1]-a[i-1][j-1];
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            for(int x=1;x<=i;x++){
                for(int y=1;y<=j;y++){
                    if(k>=(a[i][j]+a[x-1][y-1]-a[x-1][j]-a[i][y-1])){
                        ans++;
                    }
                }
            }
        }
    }
    cout<<ans<<endl;
    return 0;
}

优化(AC):

#include<iostream>
using namespace std;
const int N=505;
int n,m,k,a[N][N];
long long ans;
int main(){
    cin>>n>>m>>k;
    for(int i=1;i<=n;i++) {
        for(int j=1;j<=m;j++) {
            cin>>a[i][j];
            a[i][j]+=a[i-1][j]+a[i][j-1]-a[i-1][j-1];
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=i;j<=n;j++){
            for(int l=1,r=1;r<=m;r++){
                while(l<=r&&k<(a[j][r]+a[i-1][l-1]-a[j][l-1]-a[i-1][r])){
                    l++;
                }
                ans+=r-l+1;
            }
        }
    }
    cout<<ans<<endl;
    return 0;
}

这题暴力70足以...... 

H.积木画

递推与递归(AC):

#include<iostream>
using namespace std;
const long long mod=1e9+7;
const int N=1e7+5;
int n,f[N];
int main(){
    cin>>n;
    f[1]=1,f[2]=2,f[3]=5;
    if(n>=4){
        for(int i=4;i<=n;i++){
            f[i]=2*f[i-1]%mod+f[i-3]%mod;
            f[i]%=mod;
        }
    }
    cout<<f[n]<<endl;
    return 0;
}

思路和洛谷题单算法1-4递推与递归 P1990 覆盖墙壁 一模一样......

I.李白打酒加强版

动态规划+记忆化搜索(AC):

#include<iostream>
#include<cstring>
using namespace std;
const int N=105;
const int mod=1e9+7;
int n,m,dp[N][N][N];//当前酒量,剩余遇见店的次数,剩余遇见花的次数
int dfs(int x,int y,int z) {
    //出现负数不合法
    if(x<0||y<0||z<0) return 0;
    //当前酒量不可能大于剩余遇见花的次数"
    if(x>z) return 0;
    //最后一次必须遇见花并且酒量只剩1
    if(z==1) return y==0&&x==1;
    //记忆化
    if(dp[x][y][z]!=-1) return dp[x][y][z];
    //逢店加倍,遇花减一
    dp[x][y][z]=(dfs(x*2,y-1,z)+dfs(x-1,y,z-1))%mod;
    return dp[x][y][z];
}
int main(){
    memset(dp,-1,sizeof(dp));
    cin>>n>>m;
    cout<<dfs(2,n,m)<<endl;
    return 0;
}

J.砍竹子

unorder_set特点:无序不重复的集合
//头文件:
#include<unordered_set>
//常用函数:
unorder_set.empty();  //判断容器是否为空,空为true,反之为false
unorder_set.size();   //返回容器大小
unorder_set.begin();  //返回迭代器开始
unorder_set.end();    //返回迭代器结束
unorder_set.find(x);  //返回x在迭代器的位置
unorder_set.count(x); //返回x在容器的个数
unorder_set.insert(x);//将x插入到容器中
unorder_set.erase(x); //删除x,成功返回1,反之返回0
unorder_set.clear();  //清空容器

解释样例:

#include<iostream>
#include<unordered_set>
#include<cmath>
typedef long long ll;
using namespace std;
ll ans;            //累计不同的数的个数
unordered_set<ll>s;//保存上次出现过的数
int main() {
    int n;
    cin>>n;
    for(int i=1;i<=n;i++) {
        ll temp;
        cin>>temp;
        unordered_set<ll>cur;  //每次读取一个数时,用来记录当前数的所有中间结果
        while(temp!=1) {
            cur.insert(temp);  //将当前数加入当前集合
            if (s.find(temp)==s.end()) ans++;//如果当前数不在之前的集合内,ans自增
            temp = sqrtl(temp/2+1);          //计算下一个数
        }
        s=cur; //更新保存所有出现过的数的集合
    }
    cout<<ans<<endl;
    return 0;
}

这题真难想...... 

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

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

相关文章

第十一届蓝桥杯大赛第二场省赛试题 CC++ 研究生组-七段码

#include<iostream> using namespace std; const int N 10, M 7; int e[N][N] {0}, f[N], open[N];//e[i][j]表示i和j之间是否连通&#xff1b;f[i]表示结点i的父节点&#xff1b;open[i] 1表示结点i打开&#xff0c;0表示关闭 long long ans 0;int find(int x){if(…

水果店加盟哪家好?仙果很忙水果零食店怎么样?

人们越来越重视饮食健康,一些水果类的食品获得了更多消费者的认可。很多投资者也看中了水果店的商机,想要开一家品牌水果店。那么现在水果店加盟哪家好呢!在加盟前,需要了解当前市场的发展潜力,了解哪个项目更值得人们加盟。 健康水果餐饮文化近几年受到了更多消费者的认可,开…

中国网站数量竟然比2022年多了10000个

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 CNNIC发布了最新中国互联网报告&#xff0c;报告显示&#xff1a; 2018年中国有523万个网站&#xff0c;2023年13月下降到388万个&#xff0c;5年时间网站数量下降30%&#xff0c;但相比于2022年12月&#xff0c;竟…

Kyligence 发布企业级 AI 解决方案,Data + AI 落地迈向新阶段

4月11日&#xff0c;Kyligence 2024 数智论坛暨春季发布会成功召开。Kyligence 正式发布全新的企业级 AI 解决方案&#xff0c;基于服务金融、零售、制造、医药等行业领先客户的落地实践&#xff0c;Kyligence 为企业提供准确、可靠、智能的 AI 指标平台一站式解决方案&#x…

分布式系统:缓存与数据库一致性问题

前言 缓存设计是应用系统设计中重要的一环&#xff0c;是通过空间换取时间的一种策略&#xff0c;达到高性能访问数据的目的&#xff1b;但是缓存的数据并不是时刻存在内存中&#xff0c;当数据发生变化时&#xff0c;如何与数据库中的数据保持一致&#xff0c;以满足业务系统…

Excel·VBA二维数组S形排列

与之前的文章《ExcelVBA螺旋数组函数》将一维数组转为二维螺旋数组 本文将数组转为S形排列的二维数组&#xff0c;类似考场座位S形顺序 Function S形排列(ByVal arr, ByVal num_rows&, ByVal num_cols&, Optional ByVal mode$ "row")将数组arr转为num_rows…

【并发】 第四篇 原子操作(一)

导航 一. 非原子操作二. 原子操作1. 使用锁2. 使用原子类一. 非原子操作 首先在并发场景中, 一个线程需要对内存中的某个共享变量的值进行修改时,大致可分为以下三个步骤: # 1.从内存中读取共享变量的值,到线程本地 # 2.执行修改操作 # 3.将修改后的新值,重新写回到内存中此时…

PostgreSQL入门到实战-第十九弹

PostgreSQL入门到实战 PostgreSQL中表连接操作(三)官网地址PostgreSQL概述PostgreSQL中INNER JOIN命令理论PostgreSQL中INNER JOIN命令实战更新计划 PostgreSQL中表连接操作(三) 使用PostgreSQL INNER JOIN子句从多个表中选择数据。 官网地址 声明: 由于操作系统, 版本更新等…

Android 输入法框架

输入法属于输入系统的一部分&#xff0c;区别于输入系统只能向系统产生时间&#xff0c;输入法能向系统输入具体的内容&#xff0c;下面来认识输入法的大体框架&#xff0c;以下内容参考清华大学出版社出版的《Android图形显示系统》。 输入法框架包含3个组件&#xff0c;各组件…

车载视频智能创作解决方案,影视级视频制作

当下车载视频已经不仅仅是一种记录行车过程的方式&#xff0c;更是展现企业品牌形象、传递文化内涵的重要媒介。传统的车载视频制作方式往往耗时耗力&#xff0c;效率低下&#xff0c;无法满足企业对于高质量、高效率的需求。针对这一痛点&#xff0c;美摄科技凭借其在视频智能…

搭建MyBatis框架

文章目录 一、开发环境和准备工作二、创建MyBatis核心配置文件三、创建Mapper接口创建MyBatis的映射文件 四、测试添加用户功能五、日志加入依赖加入log4j的配置文件 六、测试修改功能七、测试删除功能八、测试查询功能根据id查询查询所有信息 一、开发环境和准备工作 MyBatis需…

Python爬虫怎么挣钱?6个Python爬虫赚钱方式,搞搞副业不是问题

1.最典型的就是找爬虫外包活儿 网络爬虫最通常的的挣钱方式通过外包网站&#xff0c;做中小规模的爬虫项目&#xff0c;向甲方提供数据抓取&#xff0c;数据结构化&#xff0c;数据清洗等服务。新入行的程序员大多都会先尝试这个方向&#xff0c;直接靠技术手段挣钱&#xff0…

如果学又学不进,产又产不出,又需要挣钱生存,应该怎么办?机会很多,为下次做好准备

面对学习困难、工作压力和生存需求&#xff0c;可以考虑以下方法来应对&#xff1a; 寻求帮助&#xff1a;如果学习困难&#xff0c;可以寻求老师、同学或专业人士的帮助和指导。他们可能能够提供额外的支持和解决方案。 调整学习方法&#xff1a;尝试不同的学习方法和技巧&am…

2024 年第十四届 MathorCup 完整解题思路

C 题 物流网络分拣中心货量预测及人员排班 电商物流网络在订单履约中由多个环节组成,图 1 是一个简化的物流 网络示意图。其中,分拣中心作为网络的中间环节,需要将包裹按照不同 流向进行分拣并发往下一个场地,最终使包裹到达消费者手中。分拣中心 管理效率的提升,对整体网络的…

K8S资源管理之计算资源管理

1.详解Requests和Limits参数 以CPU为例&#xff0c;下图显示了未设置Limits与设置了Requests和Limits的CPU使用率的区别 尽管Requests和Limits只能被设置到容器上&#xff0c;但是设置了Pod级别的Requests和Limits能大大提高管理Pod的便利性和灵活性&#xff0c;因此在Kubernet…

基于Java停车场管理系统设计与实现(源码+部署文档)

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…

Android Studio导入第三方so库和jar包——Android Studio

导入so库 方式一&#xff08;libs文件夹&#xff09; 将项目以【Project】的结构显示&#xff0c;将目标架构对应的so文件夹&#xff08;如下图中 的arm64-v8a&#xff09;复制粘贴到app文件下的lib文件夹中&#xff08;如下图的步骤1 2 3&#xff09; 在build.gradle&…

网络原理(应用层、传输层)

文章目录 一、应用层1.1 自定义协议1.2 通用协议XMLJSONprotobuf 1.3 DNS 域名解析系统 二、传输层2.1 UDP协议2.2 TCP协议协议端格式及解析可靠性机制确认应答超时重传连接管理&#xff08;三次握手&#xff0c;四次挥手&#xff09;流量控制拥塞控制 效率机制滑动窗口延迟应答…

基于java+springboot+vue实现的西安旅游系统(文末源码+Lw)23-265

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统西安旅游系统信息管理难度大&#xff0c;容错率低&#…

oracle创建整个数据库的只读账户

在源用户readonly 下创建只读用户 reader readonly 的表空间为AA 一、创建只读用户 create user reader identified by 密码 default tablespace AA; 二、授权 grant connect to reader ; 三、获取原账号readonly 的查询权限 select grant select on ||owner||.||object…