Codeforces Round #462

【CodeForces】CodeForces Round #462 (Div. 1 + Div. 2) 题解 【比赛链接】Div. 1Div. 2【题解链接】点击打开链接【Div.2 A】A Compatible Pair【思路要点】模拟过程,枚举玩家一删除的元素,并计算玩家二的最优策略,取最小值。时间复杂度\(O(N^{2}M)\)。【代码】#include<bits/stdc++.h> using namespace std; const int MAXN = 5005; template... 阅读详情

A.题目不难,但是如果想要用一些巧妙的方法去做的话….会变得很麻烦,要非常仔细地考虑各种可能。然而题目数据范围是如此的小,所以还不如暴力枚举所有的乘积,然后把最大的乘积所在的那一组数全部删掉,也就是第一个人应该删掉那个数。然后在剩下的数里找最大的数即可。

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<set>
#include<map>
#include<vector>
using namespace std;
typedef long long ll;
//typedef pair<ll,ll>P;
int main()
{
    int n,m,i,j;//multimap<ll,ll>mp;
    cin>>n>>m;
    ll a[60],b[60];
    vector<ll>product[60];
    for(i=1;i<=n;i++)cin>>a[i];
    for(i=1;i<=m;i++)cin>>b[i];
    ll maxn=1LL<<63;int num;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++){
        ll sum=a[i]*b[j];
        product[i].push_back(sum);
        if(sum>maxn){
            maxn=sum;num=i;
        }
    }
    product[num].clear();
    maxn=1LL<<63;
    for(i=1;i<=n;i++){
        for(auto a:product[i])
            maxn=max(maxn,a);
    }
    cout<<maxn<<endl;

    return 0;
}

B.这题就非常简单了,我们会发现其实只用4和8来凑就行,因此超过18*2=36的要求都是不行的。

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int k,i,j;
    cin>>k;
    if(k>36){
        cout<<-1<<endl;return 0;
    }
    i=k/2;
    if(k%2)cout<<4;
    while(i--)cout<<8;cout<<endl;

    return 0;
}

C.挺有意思的一道题。
很容易想到要预处理出1的前缀和pre[i]和2的后缀和suf[i],因为我们其实是要找形如11*22*11*22的序列,这样我们把中间22*11的区间反转以后就能得到最长不下降子序列。
然后枚举区间,对于每个区间如果能求出最长递减序列的长度,那么就能更新答案了
这个用dp求
状态:
dp[i][j][0]表示i–j区间以2结尾的最长递减序列长度,很明显这个序列全为2,所以也就是i–j区间2的个数
dp[i][j][1]表示i–j区间以1结尾的最长递减序列长度

状态转移:
dp[i][j][0]=dp[i][j-1][0]+(a[j]==2)
dp[i][j][1]=max(dp[i][j-1][0],dp[i][j-1][1])+(a[j]==1)

O(n^2)的代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int N=2e3+5;
int a[N];
int pre[N];
int suf[N];
int dp[N][N][2];
int main(){
    //ios::sync_with_stdio(false);
    //cin.tie(0);
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i];
    for(int i=1;i<=n;i++)pre[i]=pre[i-1]+(a[i]==1);
    for(int i=n;i>=1;i--)suf[i]=suf[i+1]+(a[i]==2);
    int ans=0;
    for(int i=1;i<=n;i++){
        for(int j=i;j<=n;j++){
            dp[i][j][0]=dp[i][j-1][0]+(a[j]==2);
            dp[i][j][1]=max(dp[i][j-1][0],dp[i][j-1][1])+(a[j]==1);
            ans=max(ans,pre[i-1]+suf[j+1]+dp[i][j][0]);
            ans=max(ans,pre[i-1]+suf[j+1]+dp[i][j][1]);
        }
    }
    cout<<ans<<endl;
    return 0;
}

但是其实我们还有O(n)的做法;思路还是跟上面一样的,但是因为我们要找的其实是形如11*22*11*22的序列,我们认为这个序列是由4part组成的,我们令dp[i][j] (i = 1…n, j = 0..3) 为a[1……n]且包含前j part的最长序列长度,那么就可以o(n) dp解决。(Since the subsequence can be split into 4 parts (11…22…11…22…) , we can set dp[i][j](i = 1…n, j = 0..3) be the longest subsequence of a[1…i] with first j parts.)

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int n,a[2005],dp[2005][4],b[5]={0,1,2,1,2};
int main() {
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
    for (int i = 1; i < 5; i++)
        for (int j = 1; j <= n; j++)
            dp[j][i] = max(dp[j - 1][i] + (b[i] == a[j]), dp[j][i - 1]);
    printf("%d\n", dp[n][4]);

    return 0;
}
汽车OTA安全启动:ECU双验签机制与实战排障指南 汽车OTA升级中的安全启动,本质是基于密码学的信任建立过程,其核心在于ECU上电时对固件镜像的可信验证。该机制依托硬件信任根(Secure Boot ROM),通过RSA/ECDSA等非对称算法完成签名验签,确保升级包未被篡改且来源可信。技术价值体现在防止恶意固件注入、支撑功能安全(ASIL)与信息安全(ISO/SAE 21434)合规。典型应用场景包括4S店远程升级、BMS控制器固件更新及多ECU协同启动。实践中,验签名失败往往源于证书链断裂、Flash布局错位或KeyUsage字段不匹配等底层工程细节, 阅读详情

