首页 > 其他分享 >[2008年NOIP普及组] 排座椅

[2008年NOIP普及组] 排座椅

时间:2022-08-14 08:44:07浏览次数:67  
标签:NOIP int max a1 座椅 b1 y1 2008 y2

[2008年NOIP普及组] 排座椅

思路:本题考察的是贪心和排序

代码如下:

#include<bits/stdc++.h>

using namespace std;

int ak[1005],al[1005];//横排的前k个 、纵排的前l个

int a1[1005],b1[1005];//横纵坐标出现的次数

int main()

{

      int m,n,k,l,d;

      int x1,x2,y1,y2;

      cin>>m>>n>>k>>l>>d;

      for(int i=1;i<=d;i++)//统计横纵坐标出现的次数

      {

           cin>>x1>>y1>>x2>>y2;

           if(x1==x2)

            b1[(y1>y2)?y2:y1]++;

           else if(y1==y2)

            a1[(x1>x2)?x2:x1]++;

       }

      for(int i=1;i<=k;i++)//通过比较大小,拿到a1数组(横坐标)中的前k值

      {

           int max=0,x;

           for(int j=1;j<=m;j++)

           {

                 if(a1[j]>max)

                 {

                   max=a1[j];

                   x=j;}

            }

           ak[i]=x;

           a1[x]=0;

      }

      for(int i=1;i<=l;i++)//通过比较大小,拿到b1数组(纵坐标)中的前l值

      {

           int max=0,x;

           for(int j=1;j<=n;j++)

           {

                 if(b1[j]>max)

                  {

                    max=b1[j];

                    x=j;}

            }

           al[i]=x;

           b1[x]=0;

      }

      sort(ak+1,ak+1+k);

      sort(al+1,al+1+l);

      for(int i=1;i<=k;i++)

         cout<<ak[i]<<" ";

      cout<<endl;

      for(int i=1;i<=l;i++)

         cout<<al[i]<<" ";

      cout<<endl;

      return 0;

 }

标签:NOIP,int,max,a1,座椅,b1,y1,2008,y2
From: https://www.cnblogs.com/xdzxyingrui/p/16584774.html

相关文章

  • P1008 [NOIP1998 普及组] 三连击
    试题分析:将1到9九个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,数值较小,所以暴力枚举算法分析:因为4*3=12,超过了10,所以百位的数最多为3,因为1到9每个......
  • [NOIP1998 普及组] 三连击
    试题分析:题目要求三个三位数是由1~9中分成三组组成的,也就是说三个数中每个位数上的数字都不相同,然后三个三位数要符合1:2:3的比例关系,所以我们可以直接将i看做第1个三位数,剩......
  • NC21467 [NOIP2018]货币系统
    题目链接题目题目描述在网友的国度中共有n种不同面额的货币,第i种货币的面额为a[i],你可以假设每一种货币都有无穷多张。为了方便,我们把货币种数为n、面额数组为a[1..n]的......
  • [2016年NOIP普及组] 买铅笔
    [2016年NOIP普及组]买铅笔思路:P老师决定只买同一种包装的铅笔同时也要最划算,那么可以循环进行3次计算。每次的价格都与最小值比较,如果小于最小值,就代替当前最小值。分析......
  • [2009年NOIP普及组] 分数线划定
    [2009年NOIP普及组]分数线划定分析:根据题意,定义结构体将序号与成绩联系起来,这时sort函数排序不符合题意,需根据题意手打排序,根据题目给出的条件求人数和分数线,还需注意的......
  • [2006年NOIP普及组] 明明的随机数
    明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的......
  • [2015年NOIP普及组] 金币
    [2015年NOIP普及组]金币思路:第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收......
  • [2004年NOIP提高组] 津津的储蓄计划
    津津的零花钱一直都是自己管理。每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。 为了让津津学习如何储蓄,妈妈提出,津津可以随时......
  • [2011年NOIP普及组] 瑞士轮
    首先归并排序,先比较,放入胜者组和败者组,去掉之前的分离,直接继续归并#include<bits/stdc++.h>usingnamespacestd; intn,q,bsl[2000001],bxh[2000001],bfs[2000001],ll,rr......
  • [2008年NOIP普及组] 排座椅
    用桶排排序,用贪心找出最优解#include<bits/stdc++.h>usingnamespacestd; intm,n,k,d,l,a,b,c,e,maxs,bj;inti,j,ii,mm[33000],ll[23000],ms[33000],ls[33000];intmai......