关注
第一题好巧妙,学习了.贴一下我的
#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;
}
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 秋招签约后的心态变化 #
81699次浏览 805人参与
# 26届的你们有几段实习? #
40987次浏览 463人参与
# 月薪多少能在一线城市生存 #
23988次浏览 282人参与
# 你觉得早上几点上班合适? #
71656次浏览 299人参与
# 你以为的实习VS真实的实习 #
26246次浏览 243人参与
# 双非能在秋招上岸吗? #
221192次浏览 1170人参与
# 你后悔自己读研吗? #
18487次浏览 234人参与
# 打工人的工作餐日常 #
52181次浏览 408人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
117429次浏览 811人参与
# 一人推荐一个值得去的通信/硬件公司 #
186094次浏览 1858人参与
# 哪些公司真双非友好? #
15304次浏览 81人参与
# 你认为哪些项目算烂大街? #
16744次浏览 266人参与
# 追觅科技求职进展汇总 #
17952次浏览 120人参与
# 机械校招之路总结 #
93695次浏览 1894人参与
# 学历贬值真的很严重吗? #
23677次浏览 168人参与
# 你被哪些公司秒挂过? #
30527次浏览 239人参与
# 如何KTV领导 #
62515次浏览 472人参与
# 秋招拿一个offer可以躺平吗 #
146192次浏览 940人参与
# 找工作时的取与舍 #
82816次浏览 591人参与
# 最难的技术面是哪家公司? #
9272次浏览 73人参与