首页 > 其他分享 >P1056 [NOIP2008 普及组] 排座椅

P1056 [NOIP2008 普及组] 排座椅

时间:2023-07-25 10:47:09浏览次数:44  
标签:迭代 int 最大值 NOIP2008 ++ 座椅 maxn P1056 1005

1.变量 maxng 在 for 循环内声明和初始化,是因为它们用于追踪每次循环中的最大值及其对应的索引。

如果将 maxng 的声明移到 for 循环外部,它们将保留上一次迭代的值,并且比较语句 if(a[j]>maxn)if(b[j]>maxn) 将无法正常工作。在每次迭代中将它们初始化为 -1 的目的是为了找到当前迭代中的最大值。

通过在 for 循环内声明和初始化 maxng,保证了它们在每次迭代时都有新的值,从而正确确定最大值及其索引。

 
#include<bits/stdc++.h>
using namespace std;
int m,n,k,l,d;
int x,y,p,q;

int a[1005],b[1005];
int c[1005],o[1005];
int main()
{
    
    cin>>m>>n>>k>>l>>d;
    for(int i=1;i<=d;i++)
    {
        cin>>x>>y>>p>>q;
        if(x==p)b[min(y,q)]++;
        else if(y==q)a[min(x,p)]++;
    }
    for(int i=1;i<=k;i++)
    {
        int maxn=-1;
        int g;
        for(int j=1;j<=m;j++)
            if(a[j]>maxn)
        {
            maxn=a[j];
            g=j;
        }
        a[g]=0;
        c[g]++;
    }
    for(int i=1;i<=l;i++)
    {
        int maxn=-1;
        int g;
        for(int j=1;j<=n;j++)
            if(b[j]>maxn)
        {
            maxn=b[j];
            g=j;
        }
        b[g]=0;
        o[g]++;
    }
    for(int i=0;i<1005;i++)
    {
        if(c[i])
            printf("%d ",i);
    }
    printf("\n");
    for(int i=1;i<=1005;i++)
    {
        if(o[i])
            printf("%d ",i);
    }
    return 0;
}

 

 

标签:迭代,int,最大值,NOIP2008,++,座椅,maxn,P1056,1005
From: https://www.cnblogs.com/sdutblh/p/17579127.html

相关文章

  • P1055 [NOIP2008 普及组] ISBN 号码
    [NOIP2008普及组]ISBN号码题目描述每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括$9$位数字、$1$位识别码和$3$位分隔符,其规定格式如x-xxx-xxxxx-x,其中符号-就是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码......
  • [NOIP2008 提高组] 笨小猴
    [NOIP2008提高组]笨小猴题目描述笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设\(\text{maxn}\)是单词中出现次数最多的字母的出现次数,\(\text{minn}\)是......
  • 「NOIP2008」笨小猴
    笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质......
  • P1149 [NOIP2008 提高组] 火柴棒等式 题解
    [NOIP2008提高组]火柴棒等式题目描述给你\(n\)根火柴棍,你可以拼出多少个形如\(A+B=C\)的等式?等式中的\(A\)、\(B\)、\(C\)是用火柴棍拼出的整数(若该数非零,则最高......
  • P1149 [NOIP2008 提高组] 火柴棒等式
    题目描述给你 nn根火柴棍,你可以拼出多少个形如 A+B=C的等式?等式中的 A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是 0)。用火柴棍拼数字 0∼9 的拼法如图所......
  • 洛谷P1149 [NOIP2008 提高组] 火柴棒等式
    这道题就是一个经典的暴力枚举题意是输出一共有的火柴根数,输出这些火柴棒用完可以有多少拼法下面,我们来数一数拼成十个数和两个符号(’+‘&&’=‘)各用几根火柴棒0要用......
  • 洛谷P1149 [NOIP2008 提高组] 火柴棒等式
    这道题其实很简单只是个暴力枚举!!!题目大致意思是说给你一堆火柴棒,两个符号(‘+’&&‘-’)。第一个数字‘0’用了6根火柴棒,‘1’用了2根火柴棒,依此类推......这样,我们就能......
  • 【NOIP2008】【Luogu1125】笨小猴
    problemsolutioncodes#include<iostream>#include<algorithm>#include<string>usingnamespacestd;inta[30];intmain(){stringstr;cin>>str;for......
  • [2008年NOIP普及组] 排座椅
    [2008年NOIP普及组]排座椅思路:首先运用结构体存入每行每列的具体信息,读入m行n列k条横向l条纵向通道d对同学说话,按顺序为每行每列编号。再一对一对地拆说话的同学(要计......
  • [2008年NOIP普及组] 排座椅
    [2008年NOIP普及组]排座椅思路:本题考察的是贪心和排序代码如下:#include<bits/stdc++.h>usingnamespacestd;intak[1005],al[1005];//横排的前k个、纵排的前l个in......