HDU - 5976 Detachment 贪心

☆HDU 5976 Detachment 详细题解(贪心+逆元+前缀和,积) Detachment   解题思路: 【题意】 给定一个自然数x,让你给出一种拆分方式x=a1+a2+...(ai≠aj),使得每个小部分的乘积s=a1*a2*...最大 【类型】 贪心构造 【分析】 此题关键在于得出如何能使乘积s最大 按照以往经验,必然是取一段连续自然数能够使得乘积最大,而这段连续自然数可从2开始(为 阅读详情

Detachment

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 895    Accepted Submission(s): 258


Problem Description
In a highly developed alien society, the habitats are almost infinite dimensional space.
In the history of this planet,there is an old puzzle.
You have a line segment with x units’ length representing one dimension.The line segment can be split into a number of small line segments:  a1,a2 , … (x=  a1+a2 +…) assigned to different dimensions. And then, the multidimensional space has been established. Now there are two requirements for this space: 
1.Two different small line segments cannot be equal (  ai≠aj  when i≠j).
2.Make this multidimensional space size s as large as possible (s=  a1∗a2 *...).Note that it allows to keep one dimension.That's to say, the number of ai can be only one.
Now can you solve this question and find the maximum size of the space?(For the final number is too large,your answer will be modulo 10^9+7)
 

Input
The first line is an integer T,meaning the number of test cases.
Then T lines follow. Each line contains one integer x.
1≤T≤10^6, 1≤x≤10^9
 

Output
Maximum s you can get modulo 10^9+7. Note that we wants to be greatest product before modulo 10^9+7.
 

Sample Input
  
1 4
 

Sample Output
  
4
 

Source


刚开始读错题意了。。。。

好吧,读对也过不了=.=

贪心

构造2,3,4,5,6一直到总和不超过x

举个例更好说

x=30

那么就是2,3,4,5,6,5

最后一个5重复了,是用前面的数去补他还是,用他去补前面的数,举了几个例子是往前补更优,证明不详。。。。。。

所以就这样贪心的构造,

求乘积时可以先处理出来阶乘,然后取模除一除

#include<bits/stdc++.h>
using namespace std;
long long mo=1e9+7;
long long f[1000005];
long long poww(long long a,long long x)
{
	long long ans=1,t=a;
	while(x)
	{
		if(x&1)
		ans*=t;
		t*=t;
		ans%=mo;
		t%=mo;
		x>>=1;
	}
	return ans;
}
void init()
{
	f[0]=1;
	for(int i=1;i<=1000000;i++)
	{
		f[i]=(f[i-1]*i)%mo;
	}
	return ;
}
long long solve(long long x,long long y)
{
	return (x*poww(y,mo-2))%mo;
}
int main()
{
	init();
	int T;
	long long x;
	scanf("%d",&T);
	while(T--)
	{
		scanf("%lld",&x);
		if(x==1)
		{
			printf("1\n");
			continue;
		}
		long long le=0,ri=x,mid,res,sum,tt;
		while(le<=ri)
		{
			mid=(le+ri)>>1;
			if((mid+2)*(mid-1)/2<=x)
			{
				res=mid;
				le=mid+1;
			}
			else
			ri=mid-1;
		}
	//	cout<<res<<endl;
		sum=(res+2)*(res-1)/2;
		tt=x-sum;
		if(tt==res)
		{
			printf("%lld\n",(solve(f[res],2)*(res+2))%mo);
		}
		else
		{
		//	cout<<res<<" "<<tt<<endl;
			printf("%lld\n",(solve(f[res+1],res-tt+1)%mo));
		}
	}
	return 0;
}


HDU 5976 Detachment 【贪心】 (2016ACM/ICPC亚洲区大连站) Detachment Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 570    Accepted Submission(s): 192 Problem Description In a highly 阅读详情

相关推荐

告别Modern Standby!Win10/11强制S3睡眠的终极指南(含BIOS设置避坑)

本文是针对Windows 10/11用户因Modern Standby(S0低电量待机)导致睡眠耗电、发热问题的终极解决方案。文章详细对比了Modern Standby与传统S3睡眠(Suspend to RAM)的本质区别,并提供了从系统诊断、注册表修改、BIOS/UEFI设置避坑到驱动优化的完整步骤,旨在帮助用户强制启用稳定、省电的S3睡眠模式,彻底告别睡眠噩梦。

n7o8p的博客 802

Hdu 5976Detachment(找规律+逆元 ,好题)*

Detachment Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 3925 Accepted Submission(s): 1134 Problem Description In a highly developed alien...

nowting的博客 280

如何用Lmcache+vllm优化KVcache存储?CPU与SSD性能实测对比

本文通过实测对比,详细介绍了如何利用Lmcache+vLLM将大模型推理中的KV Cache卸载至CPU内存或SSD硬盘,以解决长上下文场景下的GPU显存瓶颈。测试数据显示,CPU卸载方案在首字延迟(TTFT)上显著优于SSD方案,但SSD方案在存储成本上更具优势。文章提供了完整的配置指南、性能数据分析和生产环境选型建议。

fire9的博客 987

HDU - 5976 Detachment(逆元+贪心+前缀和)

In a highly developed alien society, the habitats are almost infinite dimensional space. In the history of this planet,there is an old puzzle. You have a line segment with x units’ length representi...

>*,< 392

从Maya到Unity:3D模型导入全流程避坑指南(含FBX导出设置)

本文详细解析了从Maya导出3D模型至Unity的全流程,重点剖析了FBX格式作为跨软件协作“中间人”的优劣与核心设置。指南涵盖了Maya端模型清理、FBX导出关键配置(如嵌入媒体、轴转换),以及Unity端的模型、材质、动画导入优化与常见问题(如材质丢失、UV法线错误、骨骼动画错乱)的实战解决方案,旨在帮助3D美术师与技术美术建立稳定、高效的工作流。

lg888的博客 791

python 编程 安卓脚本_详解基于Android的Appium+Python自动化脚本编写

1.AppiumAppium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试, 它使用WebDriver协议驱动iOS,Android和Windows应用程序。通过Appium,我们可以模拟点击和屏幕的滑动,可以获取元素的id和classname,还可以根据操作生成相关的脚本代码。下面开始Appium的配置。appPackage和APPActivity的获取任意下载一个app解压...

weixin_39523625的博客 2929

HDU 5976 && 2016ICPC大连 F: Detachment(找规律)

题意: 将n拆成a1+a2+a3+…+ax的形式(ai≠aj),让a1*a2*a3*…*ax的值最大,求这个最大值 找规律 n=35:2+3+4+5+6+7+8;      max:2*3*4*5*6*7*8 n=36:2+3+4+5+6+7+8+1;  max:2*3*4*5*6*7*9 n=37:2+3+4+5+6+7+8+2;  max:2*3*4*5*6*8*9 n

加载中... 597

STM32F103(二十三)通用同步异步收发器(USART)

学习板:STM32F103ZET6 往期博客: STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结 STM32F103五分钟入门系列(二)GPIO的七大寄存器+GPIOx_LCKR作用和配置 STM32F103五分钟入门系列(三)GPIO的常用库函数使用方法总结+一个网络上的误区 STM32F103五分钟入门系列(四)蜂鸣器实验(库函数+寄存器) STM32F103五分钟入门系列(五)按键实验(库函数+寄存器) STM32F103五分钟入门系列(六)时钟框图+相关寄存器

Curnane0_0的博客 1019

HDU 5976 Detachment (逆元)

Problem Description In a highly developed alien society, the habitats are almost infinite dimensional space. In the history of this planet,there is an old puzzle. You have a line segment wi

小坏蛋_千千 1125

QGis软件 —— 9、QGis - 由点绘制热力图来模拟人流量(绘制点方式、excel导入数据方式)

QGis软件 —— 9、QGis - 由点绘制热力图来模拟人流量(绘制点方式、excel导入数据方式)

1470

万字长文带你由浅入深夯实ARM汇编基础——汇编指令及寻址方式最全梳理(附示例)!

见到汇编就害怕?读完这篇,扫除汇编拦路虎!!(示例丰富,可做手册,随手查阅!)

车载系统攻城狮 1万+

hdu-5976 Detachment 解题报告(乘法逆元、贪心?)

目录题目描述思路分析完整代码 题目描述 题目:https://vjudge.net/problem/HDU-5976 好像有翻译来着,我就不翻译了。 思路分析 这道题初看起来就让我们联想到高中数学的基本不等式:和一定,分解为相同的数时,他们的积最大,即:aa+bb>=2ab,当且仅当a==b时,ab最大。 但是这道题有个要求:互不相等,所以,我们取个较近的情况:他们是阶乘的情况最大,这时这道...

nagisa2019的博客 447

Spark中Application、Job、Stage和Task区别详解

在Spark中,有一些关键的概念,如Application、Job、Stage和Task,它们描述了Spark作业的不同层次和组成部分。下面我将详细介绍每个概念,并通过示例说明它们之间的区别。

优快云 精品推荐 903

HDU 5976 Detachment——贪心

很容易想到最优策略是2*3*4一直乘到前缀和小于n的最靠后的位置,设这个位置为p 当segma(2,p)==n时明显答案就是mul(2,p) 但是当segma(2,p) != n时会有一个余项,设为need,need=n-segma(2,p),显然现在项数不会再增加了,我们只能把need按照一定的策略分配给前面的元素才能使结果更大,按照直觉我们应该将need平摊给前面所有的元素,但是要注意ne...

hao_zong_yin的博客 489

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

HDU 5976 Detachment 【数论+贪心+逆元+前缀和、积】

传送门:HDU 5976 Detachment Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Description In a highly developed alien society, the habitats are almost infinit...

Waiting For You 530

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Detachment HDU - 5976 前缀+逆元+贪心

In a highly developed alien society, the habitats are almost infinite dimensional space. In the history of this planet,there is an old puzzle. You have a line segment with x units’ length representi...

liluoyu_1016的博客 304

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

HDU - 5976 Detachment(贪心思维)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5976 题意:把一个数拆成若干个不相同的数之和,问这些数的乘积最大是多少。 思路:一般要使乘积最大,那么先拆成两个不同数时,这两个数一定是接近n/2,然后每一个数又可以拆成两个数。但要这些数都不相同,所以最好的情况肯定是n等于从2开始一直到某个数k的连续和,如9=2+3+4,这样肯定是最优的,那么n...

LLL_yx的博客 704

【数论】【逆元】【贪心】HDU5976 Detachment

题目链接题意:给出一个数x,存在∑ni=1ai=x\sum_{i=1}^n a_i= x,ai!=aja_i != a_j 使得∏ni=1\prod_{i=1}^n 最大,求∏ni=1\prod_{i=1}^n 的最大值。解题思路:容易发现要使得积最大,要把x分得尽可能小。所以把x分成2,3,4,5,…,i的形式。从2开始是因为分成1并不会使积更大。如果x能直接分成这个形式,就可以直接得出答案。

Dizzz的博客 474

HDU5976-Detachment(乘法逆元+贪心)

题目链接 Problem Description In a highly developed alien society, the habitats are almost infinite dimensional space. In the history of this planet,there is an old puzzle. You have a line segment with x...

QAQ 602

HDU 5976 Detachment

  这道题目是向这位博主学习的,链接贴出来:☆HDU 5976 Detachment 详细题解(贪心+逆元+前缀和,积),讲的很细致,很感谢; 思路: 1.题意是将数x分成若干个正整数和,使得这些整数的乘积最大,并求出这个最大乘积除以1e9+7的余数; 2.要使得乘积最大,那么我们需要尽可能的分出更多的数(1除外),又因为分出的数需要各不相同,由贪心思想,我们可以从最小的2开始往后分...

Yuhan的博客 313

HDU 5976 Detachment 题解(贪心+逆元+前缀和,积)

个人体会:无脑取模,最为致命!因为把存放前缀和的数组取了模,导致一些本来不等的元素变成了相同的元素,二分搜索出错。。。而且C++会T,G++就ac了。。 http://acm.hdu.edu.cn/showproblem.php?pid=5976 分解出的几个数越接近,乘积越大,如果可以相等,则分解成3的乘积,不能相等,只能分成阶乘则最大,不能分成阶乘时,把多出来的数从后往前均摊,因为如果从前往后均摊会造成存在相等的数,然后均摊完多数相乘复杂度太高,需要有除法,于是根据费马小定理把除法改成乘法逆元,需要预处

tongjingqi_的博客 734

hdu5976 Detachment思维数学(贪心+逆元)

这个题,比赛的时候分析出来了,但是最后时间不够了,就没有做出来,GG了,最后补题的时候有因为自己地粗心开始不断debug,不过也发现问题了。 先来说一下思路,将这个数分解后使其乘积最大,且因子各不相同,我就想到了阶乘,但是一个数不一定可以分解的彻底,所以可以将其从后向前均分到每一个数上,可以想一下,前面的数每增加1其实就是相比于原乘积增加一倍的后面数的乘积。然后分析一下时间复杂度,发现必须直接计算...

AC_jie的博客 391

Detachment HDU - 5976(贪心+逆元+二分)

In a highly developed alien society, the habitats are almost infinite dimensional space. In the history of this planet,there is an old puzzle. You have a line segment with x units’ length representing...

码农的一亩三分地 324

大连2016 F - Detachment HDU - 5976(贪心,数论,猜结论)

In a highly developed alien society, the habitats are almost infinite dimensional space. In the history of this planet,there is an old puzzle. You have a line segment with x units’ length representing...

tomjobs的博客 547
上一篇: HDU - 5974 A Simple Math Problem 解方程
下一篇: FatMouse and Cheese hdu-1078
jerans
博客等级 码龄10年 54粉丝 255原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值