题意简述:给你一个长度为\(N\)的整数序列\(x\),请判断是否存在一个满足下列条件的整数序列\(a\),如果存在,请构造一种方案。

1.\(a\)的长度为\(N^2\)并且满足数字\(1,2,3,\cdots,N\)都各出现恰好\(N\)次

2.对于\(1<=i<=N\),数字\(i\)在\(a\)中第\(i\)次出现的位置是\(x_i\)

我他么写这种傻逼题写了1.5h,cao

非常简单,我们可以考虑贪心,将二元组\((x,i)\)按\(x\)排序,然后\(x_i\)放\(i\),前面暴力放最前面空的\(i-1\)个,再倒着做一遍就可以了

时间复杂度\(O(N^3)\)

#include<cstdio>
#include<algorithm>
using namespace std;
const int N=510;
struct fk{int x,id;}q[N];
int n,a[N*N],cnt[N],flag;
bool cmp(fk a,fk b){return a.x<b.x;}
int main(){scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&q[i].x),q[i].id=i;sort(q+1,q+n+1,cmp);for(int i=1;i<=n;i++){int id=q[i].id;a[q[i].x]=id;++cnt[id];for(int j=1;j<q[i].x;j++){if(cnt[id]==id)break;if(!a[j])a[j]=id,++cnt[id];}if(cnt[id]<id)flag=1;}if(flag){puts("No");return 0;}flag=0;for(int i=n;i>=1;i--){int id=q[i].id;for(int j=n*n;j>q[i].x;j--){if(cnt[id]==n)break;if(!a[j])a[j]=id,++cnt[id];}if(cnt[id]<n)flag=1;}if(flag){puts("No");return 0;}puts("Yes");for(int i=1;i<=n*n;i++)printf("%d ",a[i]);puts("");
}

转载于:https://www.cnblogs.com/yxc2003/p/10725970.html

AGC008D K-th K相关推荐

  1. C语言学习之求∑k(k=100)+∑K*k(k=50)+∑1/k(k=10)

    求∑k(k=100)+∑K*k(k=50)+∑1/k(k=10) #include <stdio.h> #include <math.h> void main(){double ...

  2. C语言学习之编程实现:输入长方形的两个边长a, b和一个整数k。k=1时,输出长方形的周长 l; k=2时 ,输出长方形的面积s;当k=3时 , 输出长方形的周长1和面积s

    C语言学习 编程实现:输入长方形的两个边长a, b和一个整数k.k=1时,输出长方形的周长 l; k=2时 ,输出长方形的面积s;当k=3时 , 输出长方形的周长1和面积s #include < ...

  3. Macbook pro笔记本键盘失灵了(u,i,o,j,k,l,k,m无效了)解决办法

    今天在使用Macbook pro时,突然发现键盘失灵了,(u,i,o,j,k,l,k,m无效了),经过寻找一阵资料发现,原来是开启了鼠标键. 解决方法如下: 在辅助功能-鼠标与触摸板-启用鼠标键,关掉 ...

  4. ++k与k++区别 和双目运算符结合

    最近在写代码时发现了这样一个错误: 题目如下: 链接: Hdu 1027 关键代码如下: int k=1; while(next_permutation(s.begin(),s.end())){if( ...

  5. MRR@K P@K R@K意义阐述与对比

    文章目录 概述 @K是什么 举例 P@5 R@5 MRR@5 讨论 P@K R@K区别 MRR 概述 首先需要说的是,这几个东西都是评价标准,在我当前工作的领域而言,其衡量的是推荐系统的性能.我们介绍 ...

  6. KMP算法图文详解(为什么是next[0]=-1、next[j]=k和k=next[k])

    文章目录 一:KMP算法解决的问题 二:详解KMP (1)暴力匹配的缺点 (2)最长相同前缀和后缀 (3)究竟怎么回溯 (3)next数组 (4)求解next数组 A:next[0]=-1 B:nex ...

  7. 用c语言编写程序,求∑(k=1~100)k+∑(k=1~50)k2,c语言程序,求(100∑k=1 k)+(50∑k=1 k^2)+(10∑k=1 1/k) 这...

    满意答案 myhso 2015.10.31 采纳率:54%    等级:8 已帮助:1060人 主函数main没有定义,在c语言中 两个整数相除返回整数 1/1 结果为 1 ,1/2,1/3结果为0, ...

  8. C语言之int k,j,s; for (k=2;k6;k++,k++)/*for(k=2;k6;k=k+2)*/ {s=1; for(j=k;j6;j++) s+=j; }输出结果为10

    #include <stdio.h> int main(){ int k,j,s; for (k=2;k<6;k++,k++)/*for(k=2;k<6;k=k+2)*/ {s ...

  9. k、K、kb、kB、Kb、KB、GB、MB之间的关系

    1.k和K的区别: k当作十进制下的进位看待,即 1k=1000,即要到999+1后才是1000. K当作二进制中2^10看待,即1024,1K=1024,即要到1023+1后才是1024:2.b和B ...

  10. PRML第九章读书笔记——Mixture Models and EM K均值/K中心点、高斯混合奇异性、EM观点下的高斯混合/K-means/混合伯努利分布/贝叶斯线性回归、推广EM算法

    目录 9.1 K-means Clustering P429 K中心点算法K-medoids 9.2 Mixtures of Gaussians P433 高斯混合的奇异性 9.3 An Altern ...

最新文章

  1. k8s核心组件详细介绍教程(配超详细实例演示)
  2. 收藏 | 卷积神经网络 C++ 从零开始实现
  3. R语言dplyr包的slice函数提取数据集的数据行实战
  4. 设计模式-单例模式(1)
  5. 分支管理---分支管理策略
  6. 计算机网络线路争用,计算机网络系统集成复习要点
  7. windows7更改开始菜单外观的方法
  8. exp.validate.js
  9. ipconfig和ping 命令的各种参数
  10. SQL中SELECT INTO和INSERT INTO SELECT语句介绍
  11. C# 数组拷贝 byte数组拷贝,char数组拷贝
  12. 入门OJ:photo
  13. Autodesk 3DMax2023下载安装教程
  14. 中兴F450电信光猫改桥接模式
  15. 打开计算机出现酷我音乐删不掉,删除 “我的电脑” 里的 “酷我音乐” 快捷方式...
  16. 面试经常考的五个Sql查询
  17. pandas中关于nan的处理
  18. 这些华为技巧,花粉都不一定全知道
  19. 对于给定的一个百分比制成绩,输出相应的五分制成绩
  20. NEO改进协议提案2(NEP-2) 1

热门文章

  1. 数据结构 - 树(二叉树的 前序、中序、后序 遍历)
  2. HDFS--分布式文件系统
  3. linux禁止u盘自动运行,求设置U盘自动运行和禁止运行的方法。
  4. mysql2005触发器修改成绩_创建、更改和删除触发器
  5. 【CodeForces - 1038A 】Equality (思维水题,预处理字符串)
  6. Apollo进阶课程㊱丨Apollo ROS深入介绍
  7. 机器学习笔记(十):机器学习系统的设计
  8. mysql8 授权远程登录_MySQL8 远程授权访问
  9. android 通讯录 备份,安卓Android手机通讯录怎么备份 卓联系人备份 卓手机联系人导出...
  10. git 怎么提交忽略文件夹_git 设置忽略文件提交的几种方式