练习1-i

来源:互联网 发布:工作日志软件哪个好 编辑:程序博客网 时间:2024/05/17 01:06

题目:Problem I

Problem Description
There is a pile of n wooden sticks. The length and weight of each stick are known in advance. The sticks are to be processed by a woodworking machine in one by one fashion. It needs some time, called setup time, for the machine to prepare processing a stick. The setup times are associated with cleaning operations and changing tools and shapes in the machine. The setup times of the woodworking machine are given as follows:
(a) The setup time for the first wooden stick is 1 minute.
(b) Right after processing a stick of length l and weight w , the machine will need no setup time for a stick of length l' and weight w' if l <= l' and w <= w'. Otherwise, it will need 1 minute for setup.
You are to find the minimum setup time to process a given pile of n wooden sticks. For example, if you have five sticks whose pairs of length and weight are ( 9 , 4 ) , ( 2 , 5 ) , ( 1 , 2 ) , ( 5 , 3 ) , and ( 4 , 1 ) , then the minimum setup time should be 2 minutes since there is a sequence of pairs ( 4 , 1 ) , ( 5 , 3 ) , ( 9 , 4 ) , ( 1 , 2 ) , ( 2 , 5 ) .
 

Input
The input consists of T test cases. The number of test cases (T) is given in the first line of the input file. Each test case consists of two lines: The first line has an integer n , 1 <= n <= 5000 , that represents the number of wooden sticks in the test case, and the second line contains 2n positive integers l1 , w1 , l2 , w2 ,..., ln , wn , each of magnitude at most 10000 , where li and wi are the length and weight of the i th wooden stick, respectively. The 2n integers are delimited by one or more spaces.
 

Output
The output should contain the minimum setup time in minutes, one per line.
 

Sample Input
3 5 4 9 5 2 2 1 3 5 1 4 3 2 2 1 1 2 2 3 1 3 2 2 3 1
 

Sample Output
213

题意:

       之前的原题。

思路:

        虽然是原题,之前做过,但是贴代码是居然不能通过,很是郁闷,之后从网上找了几组数据测试了一下,终于把错误找出来了!!原来是在写排序函数时少写了个条件,当木头的长度相同时还需要对其重量进行排序!!

感想:

       拖延症害死人;

代码:
# include <iostream># include <vector># include <algorithm># include <fstream>using namespace std;struct wooden{    int l;    int w;    int nu;    bool operator < (const wooden &a) const    {        if(l ==  a.l)            return w <= a.w;        return l <= a.l;    }};int main(){    //ifstream cin ("b.txt");    vector<wooden> wo;    wooden wwo;    int n;    cin >> n;    while(n--)    {        wo.clear();        int m;        cin >> m;        while (m--)        {            cin >> wwo.l >> wwo.w;            wwo.nu = 1;            wo.push_back(wwo);        }        sort (wo.begin(), wo.end());        //for (int i = 0; i < wo.size(); i++)           // cout << wo[i].l <<" " << wo[i].w<<endl;        int time = 0;        for (int i = 0; i < wo.size(); i++)        {            if (wo[i].nu == 0)                continue;            time ++;            int count = i;            for (int j = 0; j < wo.size(); j++)            {                if (wo[count].w <= wo[j].w && wo[j].nu != 0)                {                    wo[j].nu = 0;                    count = j;                }            }        }        cout << time <<endl;    }    return 0;}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 电卡消磁了怎么办妙招 入园磁卡消磁了怎么办 透析中静脉压高怎么办 腰间盘突出压迫神经腿疼怎么办 肺热引起的发烧怎么办 肺热引起的痘痘怎么办 冰箱压条的霉点怎么办 白色的布鞋变黄怎么办 白鞋橡胶变黄了怎么办 肝功能检查总胆汁酸高怎么办 吃丹参滴丸尿血怎么办 胰酶消化过久怎么办 抗凝血酶活性低怎么办 抗凝血酶3偏低怎么办 抗凝血酶ⅲ低 怎么办 抗凝血酶3抗原高怎么办 孕32周血压高怎么办 智齿血凝块掉了怎么办 入职体检alt偏高怎么办 剖腹产后crp值高怎么办 超敏c反应蛋白偏高怎么办 孕妇c反应蛋白高怎么办 婴儿超敏crp偏高怎么办 小孩c反应蛋白高怎么办 发烧c反应蛋白高怎么办 孕妇快生了贫血怎么办 小孩吃糖牙齿痛怎么办 前门牙掉了一块怎么办 吃冷东西牙疼怎么办 吃甜的立刻牙疼怎么办 吃甜的牙疼怎么办 孕妇甲功t4偏低怎么办 得了肝内钙化灶怎么办 喝了除垢剂的水怎么办 喝甘露醇后吐了怎么办 文玩核桃盘黑了怎么办 尿酸高了50点怎么办 尿蛋白4个加号怎么办 24小时尿蛋白高怎么办 孕妇尿蛋白2加号怎么办 孕妇尿白细胞2是怎么办