• NYOJ 题目 236 心急的C小加


    描述:

    C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间,如果第i+1个木棒的重量和长度都大于等于第i个处理的木棒,那么将不会耗费时间,否则需要消耗一个单位的时间。因为急着去约会,C小加想在最短的时间内把木棒处理完,你能告诉他应该怎样做吗?

    输入
    第一行是一个整数T(1<T<1500),表示输入数据一共有T组。
    每组测试数据的第一行是一个整数N(1<=N<=5000),表示有N个木棒。接下来的一行分别输入N个木棒的L,W(0 < L ,W <= 10000),用一个空格隔开,分别表示木棒的长度和质量。
    输出
    处理这些木棒的最短时间。
    样例输入
    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 
    
    样例输出
    2
    1
    3
    //AC

    #include<cstdio>
    #include<algorithm>
    #include<iostream>
    using namespace std;
    struct note
    {
    int x,y;
    }a[5005];
    int M(note a,note b)
    {
    if(a.x!=b.x)
    return a.x<b.x;//长度从小到大 捧碰到长度一致的 按照重量从小到大
    else return a.y<b.y;
    }
    int main()
    {
    int T,i,t,d;
    scanf("%d",&T);
    while(T--)
    {
    int n,sum=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    scanf("%d %d",&a[i].x,&a[i].y);
    sort(a,a+n,M);
    for(i=0;i<n;i++)
    {
    int t,j;
    if(a[i].y!=0)//判断标记的访问过的点是否符合条件
    {
    sum++;
    t=a[i].y;
    for(j=i+1;j<n;j++)//遍历数组,最大的找出子序列
    {
    if(a[j].y>=t)
    {
    t=a[j].y;
    a[j].y=0;//标记已经被访问
    }
    }
    }
    }
    printf("%d ",sum);
    }
    }

  • 相关阅读:
    使用 ant-design/pro-table
    cross-env 根据环境打包
    React 生成图片验证码组件使用
    一些常用的命令行
    react-grid-layout
    vsCode 常用快捷键(mac 版)
    mac 使用命令行,对远程服务器进行文件更新
    原生js 平滑滚动到页面的某个位置
    html2canvas 导出包含滚动条的内容
    react 中的 PureComponent
  • 原文地址:https://www.cnblogs.com/hys1258414454/p/7262191.html
Copyright © 2020-2023  润新知