牛客编程巅峰赛S2第8场 - 钻石&王者
牛牛选物
https://ac.nowcoder.com/acm/contest/9887/A
A 牛牛选物
解题思路:n<=20,2^20属于1e6级别大小,所以用01表示选不选物品然后枚举找到符合条件的最大值即可。
int Maximumweight(vector<int>& v, vector<int>& g, int V) {
// write code here
int mx=-1,n=v.size();
for(int i=0;i<1<<n;++i){
int j=0,sv=0,sg=0,p=i;
while(p>0){
sv+=p%2*v[j],sg+=p%2*g[j];
j++;
p/=2;
}
if(sv==V)mx=max(mx,sg);
}
return mx;
}B 牛牛与字符串2
解题思路:s.size()<=10^6,所以直接从最长的n-1长度进行比较即可。
int solve(string s) {
// write code here
int n=s.size(),i=0,k=n-1;
for(k=n-1;k>0;--k){
int j=n-i-k,m=k;
while(s[i]==s[j]&&m--)i++,j++;
if(m)i=0;//如果k长度不满足就从头开始
else return k;
}
return -1;
}
查看7道真题和解析