zoukankan      html  css  js  c++  java
  • 愚人

    类似贪心。

    http://acm.nbu.edu.cn/v1.0/Problems/Problem.php?pid=2410

    View Code
    const int MM = 22222;
    int N,M;
    int cnt;
    int num[MM];
    struct Info {
        int val;
        int id;
        void reset() {
            val=maxint; id=-1;
        }
        bool friend operator<(Info x,Info y) {
            if(x.val!=y.val) return x.val<y.val;
            else return x.id<y.id;
        }
    }p[MM];
    char str[MM];
    int dp[111][111];
    
    vector<int>vec[2];
    void get_data() {
        int i,j,k,mx=-1,a;
        scanf("%d",&N);
        for(i=0;i<MM;i++) p[i].reset();
        for(i=0;i<N;i++) {
            scanf("%d",&p[i].val); 
            p[i].id=i;
        }
    //        printf("%d\n", cnt);
    //    sort(p,p+N);
            /*
        vec[0].clear();  vec[1].clear();
        for(i=0;i<N;i++) {
    //        scanf("%d",&a);
            a=rand()%MM+1;
            vec[0].push_back(a);
        }
        for(i=0;i<N;i++) printf("%d ",vec[0][i]); printf("\n");
        sort(vec[0].begin(),vec[0].end());
        do {
            int sum=0;
            for(i=0;i<N;i++) {
    //            printf("%d ",num[i]);
                if(i>0) sum+=f_max(vec[0][i],vec[0][i-1]);
            }
            if(mx==-1||mx>sum) {mx=sum; vec[1]=vec[0];}
        }while(next_permutation(vec[0].begin(),vec[0].end()));
        
        for(i=0;i<N;i++) printf("%d ",vec[1][i]); printf("\n");
        */
    }
    
    void solve() {    
        int i,j,k,tmp,cc=1;
        bool flag=true;
        printcase();
        bool vis[MM];
        memset(vis,false,sizeof(vis));
        printf("%d",p[0].id);
        tmp=p[0].val;   vis[0]=true;
        while(1) {
        if(cc>=N) break;
        flag=false;
        for(i=0;i<N;i++) {
            if(vis[i]) continue;
            if(p[i].val<=tmp) {cc++;flag=true;vis[i]=true;tmp=p[i].val;printf(" %d",p[i].id); break;} 
        }
        if(cc>=N) break;
        if(!flag) break;
        }
        Info ans[111]; int cnt=0;
        if(!flag && cc<N) {
            for(i=0;i<N;i++) {
                if(!vis[i]) ans[cnt++]=p[i];
            }
        }
        sort(ans,ans+cnt);
        for(i=0;i<cnt;i++) printf(" %d",ans[i].id);
        printf("\n");
    }
    
    //5 1 2 5 3 4
    int main() {
        //    freopen("input.txt","r",stdin);
        //    freopen("ouput.txt","w",stdout);
            int ca;  
            while(scanf("%d",&ca)!=EOF) {
                g=1;
            while(ca--)    get_data(),solve();
            }
        /*
        gets(str);
        for(int i=1;i<26;i++) {
            for(int j=0;str[j]!='\0';j++) {
        //        if(str[j]==' ') printf(" ");
                printf("%c",str[j]+i);
            }
            printf("\n");
        }
        */
        return 0;
    }
  • 相关阅读:
    python中使用cookies免登陆
    python中列表与元组的区别与转换
    python模块之mock
    python模块之Faker
    python模块之requests
    adb简单命令使用
    Mac下安装appium+python+Android sdk 环境完整流程
    git+pycharm结合使用
    github内的一些操作
    mac下git连接远程仓库gitee
  • 原文地址:https://www.cnblogs.com/zhang1107/p/2994382.html
Copyright © 2011-2022 走看看