尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

CF1545A AquaMoon and Strange Sort - crazy-

CF1545A AquaMoon and Strange Sort - crazy-
📅 发布时间:2026/6/20 13:59:29

CF1545A AquaMoon and Strange Sort

题目传送门

题意

有 \(n\) 个人从左到右站成一排,从左数第 \(i\) 个人的衣服上印着 \(a_i\)。每个人的朝向可以是朝左、朝右。一开始所有人的方向都是朝右。

您可以对这些人做一些“操作”,每次操作允许您找两个相邻的人让他们交换顺序,但是在操作之后,两人都会掉头,也就是朝向都从朝右变成朝左或者相反。

现求是否存在一种操作方法使得操作完成后这 \(n\) 个人衣服上的数字 \(a_1, a_2, \ldots , a_n\) 从左往右读单调不减,并且最后所有人的方向都朝右。

思路

联想一下,会发现这题很像一个冒泡排序,每个数都有一个目标位置,需要通过交换相邻的数来到达

那么特征也就出来了,为了使他的方向不变,所以他的位置之差一定是偶数,换句话说,就是在新序列和旧序列中,同一个数的位置奇偶性一致

这道题的一个难点在于如何判断相同的数,这里参考一下题解思路,用\(f_i\)表示旧序列中数字\(i\)位于偶数位置的个数,\(g_i\)表示位于奇数位置的个数。

而在新的序列里,也存在这样一组\(f\)和\(g\),现在且叫他们\(f'\)和\(g'\)

那么,条件就变为了\(f_i=f'_i\)且\(g_i=g'_i\)

据此写出代码即可

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int Maxn=1e5+10;
int a[Maxn];
int f[Maxn],g[Maxn];
int flag,n;
void run()
{cin>>n;flag=1;memset(f,0,sizeof(f));memset(g,0,sizeof(g));for(int i=1;i<=n;i++){cin>>a[i];f[a[i]]+=(i%2==0);g[a[i]]+=(i%2==1);}sort(a+1,a+n+1);for(int i=1;i<=n;i++) f[a[i]]-=(i%2==0),g[a[i]]-=(i%2==1);for(int i=1;i<=n && flag;i++) if(f[a[i]] || g[a[i]]) flag=0;cout<<(flag?"Yes":"No")<<endl;
}
signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t;cin>>t;while(t--) run();system("echo. & pause");return 0;
}

相关新闻

  • 动态规划01背包问题
  • 停止造Agent,开始造Skills吧!Claude Skills创造者:Agent聪明但不够专业,非技术人员也能造Skills
  • 游戏中的开发模式有哪些?一篇带你了解常用的设计模式!<二>

最新新闻

  • Clawdbot本地AI网关:绿联NAS上的数字员工部署指南
  • SPI通信协议深度解析:时序、错误处理与实战配置
  • TradingAgents-CN:可审计的金融AI Agent工程化部署指南
  • 终极指南:如何用免费开源工具轻松抢到B站会员购热门门票
  • 无锡家电维修平台推荐:本地用户反馈较好的几家服务商深度实测对比——2026年6月最新发布 - 一步到家
  • Web自动化测试工具全解析:从Selenium到Playwright的实战选型指南

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号