只要有n个数,它能一直除2且没有再出现过(找到后被标记)则满足整个序列要求。
一种搜索的做法
#includeusing namespace std; int main() { int t; cin>>t; while(t--) { int n; cin>>n; int flag = 1; vector a(n); for(int i=0; i >a[i]; sort(a.begin(), a.end()); bool f[n+1]; for(int i=0; i 1 && (a[i]>n || f[a[i]])) a[i] = a[i]/2; if(a[i]>n || f[a[i]]) { cout<<"NOn"; flag = 0; break; } f[a[i]] = true; } if(flag == 1) cout<<"YESn"; } return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)