当前位置: 首页 > 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.xdnf.cn/news/1146763.html

相关文章:

  • VMC850立式加工中心Y轴传动机械结构设计cad【7张】三维图+设计说明书
  • DTW算法解决时序问题的解析实践
  • JavaSE -- 数组详细讲解(数组介绍,Arrays常用方法,二维数组创建)
  • Spring中的设计模式
  • pom.xml文件中的${}变量从哪里传值
  • 基于Qwen2.5-3B-Instruct的LoRA微调与推理实战指南
  • js中的微任务和宏任务的理解
  • 读书笔记:《动手做AI Agent》
  • Android性能优化之UI渲染优化
  • LP-MSPM0G3507学习--05中断及管脚中断
  • CMake指令:常见内置命令行工具( CMake -E )
  • math.h函数
  • CCF编程能力等级认证GESP—C++3级—20250628
  • 20250718-3-Kubernetes 应用程序生命周期管理-Pod对象:存在意义_笔记
  • MyBatis-Flex代码生成
  • jvm分析篇---1、先认识下dump文件
  • b-up:Enzo_Mi:深度学习基础知识
  • 【C语言进阶】题目练习(2)
  • 【51】MFC入门到精通——MFC串口助手(一)---初级版(初始化、串口设置、修改参数、打开/关闭、状态显示),附源码
  • 机器学习基础:线性回归算法详解(原理+代码+实战)
  • Proto文件从入门到精通——现代分布式系统通信的基石(含实战案例)
  • 数据库模型异常问题深度解析:冗余与操作异常
  • 柴油机活塞cad【4张】三维图+设计说明书
  • 小架构step系列18:工具
  • 《每日AI-人工智能-编程日报》--2025年7月18日
  • 【洛谷P1417】烹调方案 题解
  • SQL注入基础尝试
  • 71 模块编程之新增一个字符设备
  • ArcGIS Pro+PS 实现地形渲染效果图
  • 上网行为管理-web认证服务