zoukankan      html  css  js  c++  java
  • 51nod1305

    可以暴力,但这里学习了一个新思路,就是把原式进行分解会得到[1/a[i]+1/a[j]],因为向下取整,我们可以发现,1作用于1结果为2,1作用于除了1之外的数结果为1,2作用于2结果为1,所以我们只需要进行对1,2,的查找就可以了,我们可以把结果进行化简得到一个最简式sum=a1*(a1+a2+other-1)+a2*(a2-1)/2

    #include<iostream>
    using namespace std;
    int main()
    {
        int n;
        while(cin>>n)
        {
            long long m;
            int a1=0,a2=0,other=0;
            for(int i=0;i<n;i++)
            {
                cin>>m;
                if(m==1)
                    a1++;
                else if(m==2)
                    a2++;
                else
                    other++;
            }
            int sum=a1*(a1+a2+other-1)+a2*(a2-1)/2;
            cout<<sum<<endl;
        }
        return 0;
    }
  • 相关阅读:
    用VS Code写C++程序如何运行
    DRF
    DRF
    DRF
    DRF
    DRF
    DRF
    DRF
    DRF
    DRF
  • 原文地址:https://www.cnblogs.com/lulichuan/p/6306098.html
Copyright © 2011-2022 走看看