点我看题
A. Common Multiple
注意到对于一个子序列\(\{x_i\}\),其存在对应的合法的\(\{y_i\}\)当且仅当\(\{x_i\}\)中元素各不相同。要使合法的Subsequence长度最大,取原序列中所有值不同的元素即可。因此直接统计原序列中不同值的数量。
时间复杂度可以是\(O(n)\)。
点击查看代码[code]#include #define rep(i,n) for(int i=0;in; mp.clear(); rep(i,n) { cin>>a; mp[a]++; } cout=0) { if(s[i-1]=='0'&&s=='1'&&c01) mx=max(mx,2); if(s[i-1]=='1'&&s=='0'&&c10) mx=max(mx,2); } } repn(i,s.size()-2) if(s[i-1]!=s&&s[i-1]==s.back()) mx=max(mx,1); coutk; rep(i,n) cin>>a,a=(a=0) { f1=i; break; } } c=0; for(int i=n-1;i>=0;--i) { c+=a; if(c>=0) { f2=i; break; } } bool ok=f1 |