全部评论
后台。。对了30% AC 70%
80,100,70。最后道用的贪心,过不了,应该是背包问题
0.9 1 0.7 。。。。
后台:1,1,0.7
70% 100% 10% 最后一题想不通为啥只有10%
前端 80*% ac 60%
求密码那题80% 搞不太懂 考虑了前面有0的情况
后台80 100 90
90 AC 最后一题20%。。最后一秒发现DFS时有个变量用错了 ,好亏
90 100 90,第三题dp居然超时了
android 80 100 100第一道不知道问题在哪里
80% 100% 100% 第一题那个最大数字不知哪儿出了问题
ac ac 30%
第一题 0.9的 #include<iostream> using namespace std; bool check(string s1,string s2){ string s3; int i=0; while(i<s1.length()&&s1[i]=='0') i++; for( i;i<s1.length();i++){ s3+=s1[i]; } s1=s3; s3.clear(); i=0; while(i<s2.length()&&s2[i]=='0') i++; for( i;i<s2.length();i++){ s3+=s2[i]; } s2=s3; if(s1.length()>s2.length()) return true; if(s1.length()<s2.length()) return false; for(int i=0;i<s1.length();i++){ if(s1[i]>s2[i]) return true; if(s1[i]<s2[i]) return false; } return true; } int main(){ string s; cin>>s; string s1; int update=1; while(update==1){ update=0; for(int i=0;i<s.length();i++){ if(i+2<s.length()&&s[i]=='R'&&s[i+1]=='E'&&s[i+2]=='D'){ i=i+2;update=1; continue; } s1+=s[i]; } if(update==0) break; s=s1; s1.clear(); } //cout<<s1<<endl; string s2; string s3=""; for(int i=0;i<s1.length();i++){ if(s1[i]>='0'&&s1[i]<='9') { s2+=s1[i];continue; } if(s3=="") { s3=s2; s2.clear(); continue;} if(check(s2,s3)){ s3=s2; } s2=""; } if(check(s2,s3)){ s3=s2; } if(s3.length()==0) cout<<-1<<endl; else { int i=0; while(s3[i]=='0') i++; for(i;i<s3.length();i++){ cout<<s3[i]; } cout<<endl; } }
第二题100% #include<iostream> #include<cmath> #include<algorithm> using namespace std; int main(){ string s; cin>>s; int k; cin>>k; string s1; int len=s.length()/(2*k); //cout<<len<<endl; for(int i=0;i<len;i++){ for(int j=i*2*k+k-1;j>=i*2*k;j--){ s1+=s[j]; } int cnt=0; for(int j=i*2*k;j<i*2*k+k;j++){ s[j]=s1[cnt++]; } s1.clear(); } if(s.length()%(2*k)==0) cout<<s<<endl; else { s1.clear(); int j=len*2*k; for(int i=j;i<j+k&&i<s.length();i++){ s1+=s[i]; } reverse(s1.begin(),s1.end()); int cnt=0; for(int i=j;i<j+k&&i<s.length();i++){ s[i]=s1[cnt++]; } cout<<s<<endl; } }
第三题多重背包加剪枝、 100% #include<iostream> using namespace std; int main(){ int m,n; cin>>m>>n; int a[55]={0}; int b[55]={0}; for(int i=0;i<m;i++){ cin>>a[i]>>b[i]; } int dp[10005]={0}; dp[0]=1; for(int i=0;i<m;i++){ for(int j=n;j>=a[i];j--){ for(int k=1;k<=b[i];k++){ if(dp[j]==1) break; //剪枝,没这句就0.8 if(j-k*a[i]>=0){ dp[j]|=dp[j-k*a[i]]; } } } } for(int k=n;k>=0;k--){ if(dp[k]==1){ cout<<n-k<<endl; return 0; } } cout<<0<<endl; }
实习生的时候做了牛客的测试题,暑假就被通知进了提前批。。。。
优惠券那题思路是什么
相关推荐
10-16 12:29
携程_移动安全研发 Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
10-21 18:18
中南大学 机械设计/制造 点赞 评论 收藏
分享