• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Foreordination
酒后高歌磨剑,梦中快意恩仇,名利脚下踩,情义两肩挑
博客园    首页    新随笔    联系   管理    订阅  订阅
水题系列一:Circle

问题描述:Circle

小明在玩游戏,他正在玩一个套圈圈的游戏。他手里有 L 种固定半径的圆圈,每一种圆 圈都有其固定的数量。他要把这些圆圈套进 N 个圆形槽中的一个。这些圆形槽都有一个最 小半径和最大半径,他要套进去的圆圈半径必须在圈槽的最小半径和最大半径之间(含)。 圆形槽如图所示,绿色部分表示可以放圈圈。这 N 个圆形槽的最小半径和最大半径都不一 样。求最多可以放进去多少个圆圈。每一个圆形槽最多放一个圆圈。

数据输入

第 1 行是两个数 N 和 L。(1<=N,L<=2500) 第 2 行到第 N+1 行每行有两个数字,分别表示每一个圆形槽的最小半径和最大半径。 第 N+2 行到第 N+L+1 行每行有两个数字,分别表示每一种圆圈的半径和这种圆圈的数 量。 半径和圆圈均为 1 到 1000 的整数。 ★结果输出: 输出一个整数 S,表示最多可以放进去的圆圈数。  

输入示例

输出示例 3 2 3 10 2 5 1 5 6 2 4 1 2

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<string>
#include<map>
#include<algorithm>
using namespace std;
struct circle
{
    int le,ri;
    int isUsed;
}chao[2505];
bool compareCircle(struct circle a,struct circle b)
{
    if(a.ri<b.ri)return true;
    if(a.ri==b.ri)return a.le<b.le;
    return false;
}
int main()
{
    int N,L;
    int i;
    scanf("%d%d",&N,&L);
    for(int i=0;i<N;i++)
    {
        scanf("%d%d",&chao[i].le,&chao[i].ri);
    }
    sort(chao.chao+N,compareCircle);
    int quan[1005];
    //init
    for(int i=1;i<=1000;i++)
    {
        quan[i]=0;
    }
    for(int j=0;j<l;j++)
    {
        int a,b;
        scanf("%d%d",&a,&b);
        quan[a]+=b;
    }
    int sum=0;
    //以要放入的圆圈为主,去放到槽中
    for(int k=1;k<=1000;k++)
    {
        if(quan[k]==0)continue;
        for(int t=0;t<N;t++)
        {
            if(chao[t].isUsed==0)
            {
                if(chao[t].le<=k&&chao[t].ri>=k)
                {
                    chao[t].isUsed=1;
                    sum++;
                    quan[k]--;
                    if(quan[k]==0)break;
                }
            }
        }
    }
    printf("%d",sum);
    reurn 0;
}

 

posted on 2018-07-20 19:00  Foreordination  阅读(181)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3