今年暑假不AC(贪心) 和 冒泡做法

#include <iostream>
#include <algorithm>

using namespace std;

const int N = 100010;

int n;
struct Range
{
    int l, r;
    bool operator < (const Range & W)const
    {
        return r < W.r;
    }
}range[N];
//const Range &W 其实就是用Range类型定义了一个W
//
//这跟你平时用 int W是一个道理,
//只不过这里的Range是一个类,所以最好加上引用&以及const

int main()
{
    scanf("%d", &n);
    for (int i = 0; i < n; i ++ ) scanf("%d%d", &range[i].l, &range[i].r);

    sort(range, range + n);

    int res = 0, ed = -2e9;
    for (int i = 0; i < n; i ++ )
        if (range[i].l >= ed)
        {
            res ++ ;
            ed = range[i].r;
        }

    printf("%d\n", res);

    return 0;
}

法二:

#include <iostream>
using namespace std;
int main()
{
    while(1)
    {
         
        int n;
        cin >> n;
        if(n==0)
        break;
        int q[n][2];        
         
            for(int  i = 0; i < n ; i ++)
            for(int  j= 0 ; j < 2 ; j ++) 
            cin >> q[i][j];
         
        for(int i = 0 ; i < n - 1; i ++)
        {
            for(int j = i+1 ;j < n; j ++)
            {
                if(q[i][1] > q[j][1])
                {
                    swap(q[i][1],q[j][1]); 
                    swap(q[i][0],q[j][0]); 
                }
     
            }
        }
         
        int t = 1;
        for(int i = 1 ; i < n ; i ++)
        {
            if(q[i-1][1]<=q[i][0])
            t++;
            else
            {
                q[i][1]=q[i-1][1];
                q[i][0]=q[i-1][0];
            }
 
        }
        cout << t << endl;
    }
 
}
 
上一篇:Android官方开发文档Training系列课程中文版:连接无线设备之网络服务搜索功能


下一篇:使用paypal的手续费