A 蚂蚁觅食
单点时限: 1.0 sec
内存限制: 512 MB
一只饥饿的小蚂蚁外出觅食,幸运的小蚂蚁发现了好多食物,但是它只有一次搬食物的机会。
可因为力气太小了,它不能搬走重量超过自己体重的食物,且只能搬走位置相邻的两个食物,或者只搬走其中一个。
食物的位置不会改变。
这可难住了这只蚂蚁,它不知道它最多能搬走多重的食物。请帮小蚂蚁计算。
输入格式
第一行一个正整数n,(n>=0并且n<=1000)
第二行n个正整数 A[1].....A[n],A[i] 表示在第i 个位置上食物的重量。A[i]<=1e9.
第三行一个正整数m,表示蚂蚁的体重。(m<=1e9).
输出格式
一个整数表示小蚂蚁能带走的食物的重量。
样例
3
1 3 3
4
4
蚂蚁一次只能带走一个东西或者是带走相邻的个东西。所以思路有很多:
第一种思路:构造一个数组,用来存储相邻两项的和,然后找到第一个小于等于m的数并记为ans1.然后如果一次就取一个的话,找到第一个小于等于m的数字,几位ans2,,然后输出较大的
AC代码:
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
ll arr[+];
ll arr1[+];
int main(){
ll n;
cin>>n;
ll a=; for(int i=;i<=n;i++){
cin>>arr[i];
} ll m;
cin>>m; ll pos=;
for(int i=;i<=n;i++){
arr1[pos++]=arr[i]+arr[i-];
} ll ans1=,ans2=; sort(arr+,arr++n); for(int i=n;i>=;i--){
if(arr[i]<=m){
ans1=arr[i];
break;
}
} sort(arr1,arr1+pos); for(int i=pos-;i>=;i--){
if(arr1[i]<=m){
ans2=arr1[i];
break;
}
}
cout<<max(ans2,ans1)<<endl;
return ;
}
思路2:便利每个元素,,如果能装的下判断能不能和下一个一起装,可以的话就装上。
AC代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long ll;
ll arr[+];
int main(){
int n;
cin>>n;
for(int i=;i<n;i++){
cin>>arr[i];
}
ll m;
cin>>m;
ll ans=;
for(int i=;i<n;i++){
if(arr[i]>m){
continue ;
}
else if(arr[i]==m){
ans=m;
break;
}
else{
if(arr[i]+arr[i+]<m){
ans=max(ans,arr[i]+arr[i+]);
}
else if(arr[i]+arr[i+]==m){
ans=m;
break;
}
else{
ans=arr[i];
}
}
}
cout<<ans<<endl;
A 蚂蚁觅食的更多相关文章
- B. 蚂蚁觅食(二)
B. 蚂蚁觅食(二) 单点时限: 1.0 sec 内存限制: 512 MB 一只饥饿的小蚂蚁外出觅食,幸运的的小蚂蚁发现了好多食物.但是这些食物位于一个N∗M的方格魔法阵的右下角,而小蚂蚁位于方格法阵 ...
- 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法
若干年前读研的时候,学院有一个教授,专门做群蚁算法的,很厉害,偶尔了解了一点点.感觉也是生物智能的一个体现,和遗传算法.神经网络有异曲同工之妙.只不过当时没有实际需求学习,所以没去研究.最近有一个这样 ...
- 蚁群算法和简要matlab来源
1 蚁群算法原理 从1991由意大利学者 M. Dorigo,V. Maniezzo 和 A. Colorni 通过模拟蚁群觅食行为提出了一种基于群体的模拟进化算法--蚁群优化.极大关注,蚁群算法的特 ...
- 蚁群算法(Java)tsp问题
1.理论概述 1.1.TSP问题 旅行商问题,即TSP问题(旅行推销员问题.货郎担问题),是数学领域中著名问题之一.假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只 ...
- 蚁群算法解决TSP问题
代码实现 运行结果及参数展示 alpha=1beta=5 rho=0.1 alpha=1beta=1rho=0.1 alpha=0.5beta=1rho=0.1 概念蚁群算法(AG)是一种模拟蚂蚁觅 ...
- BZOJ2023: [Usaco2005 Nov]Ant Counting 数蚂蚁
2023: [Usaco2005 Nov]Ant Counting 数蚂蚁 Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 56 Solved: 16[S ...
- 1630/2023: [Usaco2005 Nov]Ant Counting 数蚂蚁
2023: [Usaco2005 Nov]Ant Counting 数蚂蚁 Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 85 Solved: 40[S ...
- bzoj1630 / bzoj2023 [Usaco2005 Nov]Ant Counting 数蚂蚁
Description 有一天,贝茜无聊地坐在蚂蚁洞前看蚂蚁们进进出出地搬运食物.很快贝茜发现有些蚂蚁长得几乎一模一样,于是她认为那些蚂蚁是兄弟,也就是说它们是同一个家族里的成员.她也发现整个 ...
- BZOJ2023: [Usaco2005 Nov]Ant Counting 数蚂蚁(dp)
题意 题目描述的很清楚... 有一天,贝茜无聊地坐在蚂蚁洞前看蚂蚁们进进出出地搬运食物.很快贝茜发现有些蚂蚁长得几乎一模一样,于是她认为那些蚂蚁是兄弟,也就是说它们是同一个家族里的成员.她也发现整个 ...
随机推荐
- hdu2492树状数组
题目链接:http://icpc.njust.edu.cn/Problem/Hdu/2492/ 题目大意:给定一个序列,求长度为三的子序列(a,b,c)使得a<b<c或a>b> ...
- 新版Shader组件更新啦,支持 Creator2.3.x 外,还有新特性...
B站视频 https://www.bilibili.com/video/BV1j7411X7mG/ 新版 ShaderHelper 组件更新啦,这个版本主要更新了三个功能: Cocos Creator ...
- [贪心,dp] Educational Codeforces Round 71 (Rated for Div. 2) C. Gas Pipeline (1207C)
题目:http://codeforces.com/contest/1207/problem/C C. Gas Pipeline time limit per test 2 seconds memo ...
- doc-指令-查看端口是否被占用及占用程序
来源:http://www.blogjava.net/huozhicheng/archive/2011/09/27/359620.html 1.首先进入命令行 查看端口是否被占用 使用命令: nets ...
- POJ - 3468 线段树单点查询,单点修改区间查询,区间修改模板(求和)
题意: 给定一个数字n,表示这段区间的总长度.然后输入n个数,然后输入q,然后输入a,b,表示查询a,b,区间和,或者输入c 再输入三个数字a,b,c,更改a,b区间为c 思路: 线段树首先就是递归建 ...
- coding++:Spring IOC/DI 实现原理
什么是 SpringIOC: spring ioc 指的是控制反转,IOC容器负责实例化.定位.配置应用程序中的对象及建立这些对象间的依赖.交由Spring容器统一进行管理,从而实现松耦合. “控制反 ...
- BurpSuit工具安装和基本使用方法
burpsuite是渗透的必备工具,使用它可以进行一些截包分析,修改包数据.暴力破解.扫描等功能,使用最多的场景应该是设置代理拦截数据包分析数据和爆破. JDK工具下载和安装(可选) 运行BurpSu ...
- Django安装和使用
Django安装 安装Django Python3在线安装Django pip3 install Django 验证是否安装成功,并查看当前版本 python -m django --version ...
- 延时对象promise的使用
promise是ES6(ECMA Script6)的新标准,只能在支持ES6的浏览器中使用 Promise是一个延时对象,创建延时对象时需要传入一个函数类型的参数 这个函数有两个参数:resolve和 ...
- C - Monkey and Banana
文章目录 题意如下 思路如下 题解如下: A group of researchers are designing an experiment to test the IQ of a monkey. ...