zoukankan      html  css  js  c++  java
  • CF1A Theatre Square

    一道数学题。
    这题我居然写了20min。我太弱了。。
    好了,看这道题之前,我们先学一个函数:cmath库里头的ceil函数,作用是向上取整,和floor就是反过来。
    进入正文:
    读读题,只要是个人都能想到n*m/a*a这做法吧,手动模拟一下:嗯,答案没错。
    然后写上了CF1A的第一个代码。
    Code:

    #include<iostream>
    #include<cmath>
    #define ll long long
    using namespace std;
    int n,m,a;
    int main(){
        cin>>n>>m>>a;
        cout<<ceil((m*n)/(a*a));
        return 0;
    }

    等等!怎么答案少个2?
    那我乘上个2好了。
    Code:

    #include<iostream>
    #include<cmath>
    #define ll long long
    using namespace std;
    int n,m,a;
    int main(){
        cin>>n>>m>>a;
        cout<<2*ceil((m*n)/(a*a));
        return 0;
    }

    然后妥妥WA了。
    方法不对?那我们来加加减减看看能不能得到样例。我们首先把n=m=6,a=4带入,发现好像((m+1)/(a-1))+((n+1)/(a-1))这个式子符合答案诶。
    舒服!
    Code:

    #include<iostream>
    #include<cmath>
    #define ll long long
    using namespace std;
    int n,m,a;
    int main(){
        cin>>n>>m>>a;
        cout<<ceil(((m+1)/(a-1))+((n+1)/(a-1)));
        return 0;
    }

    交上去你会发现你RE了..
    别急,让我们再考虑一下最初的做法。没啥不对吧?
    除数是a,那么我们想一个问题:(n*m)/(a*a)不就等价于(n/a)(m/a)吗!
    带入这个式子,再想想C++的某些东西。除数是个a,显然要用实数来解决这个a啊。好的!解决了吧!
    Code:

    #include<iostream>
    #include<cmath>
    #define ll long long
    using namespace std;
    ll n,m,a;
    int main(){
        cin>>n>>m>>a;
        cout<<(ceil(n/(double)a)*ceil(m/(double)a));
        return 0;
    }

    又WA了..?
    让我们看看怎么回事..输出了1e18??显然是实数的锅锅。
    Code:(AC)

    #include<iostream>
    #include<cmath>
    #define ll long long
    using namespace std;
    ll n,m,a;
    int main(){
        cin>>n>>m>>a;
        cout<<(long long)(ceil(n/(double)a)*ceil(m/(double)a));
        return 0;
    }

    本来这就是个入门难度的题,发这些上来只是为了巩固一下C++基础和一些奇奇怪怪的想法罢了。
    NOIP 2018 RP++.

  • 相关阅读:
    java栈的实现
    浅谈JSON
    Java反射机制及IoC原理
    ApplicationContext之getBean方法详解
    web.xml中的contextConfigLocation的作用
    ApplicationContext的名称解释
    spring boot如何处理异步请求异常
    screen工具实现简单分析
    SO_LINGER选项的作用和意义
    gcc的异常处理机制
  • 原文地址:https://www.cnblogs.com/kenlig/p/9833803.html
Copyright © 2011-2022 走看看