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

接做网站需要问什么软件悠悠我心个人网站模板

接做网站需要问什么软件,悠悠我心个人网站模板,电子商务网站建设基本流程图,海南省建设设厅官方网站链接 题目描述 给定 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/551131.html

相关文章:

  • 艺术公司网站定制一个主机 多个网站
  • 公司品牌网站设计网站默认样式
  • 怎么开设网站 优帮云网站开发西安中软
  • 装饰公司网站模板陈铭生是什么小说
  • 好品质高端网站设计推荐湖南营销型网站建设 地址磐石网络
  • 小网站链接怎么找西安百度网站快速排名
  • 温州外贸网站哪个网站做任务可以赚钱
  • 网站下载的文件在哪里优秀地方门户网站系统
  • 百度网站下载国外装饰公司网站
  • 泰州腾讯网站开发wordpress留言本页面
  • 对网站建设 意见和建议动漫设计与制作就业前景怎么样
  • 网站建设公司岳阳微信开发网站设计
  • 响应式网站建设推荐乐云seo中国小康建设网是骗子网站吗?
  • 手机网站关键词快速排名网页设计制作心得体会
  • 免费推广网站工具中国建设银行网站分析
  • 做网站找asp网站文件
  • 做网站需要注意的风险推广的方式
  • 来个网站东莞网页制作设计
  • 专做特产的网站html网站 怎么做seo
  • 服务器与网站wordpress 菜单 间距
  • 网站开发人员工作内容新手自己建设一个网站
  • 西安网站开发服务多少钱苏州市郭巷建设局网站
  • 兰州网站建设哪家好wordpress改字号
  • 开原网站制作东莞核酸检测时间
  • 开源的网站系统推广有奖励的app平台
  • 网站模板放哪好看的官网源码
  • 图片 移动网站开发万年历网站做
  • 长春网站建设有什么加强酒店网站建设的建议
  • 二极管 东莞网站建设山东企业网站建设
  • 直播网站开发价格厦门网站建设报