hdu5646(数学)
小学数学,脑补
一开始看到这题,猜了个规律想写但是我是拒绝的。
因为我无法证明。
好吧,主要还是小学数学没学好吧。
要理解这题,首先得搞懂一个重要问题。假设C=A+B,怎样选择两个正整数使得A*B最大?
学过小学数学的人都知道,A=C/2,B=C-A。 为啥是这样的。我在做这题之前好像就没搞太明白。
对于A+2<=B,
(A+1)(B-1) = AB+B-A-1>AB
所以对于任意选择的两个A,B都死通过调整得到A=C/2,B=C-A
推广一下,现在是对于多个数,A1,A2,A3,...,Ak
且A1+A2+A3+...+Ak=n
使得A1*A2*A3*...*Ak最大。 我们发现完全可以当成若干个C=A+B问题来解。
把大的调小,把小的调大。最后得到的一定是一段连续数字,或者两段连续数字中间只间隔1个数。
如:234567
234678
然后这题就是一个10几行代码的模拟了。
//
// main.cpp
// bc76
//
// Created by 陈加寿 on 16/3/19.
// Copyright © 2016年 chenhuan001. All rights reserved.
// #include <iostream>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <algorithm>
using namespace std; #define MOD 1000000007 long long save[]; int main(int argc, const char * argv[]) {
int T;
cin>>T;
while(T--)
{
long long n,k;
cin>>n>>k;
if(k*(k+)/>n)
{
printf("-1\n");
continue;
}
long long x = (n - k*(k-)/)/k;
for(int i=;i<=k;i++)
save[i] = x+i-;
long long last = (n - k*(k-)/)%k;
for(int i=;i<last;i++)
save[k-i]++;
long long ans=;
for(int i=;i<=k;i++)
ans = (ans*save[i])%MOD;
cout<<ans<<endl;
}
return ;
}
hdu5646(数学)的更多相关文章
- hdu5646数学构造+二分
/* 满足n>=(k+1)*k/2的整数n必定满足 a+(a+1)+...+(a+k-1)<=n<=(a+1)+(a+2)+...+(a+k) 只要在[a,a+k]中减掉一个数字ai ...
- 数学思想:为何我们把 x²读作x平方
要弄清楚这个问题,我们得先认识一个人.古希腊大数学家 欧多克索斯,其在整个古代仅次于阿基米德,是一位天文学家.医生.几何学家.立法家和地理学家. 为何我们把 x²读作x平方呢? 古希腊时代,越来越多的 ...
- 速算1/Sqrt(x)背后的数学原理
概述 平方根倒数速算法,是用于快速计算1/Sqrt(x)的值的一种算法,在这里x需取符合IEEE 754标准格式的32位正浮点数.让我们先来看这段代码: float Q_rsqrt( float nu ...
- MarkDown+LaTex 数学内容编辑样例收集
$\color{green}{MarkDown+LaTex 数学内容编辑样例收集}$ 1.大小标题的居中,大小,颜色 [例1] $\color{Blue}{一元二次方程根的分布}$ $\color{R ...
- 深度学习笔记——PCA原理与数学推倒详解
PCA目的:这里举个例子,如果假设我有m个点,{x(1),...,x(m)},那么我要将它们存在我的内存中,或者要对着m个点进行一次机器学习,但是这m个点的维度太大了,如果要进行机器学习的话参数太多, ...
- Sql Server函数全解<二>数学函数
阅读目录 1.绝对值函数ABS(x)和返回圆周率的函数PI() 2.平方根函数SQRT(x) 3.获取随机函数的函数RAND()和RAND(x) 4.四舍五入函数ROUND(x,y) 5.符号函数SI ...
- *HDU 2451 数学
Simple Addition Expression Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...
- 如何解决Maple的应用在数学中
对任意数学和技术学科的研究员.教师和学生而言,Maple是一个必备的工具.通过Maple,教师将复杂数学问题注入生命,学生的精力集中在概念理解上而不是如何使用工具上,研究员可以开发更复杂的算法或模型. ...
- 如何让Maple中的数学引擎进入你的桌面应用程序和网站
MapleNET数学服务套件将Maple 2015强大的数学引擎引入您的应用程序和网站.使用MapleNET,您可以添加数学计算和可视化功能到网页和桌面程序中,通过互联网/局域网分享“活”的Maple ...
随机推荐
- SpringMVC整合quartz,实现定时任务
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId& ...
- knowledgeroot
knowledgeroot 示例站点 www.globaladmin.cn Knowledgeroot可用于文档管理,知识库管理. 1.基于php开发,支持linux ,windows.2.支持mys ...
- SAP MM模块 经常使用函数
1. MM_CURRENT_PRICE_DOCUMENT 2. ME_READ_HISTORY 获取採购行项目的历史记录 CALL FUNCTION 'ME_READ_HISTORY' ...
- ps -ef/ps -aux 查看正在活动的进程
ps -ef 查看正在活动的进程 ps -ef |grep abc 查看含有"abc"的活动进程 ps -ef |grep -v abc 查看不含abc的活动进程 1)ps a 显 ...
- AIDL调用指南
近期有需求要实现两个apk之间的通信,想到用AIDL来实现,现写一个demo学习下AIDL怎样使用. 这里我要实现一个apk(client端)调用还有一个apk(server端)的方法. 先实现ser ...
- Log4j介绍,log4j.properties配置详解
http://www.cnblogs.com/simle/archive/2011/09/29/2195341.html本文主要解释log4j的配置文件各个配置项的含义,内容是从网上转载的 1.Log ...
- WSDL接口数据传递以及外网发布需要注意的地方
A系统传递数据给B系统 1.A创建asmx推送接口如下 using System; using System.Collection.Generic; using System.Data; using ...
- yum安装epel后报错
Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfi ...
- 测试xxxxxxxx
测试sdfs xxxxxxxbgssdfsdf f sd=JS-demp.zip f /** * @author John Smith <john.smith@example.com> ...
- FPGA组成、工作原理和开发流程
FPGA组成.工作原理和开发流程 原创 2012年01月07日 09:11:52 9402 0 4 ********************************LoongEmbedded***** ...