相关推荐

智能检查点优化:动态频率与差异化存储的断点续训实践(模型训练丨容错机制丨人工智能)

本文深入探讨了大规模模型训练中智能检查点优化的核心实践。针对传统固定频率保存导致的存储浪费与恢复缓慢问题,提出了基于损失变化率的动态频率算法与分层差异化存储策略。通过PyTorch代码示例,详细展示了如何实现动态调度与增量保存,有效降低存储成本,并确保训练中断后能快速、可靠地恢复,显著提升训练任务的容错能力与经济效益。

weixin_29072299的博客 333

Codeforces Round #462 (Div. 2) B - A Prosperous Lot

构造#include&lt;iostream&gt; #include&lt;algorithm&gt; #include&lt;iomanip&gt; #include&lt;cstdio&gt; #include&lt;cstdlib&gt; #include&lt;cstring&gt; #include&lt;string&gt; #include&lt;cmath&gt;

床前明月光 271

【教程】ENVI主成分分析详解

主成分分析(PCA)是一种统计方法,简而言之就是用几种特性去描述事物。每个事物都可以用不同的特性去进行表达,但这些特性一般而言是存在相互的融合和冗余,而用主成分分析方法将这些特性进行转换成不相关的新特性。 在ENVI软件中共提供了三种主成分分析方式分别为:(1)Forward PCA Rotation Existing Statistics(2)Forward PCA Rotation New Statistics and Rotate(3)Inverse PCA Rotati...

YW_remote的博客 1万+

Appleman and Card Game CodeForces - 462B

Appleman and Card Game CodeForces - 462B题目描述 Appleman has n cards. Each card has an uppercase letter written on it. Toastman must choose k cards from Appleman’s cards. Then Appleman should give Toastm

退役的铜牌狗 537

用Arduino和RC522模块DIY一个NFC门禁卡复制器(附完整代码)

本文详细介绍了如何利用Arduino和RC522模块DIY一个NFC门禁卡复制器,包括硬件连接、软件配置、数据读写技术及完整代码实现。通过本教程,电子爱好者可以深入了解NFC技术,并构建自己的智能门禁系统,适用于家庭安全、办公场所等多种场景。

weixin_33704591的博客 500

PyQt5 + HFSS:给你的仿真脚本做个专属GUI界面(零基础搭建指南)

本文详细介绍了如何使用PyQt5为HFSS仿真脚本创建专属GUI界面,适合零基础用户快速上手。通过Python二次开发,实现参数可视化调整、进度实时监控等功能,大幅提升团队协作效率。文章涵盖环境配置、界面设计、HFSS集成到打包部署的全流程,是仿真工程师提升工作效率的实用指南。

weixin_42535720的博客 185

Codeforces Round #462 (Div. 2)

我好菜呀,居然还在打 div.2… 比赛传送门 A. A Compatible Pair 给两个集合 A,BA,BA,B,Tommy 先从 AAA 中删除一个数,Banban 再从 A,BA,BA,B 中各选一个数 a,ba,ba,b, Tommy 想使 a×ba×ba\times b 尽可能小,Banban 想使 a×ba×ba\times b 尽可能大。 求在两者都选择最...

Steaunk的博客 672

计算机保研/考研面试题——计算机组成原理篇

本文总结了985和华五学校习计算机保研/考研常问面试时的计算机组成原理题,欢迎点赞、收藏、评论、关注

安晴晚风的博客 7547

「周练」Codeforces Round #462 (Div. 2)

目录一. Codeforces Round #462 (Div. 2)A. A Compatible Pair (枚举)B. A Prosperous Lot (贪心)C. A Twisty MovementD. A Determined CleanupE. A Colourful Prospect二. 二维dp练习A. 编辑距离B. 最长公共子序列LcsC. Find Black HandD. ...

wqq的博客 502

基于OpenClaw的AI数字员工协同团队架构设计

随着大型语言模型从被动的文本生成器向具备自主规划与执行能力的智能代理演进,企业级人工智能的应用范式正在发生根本性转变。在这一演进过程中,OpenClaw(前身为Clawdbot及Moltbot)作为一种开源的、本地优先的个人AI智能体网关基础设施,凭借其对持续内存、多通道接入以及沙盒化工具执行的原生支持,迅速成为构建“始终在线”数字劳动力的核心框架 1。然而,将单体个人助理扩展为能够处理复杂业务逻辑、支持跨组织协同并严格保障数据隔离的多智能体(Multi-Agent)团队,绝非简单的API拼接。系统架构必须

