[CF1239E] Turtle 题解

容易发现一定能构造出一种正确答案,满足先横着走到头再向下走,或者先向下走再横着走到头是最长路。

那么可以想到枚举两头,背包中间的 \(O(n^4A)\) 做法。

我们可以继续注意力惊人的注意到左上和右下角一定是最小值和次小值,这样时间复杂度就骤减到 \(O(n^2V)\) 了。

#include<bits/stdc++.h>
using namespace std;
const int N=55,M=2500005;
int n,a[N],up[N],dn[N],sum,vs[N];
bitset<M>dp[N][N/2];
void dfs(int x,int num,int nm){if(num==2) return vs[num]=1,void();vs[num]=(dp[num-1][nm][x]==0);dfs(x-vs[num]*a[num],num-1,nm-vs[num]);
}signed main(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0),cin>>n;for(int i=1;i<=2*n;i++) cin>>a[i],sum+=a[i];sort(a+1,a+2*n+1),dp[2][0][0]=1,sum-=a[2]+a[1];for(int i=3;i<=2*n;i++) for(int k=1;k<=n;k++)dp[i][k]=dp[i-1][k]|(dp[i-1][k-1]<<a[i]);for(int j=sum/2,k=(sum+1)/2;;j++,k--){if(dp[n*2][n-1][j]==1){dfs(j,n*2,n-1);break;}if(dp[n*2][n-1][k]==1){dfs(k,n*2,n-1);break;}}for(int i=1,tp=0;i<=2*n;i++)vs[i]?up[++tp]=a[i]:dn[i-tp]=a[i];sort(up+1,up+n+1),sort(dn+1,dn+n+1);for(int i=1;i<=n;i++) cout<<up[i]<<" ";cout<<"\n";for(int i=n;i;i--) cout<<dn[i]<<" ";return 0;
} 

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

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

相关文章

【CodeForces训练记录】Codeforces Round 1008 (Div. 2)

训练情况赛后反思 被A题吓了一跳,发现是结论题,C题构造思维定式了,以为一定要凑 \(a_1\),实则可以再找一个超过 \(b_i\) 值域的数 A题 平均数可以倒过来求数列和,所以这题只需要判断数列的和除以 n 是否等于 m 即可点击查看代码 #include <bits/stdc++.h> // #defin…

dotnet Cli sdk 什么是 Terminal Logger 以及如何禁用此功能

在 dotnet 9 的 SDK 版本里面,将 Terminal Logger 功能设置为默认。这是一个令我烦恼的功能。我将在这篇博客里面和大家介绍这是一个什么功能,以及如何将此功能禁用在 dotnet 9 默认开启的 Terminal Logger 功能,是在 dotnet 8 作为实验性引入的功能。核心原因是因为有开发者…

读DAMA数据管理知识体系指南16数据存储和操作活动

读DAMA数据管理知识体系指南16数据存储和操作活动1. 活动 1.1. 数据存储和操作包括数据库技术支持和数据库操作支持两个主要活动 1.2. 数据库技术支持侧重选择和维护用于存储和管理数据的软件 1.3. 数据库操作支持侧重软件所管理的数据和进程 2. 管理数据库技术 2.1. 技术管理的…

退役划水十 贝肯茨威格

发暗网上没过审,管理员说要来鲨我,只能发博客园了贝肯是贝肯,茨威格是茨威格,但这里是划水,不是史论,更不是冻鳗理论。 很多人都认为茨威格在《断头王后:玛丽安托瓦内特传》中有一段很文艺,很精辟的评价:“她那时候还太年轻,不知道所有命运赠送的礼物,早已在暗中标好…

How to use Linux shell echo date to a log file All In One

How to use Linux shell echo date to a log file All In One 如何使用 Linux shell 将日期打印输出到日志文件How to use Linux shell echo date to a log file All In One如何使用 Linux shell 将日期打印输出到日志文件solutions # 命令 ✅ $ date >> /etc/rc.local.m…

树莓派3B安装wiringpi失败的解决办法

大家好,我是努力赚钱的小智! 问题描述: 1.安装wiringpi失败 2.输入gpio -v与gpio readall命令出现not found系统信息 树莓派系统是32位!解决办法 1.确认是否需要树莓派系统配置镜像源 2.确认是否已经安装git sudo apt-get install git若遇到上图的情况,请直接按下回车键! …

全链路测试中的影子体系

一、全链路测试的入门理解 1.1什么是全链路测试? 全链路测试是指对系统中所有组件和服务的完整流程进行测试,确保从用户请求到系统响应的每个环节都能正常工作。它覆盖了前端、后端、数据库、第三方服务等所有部分。通俗解释:想象你在网上购物,从搜索商品到下单、支付、收货…

Linux rc.local rc.d All In One

Linux rc.local & rc.d All In One Linux 系统开机/登录自启动配置文件 /etc/rc.local /etc/rc.dLinux rc.local & rc.d All In OneLinux 系统开机/登录自启动配置文件rc.localRaspberry Pi$ cat /etc/rc.localrc.dCentOS / Ubuntu$ ls -al /etc/rc.ddemos eric@rpi3b:…

基本进程调度算法

本文讨论了硬件和操作系统是如何支持进程调度的,并列举了一些进程调度算法。希望本文能帮助读者快速建立起对进程调度的认识。在下一篇文章中,我们将不使用这个假设,再给出一些调度策略。写在前面 在了解了进程的基本概念之后,我们开始学习进程调度算法。本文讨论了硬件和操…

FastAPI 自定义参数验证器完全指南:从基础到高级实战

title: FastAPI 自定义参数验证器完全指南:从基础到高级实战 date: 2025/3/11 updated: 2025/3/11 author: cmdragon excerpt: 本教程深入探讨 FastAPI 中自定义参数验证器的使用,特别是通过 Field 函数进行数据校验。从基础概念到高级用法,通过详细的代码示例、课后测验和…

B端、G端需求调研流程

与C端的流程不同,B端和G端之类的产品,在需求调研阶段就有较多差异。这篇文章,我们来看看作者分享的这些经验。需求调研流程主要包含“调研前准备”、“调研中过程”、“调研后输出”三块内容。调研前:准备 第一步:沟通项目情况 在产品正式需求调研前,相信已经有售前初步跟…

Hetao P1287 小核桃玩核桃棋 题解 [ 蓝 ] [ 观察 ] [ 二维 dp ] [ 容斥原理 ]

很厉害的观察性质,加上 dp 辅助计数的题。小核桃玩核桃棋:质量挺高的一道 dp,好像是搬的某场神秘 ICPC 的?观察 首先我们观察最优解有什么性质,显然这个问题就是要我们选择一些点覆盖所有的行与列。贪心地考虑,不难想出我们从 \((1,1)\) 开始按照对角线来放置,就一定能取…