腾讯数据分析第二批笔试部分题目&代码
五道编程题,求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. 题目都没来得及看.......