标签:codeforces 构造法 奇偶性
1.题目描述:点击打开链接
2.解题思路:本题利用构造法解决。对于n≤3的情况可以特判一下。对于大于3的情况,可以让前一半都是偶数,后一半都是奇数即可。因为相邻的两个奇数或偶数的间隔都是2,满足题意。
3.代码:
#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<algorithm> #include<string> #include<sstream> #include<set> #include<vector> #include<stack> #include<map> #include<queue> #include<deque> #include<cstdlib> #include<cstdio> #include<cstring> #include<cmath> #include<ctime> #include<functional> using namespace std; typedef long long ll; typedef unsigned long long ull; #define me(s) memset(s,0,sizeof(s)) #define For(i,n) for(int i=0;i<(n);i++) #define pb push_back #define sz size #define clr clear #define F(a,b) for(int i=a;b;i++) int main() { int n; cin >> n; if(n <= 2) { puts("1\n1"); } else if(n == 3) { puts("2\n1 3"); } else { printf("%d\n", n); for(int i=0;i<n;i++) { if(i != 0) putchar(' '); int x = i < n / 2 ? i * 2 + 1 : (i - n / 2) * 2; printf("%d", x + 1); } puts(""); } return 0; }
标签:codeforces 构造法 奇偶性
原文地址:http://blog.csdn.net/u014800748/article/details/46431023