关注
第一题好巧妙,学习了.贴一下我的
#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;
}
查看原帖
点赞 评论
相关推荐
03-07 17:26
阜阳师范大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 烂工作和没工作哪个更痛苦? #
3902次浏览 83人参与
# 牛油的搬砖plog #
189962次浏览 1279人参与
# 厦门银行科技岗值不值得投 #
16847次浏览 404人参与
# AI替代不了什么? #
4151次浏览 61人参与
# 发工资后,你做的第一件事是什么 #
100854次浏览 342人参与
# 给工作过的公司写一条大众点评,你会怎么写? #
1902次浏览 30人参与
# 春招至今,你收到几个面试了? #
7034次浏览 101人参与
# 学历VS实习,哪个更重要? #
13981次浏览 199人参与
# 实习心态崩了 #
111529次浏览 566人参与
# 一人分享一道面试手撕题 #
115463次浏览 2933人参与
# OPPO笔试 #
23434次浏览 104人参与
# 谈薪时HR压价该怎么应对 #
294428次浏览 3362人参与
# 工作上你捅过哪些篓子? #
69483次浏览 337人参与
# 产品人求职现状 #
362004次浏览 2605人参与
# 机械校招之路总结 #
120467次浏览 2084人参与
# 面试紧张时你会有什么表现? #
36202次浏览 246人参与
# 你的实习什么时候入职 #
368695次浏览 2372人参与
# uu们,春招你还来吗? #
71405次浏览 957人参与
# 面试中,你被问过哪些奇葩问题? #
100323次浏览 1454人参与
# 刚工作的你,踩过哪些坑? #
33863次浏览 278人参与
# 牛友的志愿填报指南 #
64208次浏览 494人参与
