uva11538(数论)

来源:互联网 发布:编程c语言入门 编辑:程序博客网 时间:2024/06/15 16:53

题意:

给一个n*m的棋盘,放两个互相攻击的皇后,有几种方法;


思路:

同一行攻击,和同一列攻击都很好算;

就是对角线有点麻烦

对角线: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个

AC代码:


#include<cstdio>#include<cstring>#include<algorithm>#define ll long longusing namespace std;int main() {ll n, m;while(scanf("%lld%lld",&n,&m) && n) {if(n > m)swap(n,m);ll tmp = n * m *(n + m - 2) + 2 * n * (n - 1) * (3 * m -n -1) / 3;printf("%lld\n",tmp);}return 0;}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 银川住房公积金查询个人账户 洛阳住房公积金查询 住房公积金卡 东莞住房公积金查询 南京住房公积金管理中心 成都住房公积金 广西住房公积金查询 广西区直住房公积金查询入口 哈尔滨住房公积金管理中心 武汉住房公积金查询个人账户 重庆市住房公积金管理中心 渭南住房公积金查询 咸阳市住房公积金管理中心 宁德住房公积金查询 苏州住房公积金管理中心 太原住房公积金 萍乡市住房公积金个人查询 深圳住房公积金查询余额 长春市住房公积金网 潍坊市住房公积金管理中心 阜阳市住房公积金查询 赣州住房公积金 太原住房公积金查询个人账户 郑州市住房公积金查询 杭州住房公积金管理中心 乐山市住房公积金管理中心 长春住房公积金查询 青海住房公积金查询网 住房公积金管理 宜春住房公积金查询 惠州市住房公积金管理中心 玉林住房公积金查询个人账户 枣庄住房公积金查询 六安住房公积金管理中心 厦门住房公积金查询 渭南市住房公积金个人查询 乐山住房公积金查询个人账户 深圳住房公积金电话多少 南宁住房公积金查询 住房公积金查询电话12329 济宁住房公积金管理中心