当前位置: 首页 > news >正文

题解:CF1617C Paprika and Permutation

一.想法:
先排序,对于已经符合要求的 a[i] 可以直接扔了,然后一个一个的去判断,如果当前的数为 y,那么他只能变成自己本身(比赛时这玩意没看出来,只有 30,太行了)或者  ≤ (y/2)  )的数
那不就是贪心吗 ,于是我们只要判断 ≥(x/2)i 即可,如果不行的话,就输出 -1,否则累加我们的小答案。
代码:

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int t,n,a[N],b[N];
int main(){scanf("%d",&t);while(t--){scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);}sort(a+1,a+n+1);int cntn=0,flag=0;for(int i=n;i>=1;i--){if(a[i]<=n&&a[i]>i){int x=a[i];swap(a[i],a[x]);}}int cnt=0,cntt=0;for(int i=1;i<=n;i++){if(i==a[i]) {continue;}cnt++;b[cnt]=a[i];}sort(b+1,b+cnt+1);for(int i=1;i<=n;i++){if(i==a[i]) {continue;    }cntt++;a[i]=b[cnt];}for(int i=1;i<=n;i++){if(a[i]==i){continue;}if(a[i]<=i*2){flag=1;break;}else{cntn++;}}if(flag){printf("-1\n");}else{printf("%d\n",cntn);}}return 0;
}
http://www.dtcms.com/a/286194.html

相关文章:

  • Redis学习其二(事务,SpringBoot整合,持久化RDB和AOF)
  • MySQL查询优化与事务实战指南
  • 【PTA数据结构 | C语言版】我爱背单词
  • 前端埋坑之element Ui 组件el-progress display:flex后不显示进度条解决方案
  • Java实战:实时聊天应用开发(附GitHub链接)
  • http性能测试命令ab
  • IntelliJ IDEA大括号格式设置:换行改行尾
  • Java 核心工具类 API 详解(一):从 Math 到 Runtime 的实用指南
  • 【AI News | 20250717】每日AI进展
  • 【解码文本世界的“隐形分界线”:Windows与Linux回车换行之谜】
  • 基于单片机智能充电器系统设计
  • 如何检查GitHub上可能潜在的信息泄漏
  • 深入理解 Redis 集群化看门狗机制:原理、实践与风险
  • synchronized锁升级过程【AI笔记,仅供自己参考】
  • Pythonday17
  • 中国1km逐月潜在蒸散发数据集 - matlab按shp批量裁剪
  • lesson17:Python函数之递归、匿名函数与变量作用域
  • 电脑装机软件一键安装管理器
  • sky-take-out项目Mybatis的使用
  • MyBatis 动态 SQL:让 SQL 语句随条件灵活变化
  • Java面试宝典:Maven
  • UE5多人MOBA+GAS 番外篇:使用ECC(UGameplayEffectExecutionCalculation)制作伤害计算的流程
  • 【Java新特性】Java 17 新特性全解析
  • 嵌入式Linux:什么是线程?
  • Docker搭建Elasticsearch和Kibana
  • 图机器学习(12)——社区检测
  • 飞牛上使用Docker方式部署LibreTV,再配合内网穿透,实现免费无广告刷剧的服务教程
  • Oracle ADG 一键自动化搭建脚本
  • 【宇树科技:未来1-3年,机器人可流水线打螺丝】
  • Go语言实战案例-模拟登录验证(用户名密码)