P1583 魔法照片

链接:P1583

-----------------------------------

一道非常水,非常恶心的大模拟

快速排序拯救世界的题

------------------------------------

看体面,什么w,e,d,c真多,然而事实上,我们只要用一个结构体存下编号和w,然后按照题意

模拟,最后加上e就行了

读懂题面是这道题的最大难点

--------------------------------------

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstdio>
 4 using namespace std;
 5 const int maxn=20001; 
 6 int n,k;
 7 int e[20];
 8 int w[20001];
 9 struct peo{
10     int num;
11     int v;
12 }w1[maxn];
13 bool cmp(peo x,peo y){
14     if(x.v==y.v)
15     return x.num<y.num;
16     else
17     return x.v>y.v;
18 }
19 int main(){
20     scanf("%d%d",&n,&k);
21     for(int i=1;i<=10;++i){
22         scanf("%d",&e[i]);
23     }
24     for(int i=1;i<=n;++i){
25         scanf("%d",&w[i]);
26         w1[i].num=i;
27         w1[i].v=w[i];
28     }
29     sort(w1+1,w1+n+1,cmp);
30     for(int i=1;i<=n;++i){
31         w1[i].v+=e[(i-1)%10+1];
32     }
33     sort(w1+1,w1+n+1,cmp);
34     for(int i=1;i<=k;++i)
35     cout<<w1[i].num<<" ";
36     return 0;
37 }
Ac
原文地址:https://www.cnblogs.com/For-Miku/p/11377094.html