zoukankan      html  css  js  c++  java
  • sicily 8058. Matrix

    #include<stdio.h>
    int a[1005][1005];
    int main()
    {
        int n,m,q,_case;
        char c;
        int x,x1,x2,y1,y2,t;
        int ii,i,j;
        scanf("%d",&_case);
        while(_case--)
        {
            scanf("%d %d %d",&n,&m,&q);
            for(i=0;i<n;i++)
            for(j=0;j<m;j++)
            scanf("%d",&a[i][j]);
            for(i=0;i<q;i++)
            {
                getchar();
                scanf("%c",&c);
                if(c=='Q')
                {
                    scanf("%d %d %d %d %d",&x,&x1,&x2,&y1,&y2);
                    for(ii=x1;ii<=x2;ii++)
                    {
                        if(a[ii][y1]<=x&&a[ii][y2]>=x)//必然的下一行
                        {
                            int front=y1;
                            int end=y2;
                            while(front<=end)
                            {
                                j=(front+end)/2;
                                if(a[ii][j]>x)end=j-1;
                                else if(a[ii][j]<x)front=j+1;
                                else goto Re;
                            }
                        }
                    }
                    if(ii>x2)printf("-1 -1\n");
                    else
                    {
                    Re: while(j>0&&a[ii][j-1]==x)j--;//左边相同
                        printf("%d %d\n",ii,j);
                    }
                }
                else
                {
                    scanf("%d %d",&x1,&x);
                    for(j=0;j<m;j++)
                    a[x1][j]+=x;
                    for(j=0;j<m;j++)
                    {
                        //printf("##\n");
                        ii=x1+1;
                        while(ii<n&&a[ii][j]<=a[x1][j])ii++;
                        if(ii==x1+1)continue;//不是都换
                        t=a[ii-1][j];
                        a[ii-1][j]=a[x1][j];
                        a[x1][j]=t;
                    }
                }
            }
        }
        return 0;
    }                                 
  • 相关阅读:
    日志处理
    md5加密
    os 模块
    time模块
    函数的进阶
    参数 返回值
    文件操作
    集合 拷贝
    linux如何更快的远程拷贝?scp,tar,rsync?
    修改内核临时端口范围
  • 原文地址:https://www.cnblogs.com/XDJjy/p/3052336.html
Copyright © 2011-2022 走看看