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;
}
【深度学习】手把手教你在远程服务器上跑 YOLOv3 相关代码(含环境配置) 这篇文章主要记录了如何配置项目环境以及如何在远程服务器上跑 YOLOv3 模型。 阅读详情

相关推荐

K-Means聚类算法 — 算法原理、质心计算、距离度量、聚类效果评价及优缺点

分类知识   分类是根据样本某些属性或某类特征(可以融合多类特征),把样本类型归为已确定的某一类别中。机器学习中常见的分类算法有:SVM(支持向量机)、KNN(最邻近法)、Decision Tree(决策树分类法)、Naive Bayes(朴素贝叶斯分类)、Neural Networks(神经网络法)等。   但当对海量数据进行分类时,为了降低数据满足分类算法要求所需要的预处理代价,往往需要选...

zhf的博客 1万+

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

从DIY到实战:手把手教你搭建一个媲美吉时利2450的nA级电流源表(附原理图与避坑指南)

本文详细解析如何从零打造nA级精密电流源,涵盖核心设计原理、PCB布局技巧、热电偶效应应对及校准验证体系。通过低成本替代方案和优化设计,实现媲美商用源表的性能,特别适合硬件爱好者和独立开发者。文章还提供原理图与避坑指南,助你轻松搭建高精度电流源系统。

weixin_42656416的博客 291

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

5大步骤!轻松玩转Dorisoy.Rigger:基于.NET Core 6、MAUI和Blazor的多数据库开发框架生成器

各位小伙伴,你们是否厌倦了每次项目启动都要从头配置数据库连接、编写重复的代码?今天,我们就来聊聊如何使用Dorisoy.Rigger这个强大的开发框架生成器,让你的.NET Core 6、MAUI和Blazor项目开发变得简单又高效!准备好迎接开发的新乐趣了吗?让我们一起开始吧!接下来,我们需要定义数据模型。假设我们有一个简单的用户表,包含ID、用户名和密码字段。在项目中创建一个新的类文件,命名为User.csset;set;set;这段代码定义了一个用户模型,其中包含了用户的ID、用户名和密码。

java专栏 1738

【通信协议】GATT 与 BLE HID 工作原理详解

详细介绍BLE HID 跟GATT工作原理与两者的交互关系

以实战经验介绍行业知识 843

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

【人工智能时代】-什么是MCP?本地如何开发MCP Server

MCP(Model Context Protocol)全称模型上下文协议,是由 Anthropic 推出的一种开放标准,旨在统一大型语言模型(LLM)与外部数据源和工具之间的通信协议。掌握更多的信息控制更多的工具在没有联网搜索之前,大模型的数据来源只有训练数据的时候以及推理我们告诉他的东西。所以后来的rag、知识库都是让AI掌握更多的信息,而MCP的出现是为了让大模型控制更多的工具,赋予更多能力。在本篇文章中,基于 Python 完成了一个简单的 MCP Server 的开发。

xiaoli8748的专栏 1988

「周练」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

华为数通方向HCIP-DataCom H12-831题库(多选题:121-140)

华为数通HCIP H12-831多选题

didiplus 1291

基于STM32设计的智能家居系统(采用ESP8266+OneNet云平台)

一、环境介绍 单片机采用:STM32F103C8T6 上网方式:采用ESP8266,也可以使用其他设备代替,只要支持TCP协议即可。比如:GSM模块、有线网卡等。 云平台: 采用中国移动OneNet. 也可以采用腾讯、阿里云、华为云、百度天工物接入、机智云等等。 前面文章有讲解。 协议: 采用MQTT协议 开发软件:keil5 完整项目源码下载:https://download.youkuaiyun.com/download/xiaolong1126626497/19766925 二、包含的硬件与实...

1万+

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

搭建一个简单的 Django + Vue 项目

在本文中,我将为您详细介绍如何搭建一个简单的 Django + Vue 项目。Django 是一个使用 Python 编写的高级 Web 框架,而 Vue 是一个流行的 JavaScript 框架,用于构建用户界面。通过结合 Django 和 Vue,我们可以创建强大的全栈 Web 应用程序。创建 Django 项目设置 Django 后端创建 Vue 前端连接 Django 和 Vue让我们开始吧!

JfpBlockchain的博客 351

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

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Codeforces Round #462 (Div. 2) + DP

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

Sun 201

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【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

jre9下载 jdk9

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

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、付费专栏及课程。

余额充值