java算法提高求最大值_藍橋杯 算法提高 求最大值
算法提高 求最大值
時間限制:1.0s 內存限制:256.0MB
問題描述給n個有序整數對ai bi,你需要選擇一些整數對 使得所有你選定的數的ai+bi的和最大。並且要求你選定的數對的ai之和非負,bi之和非負。輸入格式輸入的第一行為n,數對的個數 以下n行每行兩個整數 ai bi輸出格式輸出你選定的數對的ai+bi之和樣例輸入5-403 -625-847 901-624 -708-293 413886 709樣例輸出1715數據規模和約定1<=n<=100 -1000<=ai,bi<=1000
這道題呢 神奇的背包變種- -。 首先呢 背包是沒有負數的- -這時候就需要把負數變成正數 然后背包一下 動態規划出所有可能的結果
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
int d[400005];
int a[400005],b[400005];
int ss=100000;
int main()
{
int n;
while(cin>>n)
{
memset(d,-1,sizeof(d));
int x,y;
int s;
d[200000]=1; //以20w的中間值作為數軸的0點
for(int i=0;i
{
cin>>x>>y;
if(x+y>0) //當輸出的兩個數的和為整數的時候,倒着放 和01背包相同
{
for(int j=400000;j>=0;j--)
{
if(j-x-y>=0&&j-x-y<=400000)
{
if(d[j]==1&&d[j-x-y]==1)
{
a[j]=max(a[j],a[j-x-y]+x);
b[j]=max(b[j],b[j-x-y]+y);
}
else if(d[j]
{
a[j]=a[j-x-y]+x;
b[j]=b[j-x-y]+y;
}
d[j]=max(d[j],d[j-x-y]);
if(d[j]==1)
{
// cout<
}
}
}
}
else //然后呢 小於0的時候 正着放 和01背包相同
{
for(int j=0;j<=400000;j++)
{
if(j-x-y>=0&&j-x-y<=400000)
{
if(d[j]==1&&d[j-x-y]==1)
{
a[j]=max(a[j],a[j-x-y]+x);
b[j]=max(b[j],b[j-x-y]+y);
}
else if(d[j]
{
a[j]=a[j-x-y]+x;
b[j]=b[j-x-y]+y;
}
d[j]=max(d[j],d[j-x-y]);
if(d[j]==1)
{
//cout<
}
}
}
}
}
int i;
for(i=400000;i>200000;i--)
{
if(d[i]==1&&a[i]>=0&&b[i]>=0) //這時候就是找,最大的值
{
cout<
break;
}
}
if(i<=200000)
{
cout<
}
}
}
java算法提高求最大值_藍橋杯 算法提高 求最大值相关推荐
- 油漆面积 java_第八屆藍橋杯省賽 JavaA組 第十題 標題:油漆面積
題目描述: X星球的一批考古機器人正在一片廢墟上考古. 該區域的地面堅硬如石.平整如鏡. 管理人員為方便,建立了標准的直角坐標系. 每個機器人都各有特長.身懷絕技.它們感興趣的內容也不相同. 經過各種 ...
- java大整数的加减乘除_关于大整数的加减乘除求余运算 java
自己用java 实现了大字符串整数的加减乘除和求余运算, 加减法的算法是模拟手工笔算的计算过程, 除法就是从最高位不停的减操作, 乘法的算法 :遍历一个数的各个位数以及他所在位置,另一个数根据这个数的 ...
- java 文本分析 关键词提取_文本关键词提取算法总结
1.TF-IDF 昨天给大家演示简单的文本聚类,但要给每个聚类再提取一两个关键词用于表示该聚类.我们还是用TFIDF算法来做,因为这是比较简单的提取特征算法,不过这里的TF是指某词在本聚类内所有文章的 ...
- 什么是算法算法有些什么特性_反正是什么算法
什么是算法算法有些什么特性 What you need to know about the simple concept that powers the modern world. 您需要了解为现代世 ...
- 二分法算法复杂度简化_让我们简化算法的复杂性!
二分法算法复杂度简化 by Shruti Tanwar 通过Shruti Tanwar 让我们简化算法的复杂性! (Let's simplify algorithm complexities!) It ...
- java queue 最大值_[剑指offer题解]队列的最大值/滑动窗口的最大值
前言 众所周知,<剑指offer>是一本"好书". 为什么这么说? 因为在技术面试中,它里面罗列的算法题在面试中出现的频率是非常非常高的. 有多高,以我目前不多的面试来 ...
- python求三个整数最大值_实例讲解Python中整数的最大值输出
实例讲解Python中整数的最大值输出 在Python中可以存储很大的值,如下面的Python示例程序: x = 1000000000000000000000000000000000000000000 ...
- java实现子序列最大和_“最大子序列和”算法 java
maxSubSum各自是最大子序列和的4中java算法实现. 第一种算法执行时间为O(N^3),另外一种算法执行时间为O(N^2),第三种算法执行时间为O(nlogn),第四种算法执行时间为线性N p ...
- java 如何将数字倒置_每日一个小算法之整数中每位上的数字进行反转 20190810
题目要求: 给出一个32位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321 示例 3: 输入: 120输出 ...
最新文章
- asp.net 获取当前时间的格式
- Hyper-V虚拟机快照占用磁盘空间过多,导致虚拟机不能启动怎么办
- python画柱状图和折线图-Python数据可视化–折线图–柱状图
- nexus代理地址整理
- 多媒体表示、描述、编码以及通信的相关规定和标准课程总结
- ajax实现上传文件
- 深入ASP.NET MVC之七:ActionResult的执行(View的加载和渲染)
- UI设计素材|愉快的万圣节的插图着陆页
- 《为大量出现的KPI流快速部署异常检测模型》 笔记
- 20190809:旋转数组
- 您好,我是中科院做语音识别的博士生,我想参加阿里招聘但是,北京 爱问知识人...
- 输出100之间的所有质数(素数)
- pytorch自我错误总结
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_4-2.微服务下登录检验解决方案 JWT讲解...
- Python【map、reduce、filter】内置函数使用说明(转载)
- qq操作技巧 - 网上收集
- 显卡硬解4k测试软件,对飙4K硬解 看谁才是笑到最后的大佬
- pe系统测试软件,使用PE系统显示器测试工具检测电脑屏幕的方法
- 2008年度世界五百强
- c语言 16 16 字库,用C语言编程16点阵字库
热门文章
- 纵观软件行业开发方法论的发展
- 飞鸽推广的由咪商务微博
- 入门Python,总遇到这样那样的安装问题,手把手教会你
- 宏基因组云讲堂今晚8点开讲!第一期由刘永鑫博士主持,特邀袁军副教授分享纯生信发表ISME文章的思路...
- Funter for Mac:支持快速显示和隐藏文件和文件夹
- Mac Backup软件:不要冒险您的数据!
- 鸿蒙济判法讲义,2020-02-09《薛兆丰经济学讲义》读书笔记
- 2.2 基本算法之递归和自调用函数 1751 分解因数 python
- oracle监听服务无法启动不了,关于ORACLE监听服务无法启动的问题
- 【ES6(2015)】Function函数