摘要: 题意:n个村庄建p个邮局,最短距离和。dp[MAXN][35];//dp[i][j]表示前i个村庄有j个post且第i个村庄有post的最小值优化前(969ms....):View Code 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <algorithm> 6 7 using namespace std; 8 9 #define MAXN 31010 #define Max(x,y) (x&g 阅读全文
posted @ 2012-10-11 19:58 Missa 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 给你一个n问求使得 a1+a2+..ak==n时 a1*a2*..ak最大。。a1 a2.....不相等。(没看懂题目意思。。)以下转自http://blog.himdd.com/?p=1918思路:将一个数分成2份,如何分,使得这两个数乘积最大。答案是将这个数平分,证明是求x*(n-x)的最大值。基于这种思路,将N分成乘积最大的不相等的多份,应使得其中每份的数相差尽量少,即差值为1的等差数列为最理想状态。构造了一个等差数列以后,再根据剩余值对整个数列的值进行调整。使得相邻元素差值达到最小。这里注意,等差数列的构造应以2为首项,1为首项的话,对乘积没影响。。。(以下证明是从网上得来的)由题意知 阅读全文
posted @ 2012-10-11 14:57 Missa 阅读(1319) 评论(1) 推荐(1) 编辑
摘要: 题意:给你一个n,然后求从2-->n的所有数的欧拉函数的和。欧拉函数模版View Code 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 6 using namespace std; 7 8 #define MAXN 1000010 9 10 long long euler[MAXN],sum_euler[MAXN];//sum_euler[i]表示2-->i的欧拉数和11 int n;12 void get_eu 阅读全文
posted @ 2012-10-11 00:16 Missa 阅读(187) 评论(0) 推荐(0) 编辑
摘要: /*http://baike.baidu.com/view/107769.htm * 欧拉函数:定义:用于计算 p(n),小于等于n的所有与n互质的数的个数。例如p[8]=4,(1,3,5,7)计算公式:p(n)=n*(1-1/p1)*(1-1/p2)....*(1-1/pk)【p1,p2,pk都是n的素因子】另:若n=p1^q1*p2^q2*.....*pk^qk则,p(n)=(p1-1)*p1^(q1-1)*(p1-1)*p2^(q2-1)......*(pk-1)*pk^(qk-1)性质:若m,n互质,φ(mn)=φ(m)φ(n)。当n为奇数时,φ(2n)=φ(n)*/求欧拉函数 elu 阅读全文
posted @ 2012-10-11 00:13 Missa 阅读(279) 评论(0) 推荐(0) 编辑