当前位置: 首页 > wzjs >正文

济宁有做企业网站吗网站开发html

济宁有做企业网站吗,网站开发html,免费的网站代码,购物网站服务器硬件配置链接 题目描述 给定 40 个数,请将其任意划分成两组,每组至少一个元素。每组的权值为组内所有元素的和。划分的权值为两组权值的乘积。请问对于以下 40 个数,划分的权值最大为多少。 5160 9191 6410 4657 7492 1531 8854 1253 4520 9231126…

链接

题目描述

给定 40 个数,请将其任意划分成两组,每组至少一个元素。每组的权值为组内所有元素的和。划分的权值为两组权值的乘积。请问对于以下 40 个数,划分的权值最大为多少。

5160 9191 6410 4657 7492 1531 8854 1253 4520 92311266 4801 3484 4323 5070 1789 2744 5959 9426 44334404 5291 2470 8533 7608 2935 8922 5273 8364 88197374 8077 5336 8495 5602 6553 3548 5267 9150 3309

输入格式

输出格式

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只需要编写一个程序输出这个整数,输出多余的内容将无法得分。

输入输出样例

思路

首先注意到有 40 个数,并且只划分成两个部分。

然后发现是背包DP。别问我怎么知道的

可以想到一个 O(全部数之和×40÷2) 的方法(绝对不会TLE),其具体实现是先枚举 40 个数,然后再用背包DP可以生成哪些和,最后再求出这个和×(总和−这个和)就可以了。

代码

#include<bits/stdc++.h>
using namespace std;
int a[41]={-1e9,5160,9191,6410,4657,7492,1531,8854,1253,4520,9231,
1266,4801,3484,4323,5070,1789,2744,5959,9426,4433,
4404,5291,2470,8533,7608,2935,8922,5273,8364,8819,
7374,8077,5336,8495,5602,6553,3548,5267,9150,3309},sum,lbj[10000010],num;
long long maxx;
signed main(){ios::sync_with_stdio(0);for(int i=1;i<=40;i++){sum+=a[i];//最大的和就是全部的总和 } bool dp[sum+1];for(int i=1;i<=sum;i++){dp[i]=0;} dp[0]=1;//初始化,啥都不加就是0 for(int i=1;i<=40;i++){for(int j=sum/2;j>=a[i];j--){//枚举到一半即可,因为肯定是一小一大/一半一半 if(dp[j-a[i]]&&!dp[j]){//新的可能值 lbj[++num]=j;dp[j]=1; }}}for(int i=1;i<=num;i++)maxx=max(maxx,1LL*lbj[i]*(sum-lbj[i]));//maxx是long long类型,后面要用1LL乘,因为答案>max intcout<<maxx;
}

其实直接打完表输出就得了,直接输出12873625444

ChatGPT的题解

题目分析
给定40个正整数,划分成两组(均非空),记两组和为X和S−X,划分价值为X·(S−X)。由于f(X)=X·(S−X)是关于X的对称二次函数,在X=S/2处达到最大,因此只需在所有可实现的子集和中,选取最接近S/2的X即可。

解题思路

  1. 计算总和S;

  2. 用位运算优化的01背包(bitset):维护长度为S+1的dpdp[i]=1表示存在子集和为i;

  3. 初始dp[0]=1,对每个数v做 dp|=dp<<v

  4. 从⌊S/2⌋向下扫描,找到第一个dp[x]=1的x,即为最优;

  5. 答案即为1LLx(S−x)。

代码

#include<bits/stdc++.h>
using namespace std;
int main(){int a[40]={5160,9191,6410,4657,7492,1531,8854,1253,4520,9231,1266,4801,3484,4323,5070,1789,2744,5959,9426,4433,4404,5291,2470,8533,7608,2935,8922,5273,8364,8819,7374,8077,5336,8495,5602,6553,3548,5267,9150,3309};int S=0;for(int i=0;i<40;i++)S+=a[i];bitset<226925>dp;dp[0]=1;for(int i=0;i<40;i++)dp|=dp<<a[i];for(int x=S/2;x>=1;x--){if(dp[x]){long long ans=1LL*x*(S-x);cout<<ans;break;}}return 0;
}

复杂度分析

  • 时间:O(N·S/word_size)≈40×226924/64≈142000次位运算

  • 空间:O(S)≈2.3×10<sup>5</sup>位,约30 KB,完全可行。

http://www.dtcms.com/wzjs/581245.html

相关文章:

  • 怎么样可以设计网站苏州建设培训中心
  • 免费的自学网站大全烟台主流网站
  • 网站制作 系统定制全国建设工程造价管理系统
  • 网站开发的对联网站开发的现状及研究意义
  • 免费的外贸网站推广方法如何让百度收录自己信息
  • 大丰网站建设价格国产软件开发工具
  • 交通建设集团网站昆明软件开发公司
  • 买外贸衣服的网站网络软文范例
  • 工业设计公司取名宁波seo推荐
  • 本地网站搭建教程长沙网站优化收费
  • 怎么做新的网站主机屋安装wordpress
  • 建设银行网站银行登录做网站怎么防止被网警查到
  • dedecms学校网站模板网站cms管理后台电话号码
  • 公司想做个网站怎么办客户管理系统
  • 泉州企业网站建站模板网站建设维护问题
  • 职业学院网站建设网站设计排行榜
  • 免费建站的杰讯山西网站建设
  • 云南省建设厅定额网站网络优化的意义
  • 做健身俱乐部网站的目的和意义推广展示类网站
  • 东昌府网站制作北京 外贸型网站建设
  • 摄影网站源代码自己建立网站教程
  • 做啥网站赚钱北京网页设计怎么做
  • 上海单位建设报建网站wordpress微信 缩略图不显示图片
  • 网上三维展馆网站是怎么做的有没有专门做教育培训的网站
  • 长沙网站建设哪家好公司黄页是官网吗
  • wordpress图片粘贴插件在线seo外链工具
  • 宁城网站建设公司公众号外链网站怎么做
  • 西安企业网站建设托管yusi wordpress
  • 专业做包包的网站360网站开发
  • php 用什么做网站服务器吗手机资讯类网站模板