关注
第一题好巧妙,学习了.贴一下我的
#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;
}
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 从顶到拉给所有面过的公司评分 #
23526次浏览 192人参与
# 机械人春招想让哪家公司来捞你? #
357840次浏览 3109人参与
# 为了求职,我做过的疯狂伪装 #
13796次浏览 277人参与
# 校招笔试 #
1406次浏览 34人参与
# 职场破冰,你们都聊什么? #
8077次浏览 79人参与
# 晒晒你的中秋福利 #
15831次浏览 120人参与
# 大家实习每天都在干啥 #
89496次浏览 518人参与
# 你的公司给实习生发中秋礼物吗 #
2504次浏览 31人参与
# 机械笔面试考察这些知识点 #
10903次浏览 96人参与
# bilibili求职进展汇总 #
91549次浏览 820人参与
# 工作压力大怎么缓解 #
105664次浏览 1053人参与
# 秋招OC许愿 #
347642次浏览 2531人参与
# 广联达求职进展汇总 #
11466次浏览 50人参与
# 机械人怎么评价今年的华为 #
209427次浏览 1525人参与
# 宣讲会你有哪些意向不到的收获 #
1950次浏览 23人参与
# 聊聊这家公司值得去吗 #
561252次浏览 3717人参与
# 你面试被问到过哪些不会的问题? #
23640次浏览 848人参与
# 百度秋招提前批进度 #
151249次浏览 1772人参与
# 电网笔面经互助 #
47188次浏览 431人参与
# 秋招的嫡长offer #
33213次浏览 299人参与