HDU 5646 DZY Loves Partition
题目链接:
hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5646
bc:http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=680&pid=1002
DZY Loves Connecting
Accepts: 16 Submissions: 169
Time Limit: 4000/2000 MS (Java/Others)
Memory Limit: 262144/262144 K (Java/Others)
问题描述
DZY有一棵nn个结点的无根树,结点按照1\sim n1∼n标号。
DZY喜欢树上的连通集。一个连通集SS是由一些结点组成的集合,满足SS中任意两个结点u,vu,v能够用树上的路径连通,且路径上不经过SS之外的结点。显然,单独一个结点的集合也是连通集。
一个连通集的大小定义为它包含的结点个数,DZY想知道所有连通集的大小之和是多少。你能帮他数一数吗?
答案可能很大,请对10^9 + 7109+7取模后输出。
输入描述
第一行tt,表示有tt组数据。
接下来tt组数据。每组数据第11行一个数nn。第2\sim n2∼n行中,第ii行包含一个数p_ipi,表示ii与p_ipi有边相连。(1\le p_i \le i-1,2\le i\le n1≤pi≤i−1,2≤i≤n)
(n\ge 1n≥1,所有数据中的nn之和不超过200000200000)
输出描述
每组数据输出一行答案,对10^9 + 7109+7取模。
输入样例
2
1
5
1
2
2
3
输出样例
1
42
Hint
第二个样例中,树的4条边分别为(1,2),(2,3),(2,4),(3,5)。所有连通集分别是{1},{2},{3},{4},{5},{1,2},{2,3},{2,4},{3,5},{1,2,3},{1,2,4},{2,3,4},{2,3,5},{1,2,3,4},{1,2,3,5},{2,3,4,5},{1,2,3,4,5}。
If you need a larger stack size,
please use #pragma
comment(linker, "/STACK:102400000,102400000") and submit your
solution using C++.
题解:
注:sum(a,k)表示以a为首项,项数为k的等差数列和(差值为1)
首先判断可行性:
如果sum(1,k)>n,那么明显无法将n划分成k个不同的数。
其次探究最优解的性质:
由于当1<=a<=b-2的时候有ab<(a+1)(b-1),所以当k个数连续或只有一个长度为1的空隙的时候得到最优解。

求解最优值:
设由a开始的k个数为解,则有(a+a+k-1)*k/2==n,所以a>=(int)( ( (n*2.0/k)+1-k)/2),经过调整可求得a',使得sum(a'-1,k) <=n<sum(a',k)。这样只要将数列sum(a',k)的前(sum(a',k)-n)项向左移一位即可求得最优解对应的数列。由sum(1,k)<=n得k<=sqrt(n),可对这个数列暴力求积。
代码:
#include<iostream>
#include<cstdio>
#define SUM(a,k) ((a * 2 + k - 1)*k / 2)
using namespace std; typedef long long LL;
const int mod = 1e9 + ; LL n, k; int main() {
int tc;
scanf("%d", &tc);
while (tc--) {
scanf("%lld%lld", &n, &k);
if (n < ( + k)*k / ) {
printf("-1\n");
continue;
}
LL a = (LL)((n * * 1.0 / k + - k) / );
while (SUM(a, k) <= n) a++;
LL adj = SUM(a, k) - n;
LL ans = ;
for (int i = ; i < k; i++) {
if (i < adj) {
ans *= (a + i - );
}
else {
ans *= (a + i);
}
ans %= mod;
}
printf("%lld\n", ans);
}
return ;
}
HDU 5646 DZY Loves Partition的更多相关文章
- HDU 5646 DZY Loves Partition 数学 二分
DZY Loves Partition 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5646 Description DZY loves parti ...
- hdu 5646 DZY Loves Partition 二分+数学分析+递推
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5646 题意:将n分成k个正整数之和,要求k个数全部相同:并且这k个数的乘积最大为多少?结果mod 1e^9 ...
- hdu-5646 DZY Loves Partition(贪心)
题目链接: DZY Loves Partition Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K ( ...
- HDU 5645 DZY Loves Balls 水题
DZY Loves Balls 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5645 Description DZY loves playing b ...
- hdu 5195 DZY Loves Topological Sorting 线段树+拓扑排序
DZY Loves Topological Sorting Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/sho ...
- hdu 5195 DZY Loves Topological Sorting BestCoder Round #35 1002 [ 拓扑排序 + 优先队列 || 线段树 ]
传送门 DZY Loves Topological Sorting Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131 ...
- hdu.5195.DZY Loves Topological Sorting(topo排序 && 贪心)
DZY Loves Topological Sorting Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 ...
- 数据结构(线段树):HDU 5649 DZY Loves Sorting
DZY Loves Sorting Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Oth ...
- HDU 5194 DZY Loves Balls
DZY Loves Balls Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
随机推荐
- 大数据分析系统Hadoop的13个开源工具
Hadoop是由Apache基金会开发的一个大数据分布式系统基础架构,最早版本是2003年原Yahoo!DougCutting根据Google发布的学术论文研究而来. 用户可以在不了解分布式底层细节的 ...
- CDH升级 5.7.5 --> 5.13.3(tar包方式)
博客园首发,转载请注明出处:https://www.cnblogs.com/tzxxh/p/9123231.html 一.准备 1.关闭cdh中的服务 hdfs.yarn等所有服务:关闭 cm-ser ...
- 树莓派安装OSMC打造家庭影院,还可以看优酷和CCTV
1.OSMC是什么? OSMC是树莓派官方推荐的影音系统,是一款开源的操作系统,是Openelec的升级版,同样是基于Kodi的开源项目.OSMC,使用它可以将树莓派打造成一款全功能的家庭影院系统,它 ...
- PAT (Basic Level) Practice (中文)1001
1001 害死人不偿命的(3n+1)猜想 (15 分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样一直反复 ...
- 鼠标移动在屏幕上显示温度Tip提示功能-CToolTipCtrl类的使用
初学VC++,太多知识不懂,需要不断的查找资料,想通过记录让自己有所积累,主要是怕以后会很快忘记.最近在做一个在屏幕上显示鼠标移动位置的温度值,我利用先缓存一帧图像的温度值,然后,通过鼠标移动消息相应 ...
- 20155302 2016-2017-2 《Java程序设计》第十周学习总结
20155302 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 网络编程的实质就是两个(或多个)设备(例如计算机)之间的数据传输. 网络最主要的优势在于共享 ...
- 20155321 2016-2017-2 《Java程序设计》第十周学习总结
20155321 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 网络概览 局域网和广域网:局域网通常限定在一个有效的地理区域之内,广域网由许多局域网组成.最 ...
- elasticsearch 安装问题
Elasticsearch5.0 安装问题集锦 elasticsearch 5.0 安装过程中遇到了一些问题,通过查找资料几乎都解决掉了,这里简单记录一下 ,供以后查阅参考,也希望可以帮助遇到同样问题 ...
- WPF GDI+字符串绘制成图片(一)
原文:WPF GDI+字符串绘制成图片(一) 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/BYH371256/article/details/83 ...
- 最简单的rman操作
连接: [root@oracle000 ‾]# su - oracle [oracle@oracle000 ‾]$ rman target / lines) Recovery Manager: Rel ...