腾讯数据分析第二批笔试部分题目&代码
五道编程题,求C++大佬赐教第3、5题
,第五题的题目也求一下,我都没来得及看,更别说拍了
1. 非重复数字消除
ac 100%
#include <iostream>
#include <iomanip>
#include <map>
using namespace std;
int main(){
int n,m,i,j,max=0;
cin>>n;
for(i=0;i<n;i++){
cin>>m;
int a;
map<int,int> tmp;
map<int,int>::iterator it;
int num=0;
max=0;
for(j=0;j<m;j++){
cin>>a;
it=tmp.find(a);
if(it!=tmp.end())
tmp[a]++;
else{
tmp.insert(pair<int,int>(a,1));
num++;
}
}
for(it=tmp.begin();it!=tmp.end();it++){
if(max<it->second)
max=it->second;
}
if(max*2<=m)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
} 2. 画匠摆花 ac100%%
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
int t,k,a,b,i;
int tmp[100010];
int sum[100010];
while(cin>>t>>k){
for(i=0;i<=100000;i++){
if(i<k)
tmp[i]=1;
else
tmp[i]=tmp[i-1]+tmp[i-k];
tmp[i]%=1000000007;
}
sum[1]=tmp[1];
for(i=2;i<=100000;i++){
sum[i]=sum[i-1]+tmp[i];
sum[i]%=1000000007;
}
while(t--){
cin>>a>>b;
cout<<(sum[b]-sum[a-1]+1000000007)%1000000007<<endl;
}
}
return 0;
} 3. 求期望值,逆元法不会求,希望大佬能不吝赐教 4. 字符串重复匹配
暴力匹配法,一开始写错了结束条件,只ac了20%,现在这个代码本地调试能过,不知道能不能ac。
#include <iostream>
#include <algorithm>
#include <iomanip>
#include <cmath>
using namespace std;
int main(){
int n,m,i,sum=0,k=0,j=0;
string s;
cin>>n>>s>>m;
string a[m];
for(i=0;i<m;i++)
cin>>a[i];
cout<<endl;
for(i=0;i<m;i++){
j=0;
for(;j<a[i].size()+1;j++){
if(j==a[i].size()&&k<s.size())
j=0;
if(k<s.size()&&s.at(k)==a[i].at(j))
k++;
else if(k==s.size()){
k=0;
sum++;
cout<<a[i]<<endl;
break;
}
else{
k=0;
break;
}
}
}
cout<<sum<<endl;
return 0;
} 5. 题目都没来得及看.......