• 洛谷魔法照片题解


    #include<algorithm>
    using namespace std;
    int extra[11],initial[20001],order[20001];
    bool cmp(int a,int b)
    {   
        if(initial[a]==initial[b])	return a<b;//从大到小排序 
        else	return initial[a]>initial[b];//序号小优先
    }
     
    int main()
    {
        
        int n,k;
        int i;
        
        cin>>n>>k;
        for(i=1;i<=10;i++)	cin>>extra[i];
        for(i=1;i<=n;i++)	
        {
            cin>>initial[i];
            order[i]=i;
        }
     
        sort(order+1,order+n+1,cmp);//第一次排序
        for(i=1;i<=n;i++)//分类处理
            	initial[order[i]]+=extra[(i-1)%10+1];
        sort(order+1,order+n+1,cmp);//第二次排序
        
        for(i=1;i<=k;i++)
        	cout<<order[i]<<" ";
        cout<<endl;
        	
        return 0;
    }
    
    做了下魔法照片,本来是想用vector去做的,但是发现有些麻烦,现在还是离不开数组。
    这道题做得时候是有思路的,我的想法是二维数组和结构体直接上,后来发现题解中有用sort去做;
    思路比较特别,深思。
  • 相关阅读:
    http返回码
    WCF 超时
    MVC异步
    熔断设计模式
    JAVA学习图
    java io模型
    keep alive 长连接
    Java异常处理 误区
    架构的本质
    Repository模式
  • 原文地址:https://www.cnblogs.com/lwt99/p/13996193.html
Copyright © 2020-2023  润新知