• 赛后总结AtCoder Beginner Contest 090(Beginner)


    妈也,这些题目我竟然……做不出!!!???

    考时和平时是两、码、事!!!

     ——————————————————————————————————————————

    好了,让我们冷静地分析一下为什么会这样。[题意、题解分析来自网络][英语不好是个伤]

    a.3分钟。其实花了好久才看懂题面。

     A题题解:直接输出左上对角线即可。

    b.12分钟。还好,达标。

     B题题意:求给定区间中回文数的个数。

     B题题解:暴力即可。

    c.题面都没有看懂(为什么不叫它扫雷),但是俺机智地找到了规律!

      C题题意:给定一个矩阵,每个点放正面朝上的牌,依次翻动每张牌,翻动时会同时翻动该点周围8个点的牌,问最后正面朝下的牌的个数

      C题题解:对于只有一行的情况就是只有两头的牌最后是正面朝上的,多行的情况下可以看出只有最外围一圈的牌翻动偶数次,即最后正面朝上。

    英雄所见略同。

    所以我:

    	if(n==1||m==1) printf("%lld",n*m-2);
    	else if(n==2||m==2) printf("lld",n*m-4);
    	else printf("%lld",n*m-(n+m-2)*2);

    但是为什么还是WA了一个点嘞?

    因为当n=1且m=1时,代进去发现答案是个负数。所以在前面要加一行特判:if(n==1&m==1)cout<<1<<endl; return 0;

    得出经验:规律题,越靠近0的数越容易有坑。建议找找负数、负环之类的特殊情况并特判掉。

    d.数论推对了!按理来说,代码明明是对的。

    但是sum=(b-k)*(n/b)+((n%b)+1-k);时,不仅仅是sum,n、k也要开long long!!!(n,k<=10^5)

      首先呢,又不是开不起,开着long long又怎样

      第二是,比赛时时间不多了,心里急,就按照习惯打了。

           我的习惯:能开float不开double,能开int不开long long。

           得出经验:在空间满足的前提下,养成开更优类型的数组/变量的习惯。

  • 相关阅读:
    shell入门-cut命令
    shell入门-特殊符号
    shell入门-系统和用户的配置文件
    shell入门-变量
    shell入门-shell特性
    linux命令-yum工具详解
    linux命令-rpm查询包
    linux命令-rpm安装和卸载
    math 数学模块
    random 随机模块
  • 原文地址:https://www.cnblogs.com/nishida-rin/p/12271142.html
Copyright © 2020-2023  润新知