uva11538 Chess Queen(组合数学)
来源:互联网 发布:js让金额不为0 编辑:程序博客网 时间:2024/05/20 08:23
非常有思想的数学题 意思就是给一个n*m的矩阵 放一黑一白两个皇后多少种方法 要相互攻击到的
这样要分三种情况
第一种两个皇后 在一排
那么总数是 n*m*(m-1)//n*m为放第一个, 在那一行剩余的 (m-1)个位置放另一个
第二种两个皇后在一列
总数是 n*m(n-1)
第三种略微复杂 是在对角线方向的。
开始想的是对于 每一个坐标 通过坐标去确定多少个 但是这算法明显不好
其实可以把对角线当做行或列 只是能放的位置不同
假设n<=m
列出所有斜线上的方块总数 1,2,3,4,...n-1.之后是m-n+1个n,之后在循环之前的。
那么直接for循环 计算 阶乘全加起来就行了
先算2到n-1的 然后乘以2
再处理n的情况
最后乘以2 因为对角线有两种方向
注意这个题爆long long !!!
tepydef unsigned long long LL;
#include<iostream>#include<cstdio>#include<algorithm>using namespace std;typedef unsigned long long LL;int main(){ LL n,m; LL ans,tmp; while(cin>>n>>m) { if(n==0 && m==0) break; if(n>m) swap(n,m); ans=0; ans+= n*m*(m-1); ans+= n*m*(n-1); tmp=0; for(LL i=2;i<n;++i) tmp+= i*(i-1); tmp*=2; tmp+=(m-n+1)*n*(n-1); tmp*=2; ans+=tmp; cout<<ans<<endl; } return 0;}
- uva11538 Chess Queen(组合数学)
- UVA11538(Chess Queen )
- 【UVA11538】Chess Queen——简单组合
- UVa11538 - Chess Queen
- UVA11538-Chess Queen
- uva11538 Chess Queen
- UVa 11538 - Chess Queen (组合数学)
- Chess Queen uva11538 解题报告
- uva11538 - Chess Queen(象棋中的皇后)
- uva11538(组合数学)象棋中的皇后
- Uva - 11538 - Chess Queen(数学推导)
- Chess Queen(数学推断题)
- UVA 11538 Chess Queen (数学)
- UVA-11538 Chess Queen(数学)
- UVA 11538 Chess Queen(数学)
- UVa 11538 Chess Queen (组合&分类)
- uva 11538 - Chess Queen(组合数)
- codeforces560EGerald and Giant Chess(组合数学)
- hdu 2015 偶数求和
- 谈谈敏捷开发的误区
- 线程和进程
- 类unix操作系统中,驱动加载方式一般分为:动态加载和静态加载
- XPCOM 资源
- uva11538 Chess Queen(组合数学)
- Mac OS X 实用开发工具
- ubuntu下编译qt的常见错误
- Java中删除Map,Set集合中的部分元素
- 开启Mac OS X ssh 服务器
- HDU 1423 Greatest Common Increasing Subsequence(最长公共上升子序列)
- [QTP]通过vbscript读取一个文件中的所有内容
- JS事件绑定
- Java出现No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing