关注
第一题好巧妙,学习了.贴一下我的
#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;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
sounfury:找java工作的话把java内容占比写多点,你鸿蒙写太多了
点赞 评论 收藏
分享
06-08 22:25
门头沟学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你认为小厂实习有用吗? #
14025次浏览 186人参与
# 面试官是我前女友 #
107052次浏览 731人参与
# 实习生的蛐蛐区 #
40522次浏览 329人参与
# 当你面对裁员会如何? #
275982次浏览 2438人参与
# 计算机有哪些岗位值得去? #
13042次浏览 134人参与
# lastday知无不言 #
56915次浏览 460人参与
# 在职场上,你最讨厌什么样的同事 #
14511次浏览 150人参与
# 推荐一首陪你工作的歌吧 #
14039次浏览 97人参与
# 说说你知道的学历厂 #
28454次浏览 178人参与
# 你找工作的时候用AI吗? #
15000次浏览 193人参与
# 下班后的时间你怎么安排 #
7546次浏览 111人参与
# 哪一瞬间觉得自己长大了 #
7301次浏览 167人参与
# 携程求职进展汇总 #
559478次浏览 4258人参与
# 面试尴尬现场 #
24070次浏览 164人参与
# 工作后会跟朋友渐行渐远吗 #
30077次浏览 216人参与
# 中核求职进展汇总 #
20165次浏览 152人参与
# 社会教会你的第一课 #
29540次浏览 396人参与
# 多益网络工作体验 #
49693次浏览 280人参与
# 虾皮求职进展汇总 #
244210次浏览 1797人参与
# 神州信息工作体验 #
16060次浏览 75人参与