zoukankan      html  css  js  c++  java
  • p1905

      这道题同样不难,按照题目给的意思模拟就好。然后我刚开始日常用sort排序,然后再模拟,理论上是没问题的,但是就……还是把代码贴出来看看。。。

    int i,f,n,t,tem;
    struct abc
    {
        int num;
        int r;
    }o[1010];
    bool mycmp(abc x,abc y)
    {
        if(x.r==y.r) return x.num<y.num;
        return x.r>y.r;
    }
    int main()
    {
    ios::sync_with_stdio(false);
    freopen("123.in","r",stdin);
        cin>>n>>t;
        for(i=1;i<=n;i++)
        {
            cin>>o[i].r;
            o[i].num=i;
        }
        for(;t>=1;t--)
        {
            sort(o+1,o+1+n,mycmp);
            cout<<o[1].num<<endl;
            tem=o[1].r/(n-1);
            for(f=2;f<=n;f++)
                o[f].r+=tem;
            if(o[1].r!=(n-1)*tem)
            {
                tem=o[1].r%(n-1);
                for(f=2;f<=n;f++)
                    if(o[f].num>=1&&o[f].num<=tem)
                        o[f].r++;
            }
            o[1].r=0;
        }
        return 0;  
    }  
    错了的

      虽然不应该用,但是基本上是对的。然而把稍微复杂的数据带进去就错了,还一直找不出原因。

      然后就罪恶的看了题解,明明和我想的一样啊?然后就更罪恶的看了别人的代码,哦……

      原来在处理余数的时候加到刚刚播放的那首的时候跳是跳了,但是相当于这一首没加上,以后还要加给别人。

      然后在改进了判断曲目的策略之后(只需要找到最大的那首,以后的都不需要排序)才有了正确解法。

    #include<iostream>
    #include<iomanip>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    int i,f,n,t,shang,yu,maxo;
    int  o[1010];
    int main()
    {
    ios::sync_with_stdio(false);
        cin>>n>>t;
        for(i=1;i<=n;i++)
        {
            cin>>o[i];
        }
        for(;t>=1;t--)
        {
            maxo=1;
            for(i=2;i<=n;i++)
            {
                if(o[i]>o[maxo])
                    maxo=i;
            }
            cout<<maxo<<endl;
    //////////////////////////
            shang=o[maxo]/(n-1);
            yu=o[maxo]%(n-1);
            o[maxo]=0;
            for(i=1;i<=n;i++)
            {
                if(i==maxo) i++;
                o[i]+=shang;
            }
            for(i=1;i<=yu;i++)
            {
                if(i==maxo) 
                {
                    yu++;
                    i++;
                }
                o[i]++;
            }
        }
        return 0;  
    }  
    正确的
  • 相关阅读:
    开发趋势
    常用的meta
    meta基础
    HTTP请求方法GET和POST
    same-origin policy----wikipedia
    跨域——同源策略(译)
    DNS问答
    TCP/IP的整理
    鉴权方法
    Web攻击技术---OWASP top
  • 原文地址:https://www.cnblogs.com/qywyt/p/9009840.html
Copyright © 2011-2022 走看看