abc159_a

题目描述

$ N+M $ 個のボールがあります。各ボールには整数が $ 1 $ つ書かれています。
これらのボールに書かれている数について、

  • $ N $ 個のボールに書かれている数は偶数
  • $ M $ 個のボールに書かれている数は奇数

であることがわかっています。

これらの $ N+M $ 個のボールの中から $ 2 $ つ選んで、書かれた数の和が偶数になる方法の数を求めてください。選ぶ順序は考慮しません。

なお、この方法の数はボールに書かれている整数の実際の値によらないことが示せます。

输入格式

入力は以下の形式で標準入力から与えられる。

$ N $ $ M $

输出格式

答えを出力せよ。

样例 #1

样例输入 #1

1
2 1

样例输出 #1

1
1

样例 #2

样例输入 #2

1
4 3

样例输出 #2

1
9

样例 #3

样例输入 #3

1
1 1

样例输出 #3

1
0

样例 #4

样例输入 #4

1
13 3

样例输出 #4

1
81

样例 #5

样例输入 #5

1
0 3

样例输出 #5

1
3

提示

制約

  • $ 0\ \leq\ N,M\ \leq\ 100 $
  • $ 2\ \leq\ N+M $
  • 入力はすべて整数である。

Sample Explanation 1

例えば $ 3 $ つのボールに書かれている数がそれぞれ $ 1,2,4 $ であるとすると、 - $ 1 $ が書かれたボールと $ 2 $ が書かれたボールを選ぶと、和は奇数 - $ 1 $ が書かれたボールと $ 4 $ が書かれたボールを選ぶと、和は奇数 - $ 2 $ が書かれたボールと $ 4 $ が書かれたボールを選ぶと、和は偶数 であるので、答えは $ 1 $ です。

显然 奇+偶 可以不用考虑 无论怎么组合都是奇

只需要在偶数里面暴力 和 奇数里面暴力即可

显然是两两组合

比如有n个数 那么组合的结果就是

$(n-1) + (n-2) + (n-3) +\cdots+ (n-(n-1)) + (n-n)$

显然 一共(n-1)项个n 去除掉 0, 从1~(n-1)项 和为 $(n*(n-1))$

提取符号,显然后面为等差数列 一共 n-1 个项目 首项为1 公差为1

和为$\frac{(n-1)\times n}{2}$

所以减即可

ac

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    std::cout.tie(nullptr);
	
	int n , m ;
	std::cin>>n>>m;
	int ans = 0;
	 
	ans+=(n-1)*n - ((n-1)*n/2);
	ans+=(m-1)*m - ((m-1)*m/2);
	printf("%d\n",ans);
    return 0;
}
Licensed under CC BY-NC-SA 4.0
Built with Hugo
主题 StackJimmy 设计
本博客已风雨交加的运行了 小时 分钟
共发表 28 篇文章 · 总计 25.44 k 字