题目描述

一共有n(n≤20000)个人(以1–n编号)向佳佳要照片,而佳佳只能把照片给其中的k个人。佳佳按照与他们的关系好坏的程度给每个人赋予了一个初始权值W[i]。然后将初始权值从大到小进行排序,每人就有了一个序号D[i](取值同样是1–n)。按照这个序号对10取模的值将这些人分为10类。也就是说定义每个人的类别序号C[i]的值为(D[i]-1) mod 10 +1,显然类别序号的取值为1–10。第i类的人将会额外得到E[i]的权值。你需要做的就是求出加上额外权值以后,最终的权值最大的k个人,并输出他们的编号。在排序中,如果两人的W[i]相同,编号小的优先。

输入输出格式

输入格式:
第一行输入用空格隔开的两个整数,分别是n和k。

第二行给出了10个正整数,分别是E[1]到E[10]。

第三行给出了n个正整数,第i个数表示编号为i的人的权值W[i]。

输出格式:
只需输出一行用空格隔开的k个整数,分别表示最终的W[i]从高到低的人的编号。

输入输出样例

输入样例#1:
10 10
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
输出样例#1:
10 9 8 7 6 5 4 3 2 1


快排后模拟。


代码如下:

var  e:array[1..10]of longint;a,b:array[1..50000]of longint;n,k,i:longint;procedure sort(l,r: longint);
vari,j,x,y,z: longint;
begini:=l;j:=r;z:=b[(l+r) div 2];x:=a[(l+r) div 2];repeatwhile (a[i]>x)or(a[i]=x)and(b[i]<z) do inc(i);while (x>a[j])or(b[j]>z)and(a[j]=x) do dec(j);if not(i>j) thenbeginy:=a[i];a[i]:=a[j];a[j]:=y;y:=b[i];b[i]:=b[j];b[j]:=y;inc(i);j:=j-1;end;until i>j;if l<j then sort(l,j);if i<r then sort(i,r);
end;beginreadln(n,k);for i:=1 to 10 do read(e[i]);for i:=1 to n do begin read(a[i]); b[i]:=i; end;sort(1,n);for i:=1 to n do inc(a[i],e[(i-1) mod 10+1]);sort(1,n);for i:=1 to k do write(b[i],' ');
end.

转载于:https://www.cnblogs.com/Comfortable/p/8412423.html

洛谷 1583——魔法照片(排序Ex)相关推荐

  1. 洛谷 P1583 魔法照片

    P1583 魔法照片 题目描述 一共有n(n≤20000)个人(以1--n编号)向佳佳要照片,而佳佳只能把照片给其中的k个人.佳佳按照与他们的关系好坏的程度给每个人赋予了一个初始权值W[i].然后将初 ...

  2. 洛谷——P1583 魔法照片

    题目描述 一共有n(n≤20000)个人(以1--n编号)向佳佳要照片,而佳佳只能把照片给其中的k个人.佳佳按照与他们的关系好坏的程度给每个人赋予了一个初始权值W[i].然后将初始权值从大到小进行排序 ...

  3. 二分图——洛谷P1155 双栈排序

    https://daniu.luogu.org/problem/show?pid=1155 二分图染色+模拟 1.首先考虑一个简单情况--单栈排序,显然有这样的一个事实: a[i]和a[j] 不能压入 ...

  4. 洛谷P1155 双栈排序

    这题什么毒瘤......之前看一直没思路,然后心说写个暴搜看能有多少分,然后就A了??! 题意:给你一个n排列,求它们能不能通过双栈来完成排序.如果能输出最小字典序方案. [update]这里面加了一 ...

  5. 洛谷P1073 Tarjan + 拓扑排序 // 构造分层图

    https://www.luogu.org/problemnew/show/P1073 C国有 n n个大城市和 mm 条道路,每条道路连接这 nn个城市中的某两个城市.任意两个城市之间最多只有一条道 ...

  6. P1068 分数线划定 洛谷 (C++)(结构体排序)

    简单的结构体排序,代码如下 #include <iostream> #include <cstdio> #include <algorithm> #include ...

  7. 洛谷——P1155 双栈排序

    题目描述 Tom最近在研究一个有趣的排序问题.如图所示,通过2个栈S1和S2,Tom希望借助以下4种操作实现将输入序列升序排序. 操作a 如果输入序列不为空,将第一个元素压入栈S1 操作b 如果栈S1 ...

  8. 洛谷B2095 白细胞计数(sort排序)

    题目描述 医院采样了某临床病例治疗期间的白细胞数量样本 n份,用于分析某种新抗生素对该病例的治疗效果.为了降低分析误差,要先从这 n 份样本中去除一个数值最大的样本和一个数值最小的样本,然后将剩余 n ...

  9. [洛谷P1822]魔法指纹

    题目传送门 这道题事实上解并不多,所以我们倒过来从$7$开始搜索.主过程中为广搜,而函数深搜进行拓展.其实是对于前导$0$删去的情况也要考虑,否则只有$20pts$. 最后别忘了判断$7$在不在$[A ...

  10. [dfs] 洛谷 P1822 魔法指纹

    题目描述 对于任意一个至少两位的正整数n,按如下方式定义magic(n):将n按十进制顺序写下来,依次对相邻两个数写下差的绝对值.这样,得到了一个新数,去掉前导0,则定义为magic(n).若n为一位 ...

最新文章

  1. ASP.Net中让网页“立即过时”
  2. Ajax跨域请求,无法传递及接收cookie信息解决方案
  3. 爱说说技术原理:与TXT交互及MDataTable对Json的功能扩展(二)
  4. ubuntu16.4中创建帐户
  5. 【BZOJ1814】Ural 1519 Formula 1 插头DP
  6. httrack 拷贝网站到本地(好东西,但是发现考的不全)
  7. CVPR2019 | 弱监督图像分类建模
  8. java static 可见性_中级Java应该清楚的概念:原子性、可见性、有序性是什么?...
  9. 用友加密狗显示停止服务器,插上加密狗打开用友,显示下图,请问如何解决问题...
  10. C#中具有进程间通信的Singleton应用程序
  11. post 261.html,261除以6约等于
  12. java进程里面调用方法_在java里面调用CUI程序的方法
  13. Linux下用ImageMagick将彩色照片转换成黑白照片
  14. (day 38 - 双指针) 剑指 Offer 52. 两个链表的第一个公共节点
  15. 释放tcp连接的命令是_TCP协议详解
  16. vue实时显示当前时间
  17. Python绘图实例35:漫天雪花绘制
  18. Windows 2000/XP IIS5.1安装
  19. 微信订阅号和服务器,微信订阅号与服务号有什么不同?
  20. PHP 十六大魔术方法学习

热门文章

  1. Tomcat详解(六)——Tomcat运行模式调优
  2. 边缘计算的前景和挑战
  3. 威胁情报工具:更快?更聪明?
  4. 《Effective C++》 读书笔记之三 资源管理
  5. 仿Android6.0联系人列表
  6. 两种方法求单链表逆序
  7. java 出栈_Java开发中巧妙使用链表来实现模拟栈的入栈出栈操作
  8. java 一元线性回归_Java中的多元线性回归
  9. 用sqoop从mysql导数hive_使用sqoop从mysql导入到hive基本操作
  10. python如何删除对象属性_如何销毁python中属性中的对象?