zoukankan      html  css  js  c++  java
  • 代码地方UVa 11538 Chess Queen

    在写这篇文章之前,xxx已经写过了几篇关于改代码地方主题的文章,想要了解的朋友可以去翻一下之前的文章

        标题地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2533

        

        思路:

        在统一行:n*m*(m-1)

        在统一列:m*n*(n-1)

        对角线:2*(2*(A(2,2)+A(3,2)+A(4,2)+…+A(m-1,2))+A(m,2)*(n-m+1))

        n小于m时交换,这样就避免分类

        因为两条对角线对称,所以直接乘以2

        对角线上面的个数:2,3,4,…m-1,m…m,m-1,…4,3,2.

        其中m的个数为n-m+1个

        

        代码如下:

        每日一道理
    试试看——不是像企鹅那样静静的站在海边,翘首企盼机会的来临,而是如苍鹰一般不停的翻飞盘旋,执著的寻求。 试试看——不是面对峰回路转、杂草丛生的前途枉自嗟叹,而是披荆斩棘,举步探索。 试试看——不是拘泥于命运的禁锢,听凭命运的摆布,而是奋力敲击其神秘的门扉,使之洞开一个新的天地。微笑着,去唱生活的歌谣。
    #include<iostream>
    #include<vector>
    #include<list>
    #include<deque>
    #include<queue>
    #include<stack>
    #include<map>
    #include<set>
    #include<algorithm>
    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<string>
    #include<cmath>
    using namespace std;
    
    const int N=100010;
    typedef long long LL;
    
    LL n,m;
    
    int main()
    {
        while(scanf("%lld%lld",&n,&m))
        {
            if((n+m)==0)
                break;
            if(n<m)
                swap(n,m);
            LL sum=n*m*(m-1)+m*n*(n-1);
            LL temp=0;
            for(LL i=2;i<=m-1;i++)//这个地方i要为longlong类型
                temp+=i*(i-1);
            temp=temp*2+(n-m+1)*m*(m-1);
            temp=temp*2;
            printf("%lld\n",sum+temp);
        }
        return 0;
    }

    文章结束给大家分享下程序员的一些笑话语录: 古鸽是一种搜索隐禽,在中国快绝迹了…初步的研究表明,古鸽的离去,很可能导致另一种长着熊爪,酷似古鸽,却又习性不同的猛禽类——犤毒鸟

  • 相关阅读:
    Linux strip
    有趣的BUG
    GDB watch std::string size
    Redis Cluster Lua
    Double Buffer
    Yarn架构
    天池公交客流预测比赛
    hashmap,ConcurrentHashMap与hashtable的区别
    fail-fast和fail-safe
    常见机器学习算法优缺点
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3078613.html
Copyright © 2011-2022 走看看