- 题目描述: http://poj.org/problem?id=1032
- 题目大意: 议会有N 个议员, 将他(她)们分成多组. 每次会议每组出一个代表, 且每次会议的代表都不完全相同. 求得一种分组情况, 使得能够开会的次数最多. 说白了就是求N 的一种划分 N = a1 + a2 + ... + a(t-1) + a(t), 使得M = a1 * a2 * ... * a(t - 1) * a(t) 最大.
- 1. 1 < a1 < 4; 假设a1 = 1; 那么一个数乘以a1, 乘积并不变大, 还不如把a1 加给其他元素。
- 2. 划分(假设升序)中,相邻元素只差最大为2, 这样的相邻对最多只有一对。 假设有a(k) - a(k - 1) > 2; 则这两个元素一定可以换成(a(k) + 1) 和 (a(k + 1) - 1), 使得乘积更大。所以相邻元素只差不大于2, 或是有且只有一对相邻元素只差为2。
关于该题的一些规则:
假设a1 >= 4;那么a1 可以划分为2 和 (a1 - 2), 2 * (a1 - 2) 一定大于a1.
假设有两对相邻元素只差等于2。 那么同样可以调整这4 个元素大小,使得乘积更大。
鉴于以上规律,对于该题给出以下解决方案:
假设sum( n ) 为整数从2 到n 的和, sum( i ) <= N, 且sum( i + 1 ) > N, t = N - sum( i );
- 如果t = i; 则把t 分成i 个1, 从2 到 i 这 i - 1 个元素分别加1, 最后剩下的一个1 加给最后一个元素. 所以, 最终序列为:3, 4, ... , i - 1, i, i + 2
- 如果t < i;则把t 分成t 个1, 分别加给从i 开始,往下的t 个元素. 所以最终序列为: 2, ... , (i - 2) + 1, (i - 1) + 1, i + 1.(从右到左有t 个加1项 )
#include <iostream> using namespace std; int main() { int n; while(cin>>n) { int i = 1; int sum = 0; while(sum + i + 1 <= n) { i++; sum += i; } //cout<<i<<endl; int t = n - sum; if(i == t) { for(int j = 3; j <= i; j++) cout<<j<<" "; cout<<i + 2<<endl; } else if(t == 0) { int m = 2; while(m < i) cout<<m++<<" "; cout<<i<<endl; } else { int m = 2; while(m <= i - t) cout<<m++<<" "; m = i - t + 2; while(m <= i) cout<<m++<<" "; cout<<i + 1<<endl; } } }
发表评论
-
ACM 之 Java BigInteger
2011-06-01 20:26 0Java 的大整数类在ACM 中大有用武之地 ... -
判断点是否构成多边形, 顶点连续给出
2011-05-26 14:27 0#include <cstdio> #inc ... -
poj pku 1981 Circle and Points 点与圆 位置关系
2011-05-26 11:29 1261题目描述: http://poj.org/problem?id ... -
poj 1385 Lifting the Stone 多边形重心
2011-05-25 11:13 1026题目描述: http://poj.org/problem?i ... -
poj 2676 Sudoku dfs 深搜
2011-05-16 21:05 871题目描述: http://poj.org/problem?i ... -
hdoj 2064 汉诺塔III 递推
2011-05-15 22:29 883题目描述: http://acm.hdu.edu.cn/sh ... -
hdoj 1207 汉诺塔II dp 动态规划
2011-05-15 21:22 1666题目描述: http://acm.hdu.edu.cn/sh ... -
poj 2506 Tiling 递推
2011-05-15 11:18 905题目描述: http://poj.org/problem?i ... -
poj 2420 A Star not a Tree? 多边形 费马点
2011-05-14 18:57 1795题目描述: http://poj.org/problem?i ... -
poj 2954 Triangle Pick 定理
2011-05-14 16:36 1082题目描述: http://poj.org/problem?i ... -
poj 1012 Joseph
2011-05-10 17:42 1231题目描述:poj.org/problem?id=10 ... -
zoj 1081 Points Within 点与多边形关系
2011-05-07 17:51 1131题目描述: http://acm.zju.edu.cn/on ... -
poj 1835 宇航员
2011-05-03 17:00 798题目描述:http://poj.org/problem?id ... -
poj 2398 Toy Storage
2011-04-23 20:19 713题目描述:http://www.poj.org/proble ... -
poj 1654 Area 多边形面积
2011-04-23 20:10 895题目描述:http://poj.org/proble ... -
poj 2318 TOYS 点 直线 位置关系
2011-04-23 10:06 663题目描述:http://poj.org/problem?id= ... -
poj pku 1673 EXOCENTER OF A TRIANGLE 三角形 垂心
2011-04-09 16:41 542题目描述:http://poj.org/problem?id= ... -
pc 111303 uva 10195 The Knights Of The Round Table
2011-04-04 16:06 750题目描述:http://www.programming-cha ... -
pc 111302 uva 10180 Rope Crisis in Ropeland!
2011-04-03 20:46 836题目描述: http://www.programming-ch ... -
poj 1971 Parallelogram Counting 平行四边形个数
2011-04-03 10:05 1212题目描述:http://poj.org/problem?id= ...
相关推荐
北大POJ初级-数学 解题报告+AC代码
组合数学 ACM 和,POJ里用到组合数学的题目
POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类
poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题...
POJ 1012 约瑟夫问题的数学解法及分析POJ 1012 约瑟夫问题的数学解法及分析POJ 1012 约瑟夫问题的数学解法及分析
POJ第1861题源码 POJ第1861题源码 POJ第1861题源码
poj分类poj分类poj分类poj分类
北大POJ1159-Palindrome 解题报告+AC代码
poj 3414解题报告poj 3414解题报告poj 3414解题报告poj 3414解题报告
C语言 poj npu 西工大 C语言Poj答案全完整打包,给有需要的朋友
poj 1012解题报告poj 1012解题报告poj 1012解题报告poj 1012解题报告
poj 2329解题报告poj 2329解题报告poj 2329解题报告poj 2329解题报告
poj 1659解题报告poj 1659解题报告poj 1659解题报告poj 1659解题报告
POJ1503解答 POJ1503解答,正确答案(已通过POJ)
北大POJ2002-Squares 解题报告+AC代码
POJ1048,加强版的约瑟夫问题 难度中等
北大POJ2389-Bull Math 解题报告+AC代码
POJ1083的代码,POJ1083的代码,POJ1083的代码
poj 百练 题目分类 poj 百练 题目分类
poj 1001答案