zoukankan      html  css  js  c++  java
  • poj2454

    我不会告诉你我对我自己的想法笑了一下午的。。

    #include <iostream>
    #include <algorithm>
    #include <time.h>
    #include <string.h>

    using namespace std;

    typedef struct select
    {
        int id;
        int num;
    }sel;

    bool comp(sel a, sel b)
    {
        return a.num < b.num;
    }

    int main()
    {
        int k;
        while (cin >> k)
        {
            sel cow[200];
            for (int i = 0; i < k * 3; i++)
            {
                cin >> cow[i].num;
                cow[i].id = i + 1;
            }
            sort(cow, cow + k * 3, comp);
            srand((unsigned) time(NULL));
            while (1)
            {
                int i = rand() % (k) + k;
                int j = rand() % (k) + 2 * k;
                //cout << i << ' ' << j << endl;
                swap(cow[i], cow[j]);
                int temp1 = 0;
                int temp2 = 0;
                for (int a = k; a < 2 * k; a++) 
                {
                    temp1 += cow[a].num;
                }
                for (int a = 2 * k; a < 3 * k; a++)
                {
                    temp2 += cow[a].num;
                }
                if ((temp1 > 500 * k) && (temp2 > 500 * k))
                {
                    for (int a = 0; a < k * 3; a++)
                    {
                        cout << cow[a].id << endl;
                    }
                    break;
                }
            }
        }
    }

    貌似升序更快

    #include <iostream>
    #include <algorithm>
    #include <time.h>
    #include <string.h>

    using namespace std;

    typedef struct select
    {
        int id;
        int num;
    }sel;

    bool comp(sel a, sel b)
    {
        return a.num > b.num;
    }

    int main()
    {
        int k;
        while (cin >> k)
        {
            sel cow[200];
            for (int i = 0; i < k * 3; i++)
            {
                cin >> cow[i].num;
                cow[i].id = i + 1;
            }
            sort(cow, cow + k * 3, comp);
            srand((unsigned) time(NULL));
            while (1)
            {
                int i = rand() % (k);
                int j = rand() % (k) + k;
                //cout << i << ' ' << j << endl;
                swap(cow[i], cow[j]);
                int temp1 = 0;
                int temp2 = 0;
                for (int a = 0; a < k; a++)
                {
                    temp1 += cow[a].num;
                }
                for (int a = k; a < 2 * k; a++)
                {
                    temp2 += cow[a].num;
                }
                if ((temp1 > 500 * k) && (temp2 > 500 * k))
                {
                    for (int a = 0; a < k * 3; a++)
                    {
                        cout << cow[a].id << endl;
                    }
                    break;
                }
            }
        }
    }


  • 相关阅读:
    boxShadow通用css效果
    electron安装+运行+打包成桌面应用+打包成安装文件+开机自启动
    electron-vue项目创建失败
    dpr——设备像素比(device pixel ratio)
    electron与vue集成
    一文让你理解vue history和hash模式实现
    vue router生命周期说明
    Vue keep-alive实践总结
    Vuejs路由过度动画
    ReactJS 的5种路由模式
  • 原文地址:https://www.cnblogs.com/james1207/p/3362332.html
Copyright © 2011-2022 走看看