关注
第一题好巧妙,学习了.贴一下我的
#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;
}
查看原帖
点赞 评论
相关推荐
05-25 10:45
门头沟学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 计算机有哪些岗位值得去? #
9284次浏览 88人参与
# 电网笔面经互助 #
35947次浏览 348人参与
# 实习生的蛐蛐区 #
28294次浏览 216人参与
# 听劝,这个简历怎么改 #
177337次浏览 1150人参与
# 应届生,你找到工作了吗 #
15337次浏览 127人参与
# 你找工作的时候用AI吗? #
10932次浏览 103人参与
# 说说你知道的学历厂 #
19956次浏览 120人参与
# 总结:哪家公司面试体验感最好 #
51466次浏览 367人参与
# 学历贬值真的很严重吗? #
21648次浏览 161人参与
# 面试尴尬现场 #
15584次浏览 101人参与
# 入职第一天,你准备什么时候下班 #
62838次浏览 380人参与
# 大学生该如何认清当下的就业环境? #
88665次浏览 567人参与
# 下班后的时间你怎么安排 #
5014次浏览 57人参与
# 打工人的工作餐日常 #
48582次浏览 362人参与
# 哪些公司校招卡第一学历 #
61783次浏览 234人参与
# 哪一瞬间觉得自己长大了 #
5191次浏览 85人参与
# 社会教会你的第一课 #
21611次浏览 272人参与
# 你认为小厂实习有用吗? #
7923次浏览 79人参与
# 你觉得第一学历对求职有影响吗? #
92874次浏览 668人参与
# 研究所笔面经互助 #
75376次浏览 470人参与