关注
第一题好巧妙,学习了.贴一下我的
#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;
}
查看原帖
点赞 评论
相关推荐

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 假如你的老板掉河里,你的工作能为他做什么 #
30550次浏览 374人参与
# 你觉得早上几点上班合适? #
72872次浏览 305人参与
# 听劝,这个公司值得去吗 #
486817次浏览 1707人参与
# 双非能在秋招上岸吗? #
222232次浏览 1176人参与
# 月薪多少能在一线城市生存 #
31570次浏览 324人参与
# 26届的你们有几段实习? #
46530次浏览 515人参与
# 打工人的工作餐日常 #
53901次浏览 425人参与
# 第一份工作应该选高薪还是热爱? #
67585次浏览 599人参与
# 大学最后一个寒假,我想…… #
46891次浏览 576人参与
# 你以为的实习VS真实的实习 #
32206次浏览 291人参与
# 你上一次加班是什么时候? #
89241次浏览 574人参与
# 学历贬值真的很严重吗? #
25046次浏览 176人参与
# 推荐一首陪你工作的歌吧 #
14725次浏览 99人参与
# 2023毕业生求职有问必答 #
181494次浏览 1626人参与
# 哪些公司真双非友好? #
16142次浏览 82人参与
# 秋招签约后的心态变化 #
82970次浏览 817人参与
# 你后悔自己读研吗? #
22010次浏览 246人参与
# 追觅科技求职进展汇总 #
18564次浏览 120人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
118334次浏览 812人参与
# 外包能不能当跳板? #
37255次浏览 227人参与