苟.....苟富贵勿相忘啊大兄弟 level
获赞
52
粉丝
7
关注
0
看过 TA
56
华中科技大学
2018
C++
IP属地:湖北
暂未填写个人简介
私信
关注
2017-09-19 12:24
华中科技大学 C++
投递华为武汉研究所等公司10个岗位 >
0 点赞 评论 收藏
分享
2019-09-24 09:28
已编辑
华中科技大学 C++
20单选 3道编程 编程1:字符串s(长度不超过50)由R和G构成,R和G可以相互转换,输出最小的转换次数使得R比所有的G都靠近左侧。(长度较小,暴力解决) 编程2:神奇数满足以下两个条件(1)必须是两位数(2)个位和十位相同。 找出区间[left,right]之间的神奇数的个数。(区间较大,暴力解决超时) 编程3 :输入奶牛个数n和n个奶牛编号范围Ai(第i个奶牛编号范围为[1,Ai])奶牛编号,输出有多少种编号方法。(感觉是动态规划问题?)。
还挨打了://记录每个点左边的G的个数(代码中数组b),包括该点,右边的R的个数(代码中数组f),不包括该点,然后 //然后找到b[i]+f[i]的最小值 #include <iostream> #include <string> #include <vector> using namespace std; int main(int argc,char* argv[]){     string s("RGRGR");     cin>>s;     int n=(int)s.length();     int count_1=0;     vector<int> b(n,0);     vector<int> f(n,0);     for(int i=0;i<n;i++){         if(s[i]=='G')             count_1++;         b[i]=count_1;     }     int count_2=0;     for(int i=n-2;i>=0;i--){         if(s[i+1]=='R')             count_2++;         f[i]=count_2;     }     int mm=0x7FFFFFFF;     for(int i=0;i<n;i++){         if(b[i]+f[i]<mm){             mm=b[i]+f[i];         }     }     if(n==0) mm=0;     cout<<mm<<endl; } //暴力和比较优的都写了,作对比。 #include <iostream> #include <string> #include <vector> using namespace std; bool isTrue(long num){     if(num<10) return false;     else{         int a=0,b=0;         a=num%10;         b=(num/10)%10;         return a==b;     }     return false; } long count(long num){     if(num<10) return 0;     else{         long n100=num/100;         num=num%100;         long n1=num%10;         long n10=num/10;         long ans;         if(n1>=n10){             ans=n100*10+n10;         }         else{             ans=n100*10+n10-1;         }         return ans;     }     return 0; } int main(int argc,char* argv[]){     long L=0,R=0;     cin>>L>>R;     cout<<count(R)-count(L-1)<<endl;     long cnt=0;     for(long i=L;i<=R;i++){         if(isTrue(i))             cnt++;     }     cout<<cnt<<endl;     return 0; } //找到规律就好 #include <iostream> #include <vector> #include <algorithm> using namespace std; int main(int argc,char* argv[]){     int n=0;     cin>>n;     vector<int> mvec(n,0);     for(int i=0;i<n;i++){         cin>>mvec[i];     }     sort(mvec.begin(),mvec.end());     long ans=1;     for(int i=0;i<n;i++){         ans*=mvec[i]-i;         if(ans>1000000007){             ans=ans%1000000007;         }     }     cout<<ans<<endl; }
投递爱奇艺等公司10个岗位 >
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务