Codeforces 1471 D
关键点
- 任意一个整数可以分解为 x 2 ⋅ y x^2\cdot y x2⋅y的形式,其中y只能分解为 1 2 ⋅ y 1^2\cdot y 12⋅y的形式.
- 如果两个正数相临(adjacent)那么,当且仅当它们的分解形式中的y相同.
- 对于一组相临的数字,它们将会被替换着一种数字中所有数字的乘积.
- 如果这组数字的个数为奇数,那么替换后,每一个数字的分解形式中的y不发生变化.
- 如果这组数字中的个数为偶数,那么替换后,每一个数字的分解形式中的y变为1(数字本身变成一个数字的平方).
- 一次变化后,各组数字的值发生改变,但是各组的元素个数不变.
过程
- 对于1-1e6中的每一个数,计算它的分解形式,保存y即可.
- 读入数字,统计每一个组内的个数.
- 对于w=0的情况,直接输出最大的集合数字.
- 对于w>0的情况,计算最大的奇数集合的个数以及所有偶数集合的个数与1集合的个数之和,输出最大的就好.