1 条题解
-
0
自动搬运
来自洛谷,原作者为

yAlAxy
菜炸了搬运于
2025-08-24 22:34:06,当前版本为作者最后更新于2021-10-17 15:04:31,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
P7902题解
本题思路:
-
构造方法:将偶数全部放在奇数之间,并且按顺序输出奇数。
-
这题若无解我们分奇数和偶数的情况讨论。
-
当给定的 n 为奇数时,同一个奇数应相差 并且应小于 d 否则,同一个奇数应相差 并且应小于等于 d 就输出负一。
接下来——上代码。
#include<bits/stdc++.h> using namespace std; int read() { int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9') { if(ch=='-') f=-1; ch=getchar(); } while(ch>='0'&&ch<='9') { x=(x<<1)+(x<<3)+(ch^48); ch=getchar(); } return x*f; } int main() { cin.tie(0); cout.tie(0); int n=read(), d=read(); if((d>n/2*2+n/2&&n%2==1)||(d>=n/2*2+n/2&&n%2==0)) { cout<<"-1"; return 0; } for(int i=1;i<=n;i+=2) cout<<i<<" "; for(int i=2;i<=n;i+=2) cout<<i<<" "<<i<<" "; for(int i=1;i<=n;i+=2) cout<<i<<" "; return 0; } -
- 1
信息
- ID
- 7184
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者