题解:P14570 「LAOI-11」Metamorphosism

· · 题解

1 具体思路

1.1 条件1

我们发现奇数加奇数等于偶数,所以只输出奇数即可。

1.2 条件3

我们发现奇数异或奇数的结果一定是偶数,所以只输出奇数即可。

1.3 条件2

因为所有数均小于 m,所以我们从大到小输出 n 个奇数,那么最小的数就是 \frac{m}{2}。这时两束乘积最小就是 \frac{m^2}{4},大于 m

2 代码

2.1 关键部分

一个循环输出即可。

for(int j=1,i=((m&1)?m:m-1);j<=n;i-=2,j++)cout<<i<<" ";

2.2 ACcode

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,m;
    cin>>n>>m;
    for(int j=1,i=((m&1)?m:m-1);j<=n;i-=2,j++)cout<<i<<" ";
}