【笔试训练】day14

简介: 【笔试训练】day14

1.乒乓球框

思路:

无思路

代码:

#include <iostream>
using namespace std;
 
int main() {
   string a;
   string b;
   int mp[26]={0};
   cin>>a>>b;
   for(int i=0;i<b.size();i++){
    int u=b[i]-'A';
    mp[u]++;
   }
 
   for(int i=0;i<a.size();i++){
    int u=a[i]-'A';
    mp[u]--;
   }
 
   for(int i=0;i<26;i++){
    if(mp[i]>0){
        cout<<"No"<<endl;
        return 0;
    }
   }
   cout<<"Yes"<<endl;
   return 0;
}

2.组队竞赛

思路:

在n*3个人里面选n个人,这n个人每个人都可以在剩下的2*n个人里找出一个比他小的和比他大的,刚好组成n个队伍。要求这n个人值的和最大。

首先排个序,前n个选手成为“配件”,用来充当队伍最低水平那个。所以我们能提前为每一个队伍都选好了水平最低的选手。

接下来从后2*n个选手里面选n个,一定能组成一大一小的关系,于是我们间隔着组就行了。小的那个就是队伍的中间水平。

代码:

#include <iostream>
#include<algorithm>
using namespace std;
const int N=3e5+10;
int a[N];
int main() {
    int n;
    cin>>n;
    for(int i=1;i<=3*n;i++)cin>>a[i];
    sort(a+1,a+3*n+1);
    long long ans=0;
    for(int i=3*n-1;i>=n+1;i-=2){
       ans+=a[i];
    }
    cout<<ans<<endl;
    return 0;
}

3.删除相邻数字的最大分数

思路:

背包问题。对于值为i的元素,要么选,要么不选。选了值为i的元素,i-1的元素就不能选。

于是dp[i]=max(dp[i-1],dp[i-2]+i*mp[i])

其中dp[i]表示从值为[mi,i]里选的最大值。mi为元素值的左端点。mp[i]表示值为i的元素出现的个数 。选了i,获得的分数就是mp[i]*i。

代码:

#include <iostream>
#include<algorithm>
#include<unordered_map>
using namespace std;
const int N=1e5+10;
int a[N];
int dp[10010];
int main() {
    int n;
    cin>>n;
    unordered_map<int,int> mp;
    int mx=0;
    int mi=1e9;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        mp[a[i]]++;
        mx=max(mx,a[i]);
        mi=min(mi,a[i]);
    }
    
    for(int i=mi;i<=mx;i++){
        dp[i]=max(dp[i-1],dp[i-2]+mp[i]*i);
    }
    cout<<dp[mx]<<endl;
   return 0;
}


相关文章
|
前端开发 JavaScript 数据安全/隐私保护
VUE3(四十)使用canvas给图片添加水印~
VUE3(四十)使用canvas给图片添加水印~
714 0
|
运维 Serverless 数据库
使用serverless快速搭建博客
使用serverless快速搭建博客
681 0
使用serverless快速搭建博客
|
SQL PHP 数据库
21 PHP如何进行事务处理的?
路老师在知乎上分享PHP语言知识,帮助大家入门并深入了解PHP。本文介绍了PDO中的事务处理,通过实例讲解了如何使用beginTransaction()、commit()和rollback()方法实现事务操作。
230 1
|
存储 算法 安全
深入解析消息认证码(MAC)算法:HmacMD5与HmacSHA1
深入解析消息认证码(MAC)算法:HmacMD5与HmacSHA1
|
并行计算 前端开发 物联网
全网首发!真·从0到1!万字长文带你入门Qwen2.5-Coder——介绍、体验、本地部署及简单微调
2024年11月12日,阿里云通义大模型团队正式开源通义千问代码模型全系列,包括6款Qwen2.5-Coder模型,每个规模包含Base和Instruct两个版本。其中32B尺寸的旗舰代码模型在多项基准评测中取得开源最佳成绩,成为全球最强开源代码模型,多项关键能力超越GPT-4o。Qwen2.5-Coder具备强大、多样和实用等优点,通过持续训练,结合源代码、文本代码混合数据及合成数据,显著提升了代码生成、推理和修复等核心任务的性能。此外,该模型还支持多种编程语言,并在人类偏好对齐方面表现出色。本文为周周的奇妙编程原创,阿里云社区首发,未经同意不得转载。
30009 18
|
前端开发 Java API
Spring Boot与GraphQL的集成
Spring Boot与GraphQL的集成
|
计算机视觉 Windows
OpenCV + CLion在windows环境下使用CMake编译, 出现Mutex相关的错误的解决办法
OpenCV + CLion在windows环境下使用CMake编译, 出现Mutex相关的错误的解决办法
694 0
|
JavaScript 前端开发 Shell
Nodejs 第十五章(child_process)
Nodejs 第十五章(child_process)
265 0
|
机器学习/深度学习 缓存 图形学
|
数据采集 运维 监控
治理告警风暴,告警降噪的一些典型手段
很多公司希望提升服务稳定性,而上线了各类监控系统,指标的、链路的、日志的,而且只是指标层面可能就会有多个监控系统,这么多监控系统、这么多监控目标,如果没有良好的治理,很快就会产生告警风暴的问题,如何通过一些手段达到告警降噪的效果呢?
831 0