• UVAlive 7466


    题目大意是:给你一个n*n的矩阵,每一个元素等于行数加列数,要求按照R或者C的操作,对行或者列的数字进行求和,输出这个和,并且对求过的数字变为0,
    在最开始的时候,想的就是模拟,然而卡在了数据大小上。。。。

    这是最开始的代码(有问题ban):
    看到博客上别人的思路:每一行,每一列都是一个等差数组,所以我们只用知道开头的元素以及元素个数就ok了(以后遇到这种卡壳的地方要想下自己的思路是不是太麻烦了,有什么规律可以找的吗?)

    这是别人ac之后的代码....

    #include <cstdio>
    #include <iostream>
    #include <cstdlib>
    #include <cstring>
    #include <algorithm>
    #define LL long long
    using namespace std;
    const int MAXN=1e6+10;
    bool x[MAXN], y[MAXN];
    int N,N2;
    int main()
    {
        while(~scanf("%d%d",&N,&N2))
        {
            memset(x,0,sizeof(x));
            memset(y,0,sizeof(y));
            char str; int k;
            LL sum1=0, sum2=0, cnt1=0, cnt2=0;
            for(int i=0; i<N2; i++)
            {
                scanf(" %c%d",&str,&k);
                if(str=='R')
                {
                    if(x[k])
                    {
                        printf("0");
                    }
                    else
                    {
                        cnt1++;
                        sum1=sum1+k;
                        x[k]=1;
                        LL o=(LL)k*N+(LL)N*(N+1)/2-(LL)cnt2*k-sum2;
                        cout<<o<<endl;
                    }
                }
                else
                {
                    if(y[k]) puts("0");
                    else
                    {
                        cnt2++;
                        sum2=sum2+k;
                        y[k]=1;
                        LL o2=(LL)k*N+(LL)N*(N+1)/2-(LL)cnt1*k-sum1;
                        cout<<o2<<endl;
                    }
                }
            }
        }
        return 0;
    }
    下次不能这么简单暴力不动脑去做题了(知道怎么用规律之后简直要被自己给蠢哭了.....)

  • 相关阅读:
    day49-线程-事件
    day48-线程-信号量
    180-spring框架开启事务的两种方式
    094-SSM框架和控制层,业务层、持久层是什么关系?
    179-当创建FileInputStream会发生什么呢?
    178-链接查询association
    177-properties文件的中文注释是会出现乱码的?
    176-@Mapper注解是什么?
    092-linux都是怎么安装文件的?
    178-什么是dns解析呢?
  • 原文地址:https://www.cnblogs.com/renxin123/p/8419791.html
Copyright © 2020-2023  润新知