形上得其象,形下合于数;阴阳自济,玄理自明。 1047

【AI智能体】Codex 开发聚合搜索应用项目实战操作详解

Codex 开发聚合搜索应用项目实战操作详解

congge 3095

Codeforces Round #462 (Div. 2)题解

Codeforces Round #462 (Div. 2) B题……我固执的认为1e18是18位数,导致被hack,花了20分钟才检查出这个错误,很僵硬 Codeforces 934C 题意 给定一个由\(1\)和\(2\)组成的数列,并且可以将区间\([l,r]\)内的数翻转一次,求这种情况下数列的\(LIS\) 数列长度\(n \le 2000\) 解题思路 如果不翻转的话,可以枚举从1变成...

weixin_30900589的博客 98

【AI Agent】Hermes Agent解析

Hermes Agent:一个具备持久化学习能力的开源AI Agent框架 核心特点: 突破传统Agent的"无状态困境",通过记忆系统(SQLite+FTS5全文检索)实现跨会话经验积累 支持200+模型自由切换,11种模型家族和15+平台接入 五层架构设计(入口层、编排层、推理层、工具执行层、存储层)实现平台无关性 47+内置工具和动态技能沉淀机制,支持从任务执行中自动提炼可复用Skill 独特的四层记忆体系(会话/每日/长期/向量索引)和辩证式用户建模 与传统Agent对比: 具备自我进化能力,通过A

sysu_lluozh 922

Codeforces Round #462 (Div. 2) ----D

Codeforces Round #462 (Div. 2) 观察样例之后我们发现他其实很像一个k进制数,每一次我们都需要将当前位凑出一个小于k的非负整数,模拟就可以了。感觉应该会有一些细节。 1 #include<bits/stdc++.h> 2 #define LL long long 3 using namespace std; 4 LL p...

weixin_30954607的博客 149

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Codeforces Round #462 (Div. 2) + DP

Codeforces链接 :http://codeforces.com/contest/934 A. A Compatible Pair(枚举)   题意 :有两个人分别有一些数字,TommyTommyTommy 有 nnn 个数字,BanbanBanbanBanban 有 mmm 个数字, 现在要求 TommyTommyTommy 从自己的数字中去掉一个数字,BanbanBanbanBan...

Sun 201

NTscan扫描工具

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

【Codeforces Round #462 (Div. 1) B】A Determined Cleanup

【链接】 我是链接,点我呀:) 【题意】 在这里输入题意 【题解】 设\(设f(x)=a_d*x^{d}+a_{d-1}*x^{d-1}+...+a_1*x+a_0\) 用它去除x+k 用多项式除法除一下就好。 会发现余数等于 \(∑_0^{d}(-k)^{i}*a_i\) 这是一个十进制数转成负k进制数的和的形式。 而p已知。 问题就转化为把十进制数p转成-k进制数的问...

AWCXV 146

Codeforces Round #462 (Div. 2)题解ABC

A. A Compatible Pairtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputNian is a monster which lives deep in the oceans. Once a year, it shows up on t...

Momo 429

Codeforces Round #462 (Div. 1) :C,D

C: 平面图的欧拉定理,对于一个平面图,设其边数为EEE,点数为VVV,连通块数目为CCC,区域数为FFF,那么:F=E−V+C+1F=E−V+C+1F=E-V+C+1恒成立。 对于此题直接求出所有交点,判重之后带入公式即可。 #include&lt;bits/stdc++.h&gt; typedef long double LD; using namespace std; const L...

DZYO的博客 268

Codeforces Round #462 (Div. 2) C (“A Twisty Movement”)

题目大意:给出一组长度为n由整数1和2构成的数组a,有一种对数组a的操作,规定一个区间,在这个区间的元素逆序,该操作只能执行一次,要求你在执行一次该操作之后,使得数组a的最长不下降子序列的长度最长。分析:首先,最长不下降子序列这个序列是不用连续的,题目中也没出现“continuous”这类字样,所以题意看懂很要紧。其次,数组长度最大为2000,所以不可能用O(n^2)的方法求最长,必须用O(n*l...

OttsWang的博客 358

【Codeforces Round #462 (Div. 1) A】 A Twisty Movement

【链接】 我是链接,点我呀:) 【题意】 在这里输入题意 【题解】 ans初值值为a[1..n]中1的个数。 接下来考虑以2为结尾的最长上升子序列的个数。 枚举中间点i. 计算1..i-1中1的个数cnt1。 计算i..n中2的个数cnt2。 ans = max(ans,cnt1+cnt2) 写个前缀和 翻转。 断点在l..r中 f[l][r]表示l..r翻转后以2结尾的...

AWCXV 122
上一篇: 洛谷P4009 汽车加油行驶问题
下一篇: 二维树状数组(模板,单点更新区间求和)
HumveeA6
博客等级 码龄17年 12粉丝 175原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值