关注
第一题好巧妙,学习了.贴一下我的
#include <iostream>
#include<vector>
#include<climits>
using namespace std;
int main()
{
//前缀和思想,加剪枝
int n;
int k;
int max_val = INT_MIN;
while(cin>>n){
vector<int> nums(n, 0);
cin>>nums[0];
for(int i=1;i<n;++i){
cin>>nums[i];
nums[i] += nums[i-1];
}
cin>>k;
for(int i=n-1;i>=0;--i){
if(max_val<i+1 && nums[i]%k==0){//剪枝
max_val = i+1;
break;//剪枝
}
}
for(int i=0;i<n;++i){
for(int j=n-1;j>=i;--j){
if(max_val<j-i){
if((nums[j]-nums[i])%k==0){//剪枝
max_val = j-i;
}
}
else//剪枝
break;
}
}
cout<<max_val<<endl;
}
return 0;
}
第二题
#include <iostream>
#include<vector>
#include<climits>
using namespace std;
int main()
{
//思路:分析样例发现,当某个数大于其他数的和时,只用从这个最大数开始.然而因为该数大于其他书的总和,所以分完其他所有人以后,还是有书剩余.不符合条件.
//代码较简单
int n;
int sum;
while(cin>>n){
vector<int> nums(n, 0);
bool flag = true;
for(int i=0;i<n;++i){
cin>>nums[i];
sum += nums[i];
}
for(int i=0;i<n;++i){
if(nums[i]*2>sum){
cout<<"No"<<endl;
flag = false;
break;
}
}
if(flag)
cout<<"Yes"<<endl;
}
return 0;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 有深度的简历长什么样? #
5763次浏览 113人参与
# 你都用AI做什么 #
2328次浏览 58人参与
# 去年的flag与今年的小目标 #
2142次浏览 64人参与
# 实习,不懂就问 #
146540次浏览 1302人参与
# 26年哪些行业会变好/更差 #
3025次浏览 50人参与
# 卷__卷不过你们,只能卷__了 #
1436次浏览 30人参与
# 入职第一天 #
4357次浏览 48人参与
# 写论文的崩溃时刻 #
1485次浏览 32人参与
# 哪些公司在招寒假实习? #
1568次浏览 27人参与
# 一人分享一道面试手撕题 #
8486次浏览 443人参与
# 你不能接受的企业文化有哪些 #
2747次浏览 58人参与
# 听到哪句话就代表面试稳了or挂了? #
240608次浏览 1681人参与
# 应届生应该先就业还是先择业 #
160992次浏览 810人参与
# 你的国庆怎么过 #
109444次浏览 764人参与
# 应届生第一份工作最好去大厂吗? #
124102次浏览 1102人参与
# 你收到了团子的OC了吗 #
1493855次浏览 11814人参与
# 实习在多还是在精 #
78428次浏览 495人参与
# 秋招你被哪家公司挂了? #
999683次浏览 7677人参与
# 薪资要看总包还是月薪? #
38041次浏览 296人参与
# 双非本科的出路是什么? #
193826次浏览 1520人参与
深信服公司福利 851人发布
