• ZOJ 3508 (the war)


    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3508

    注意:题意:有N个士兵,其中第 Ni 个士兵能拿起武器重量的范围为(w-Min, w-Max), 然后又给出了M件武器,重量分别为Mi(i=1,2,3,...),因为有武器的士兵的人数越多,战争越容易胜利,所以求最多可以有多少个士兵能配武器。


    #include<string.h>
    #include<stdio.h>
    #include<algorithm>
    
    using namespace std;
    struct node{
        int l, r;
    }ss[3000], temp;
    
    //int cmp(int a,int b)
    //{
      //  return a<b;
    //}
    
    int main()
    {
        int n, m, cnt, i, j, t;
        int a[100000];
        while(scanf("%d %d", &n, &m)!=EOF)
        {
            cnt = 0;
            memset(a, 0, sizeof(a));
    
            for(i=0; i<n; i++)
                scanf("%d %d", &ss[i].l, &ss[i].r);
      // 实现区间由小到大排序,以右区间为准进行排序, 如果右区间相同,则以左区间进行由大到小的排序。
            for(i=0; i<n-1; i++)
                for(j=i+1; j<n; j++)
            {
                if(ss[i].r > ss[j].r)
                {
                    temp = ss[i];
                    ss[i] = ss[j];
                    ss[j] = temp;
                }
                if(ss[i].r == ss[j].r)
                {
                    if(ss[i].l > ss[j].l)
                    {
                        temp = ss[i];
                        ss[i] = ss[j];
                        ss[j] = temp;
                    }
                }
            }
    //哈希,存一下武器的数量
            for(i=0; i<m; i++)
            {
                scanf("%d", &t);
                a[t]++;
            }
    
           // sort(a, a+m, cmp);
    
            for(i=0; i<n; i++)
            {
                int ll=ss[i].l, rr=ss[i].r;
                for(j=ll; j<=rr; j++)
                {
                     if(a[j])//如果在此区间里存在可配备武器的士兵,则计数变量cnt++,然后对应的下表的武器数减 1 。
                    {
                        a[j]--;
                        cnt++;
                        break;
                    }
                }
            }
            printf("%d
    ", cnt);
        }
        return 0;
    }
    


    每天训练发现我比别人做的好慢,但是理解的更深刻,如果一开始学一个新知识点就搜模板,那么这样的人是走不远的,毕业之后带走的只有思维,什么荣誉,奖杯都已经不重要了。
  • 相关阅读:
    ACS 20070108 更新
    道德沦丧 还是意识淡薄
    Alienwave.CommunityServer 20070103 更新
    无题
    《白马啸西风》之李文秀
    突然感觉自己像拉皮条的
    数据库日志文件(x.ldf)如何打开?
    调试.NET出错
    老大离开南京了
    最近太任性了
  • 原文地址:https://www.cnblogs.com/6bing/p/3931236.html
Copyright © 2020-2023  润新知