-
G - Гибкие отрезки
- Gym - 101967G
- 题意:给定n,找一段连续序列,使这段连续序列每一个数字进行+或-操作的product 等于原序列的乘积
- 发现偶数一定可以通过前一个+1后面-1实现,但是,奇数就没有这种性质,想到把奇数转化为偶数即可
- 但是得找到一个奇数操作的通解,发现3 4 5 这段序列 是可以通过- + +操作实现的,所以只要大于等于3
- 的序列也是可以实现的,只有1个的时候无法实现。
-
#include<bits/stdc++.h> using namespace std; int n; int main() { scanf("%d",&n); if(n==1)printf("NO\n"); else { printf("YES\n"); if(n%2) { printf("%d\n-++",3); for(int i=4; i<=n; i++) if(i%2==0)printf("+"); else printf("-"); } else { printf("%d\n",3); for(int i=1; i<=n; i++) if(i%2)printf("+"); else printf("-"); } } return 0; }