上一页 1 ··· 104 105 106 107 108 109 110 111 112 ··· 182 下一页
摘要: 题意:对于n的每个约数a,设a的约数个数为b,求所有b^3的和。分析:我们可以试想,对于一个整数n=a^k(a是质数)n的约数个数一定是k+1,这些约数是a^0,a^1,a^2……。而我们发现每个约数仍然是a^k的形式,所以每个约数的约数个数一定为ki+1(对于约数a^i)。所以约数个数序列应该为1,2,3,4,5……k+1。而对于这个n本题所求的结果一定为1^3,2^3……(k+1)^3。用立方和公式可直接求解。立方和公式:[n*(n+1)/2]^2。当然,本题给出的数可能由多个质因子组成。而这样一来,n的约数就变为a^i * b^j * c^k ……(a,b,c为质因子)。而每个约数的约数 阅读全文
posted @ 2011-07-19 10:59 undefined2024 阅读(345) 评论(2) 推荐(0)
摘要: dfsView Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;#define maxn 20#define maxm 305int n, m;int map[maxn][maxm];int num[maxn];bool g[maxn][maxn];int rownum[maxn];bool found;void input(){ memset(num, 0, sizeof(num)); for (in 阅读全文
posted @ 2011-07-19 09:19 undefined2024 阅读(267) 评论(0) 推荐(0)
摘要: 三分法求单峰函数极值View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>using namespace std;#define pi acos(double(-1))#define eps 10E-11double s;int dblcmp(double &a, double &b){ if (a - eps > b) return 1; if (a + eps < 阅读全文
posted @ 2011-07-19 08:46 undefined2024 阅读(251) 评论(0) 推荐(0)
摘要: 矩阵乘法题意:一个一维数组,全为0,对它进行一系列操作,包括某位+1,某位清零,交换某两位。将这一系列操作进行m次。问数组的最终情况。分析:数组的元素从第一位开始,把第0位附为1,我们构造一个n*n矩阵使得原1*n矩阵每乘以一次这个矩阵,得到的结果就相当于进行了一次一系列操作。然后用矩阵快速幂即可。构造矩阵的方法是:操作一,0行某列位置元素++;操作二,某列清零;操作三,交换两列。矩阵乘法需要优化: for (int i = 0; i < a.x; i++) for (int k = 0; k < a.y; k++) if (a.a[i][k]) for (int j = 0; j 阅读全文
posted @ 2011-07-18 20:39 undefined2024 阅读(931) 评论(0) 推荐(0)
摘要: 题意:给n个block涂4种颜色,要求其中red和green的block为偶数,其余随意。问有多少种涂法。分析:这题我们可以先认为是一道dp题,设f[maxn][4],f[i][j]表示有i个block时,green和red的奇偶性为状态j时(及把j化为二进制第一位表示green是否为奇数,第二位对应red)。则我们可以由f[i - 1]推出f[i]。递推的过程是将f[i-1]的各位进行一些加法运算并附给f[i]的对应位。这个过程我们可以用矩阵来解决。f[i-1]是一个1*4的矩阵,乘以一个4*4的矩阵之后得到一个1*4的矩阵即为f[i]。线代的知识这里就不说了。本题f[0]={1,0,0,0 阅读全文
posted @ 2011-07-18 16:42 undefined2024 阅读(774) 评论(0) 推荐(0)
上一页 1 ··· 104 105 106 107 108 109 110 111 112 ··· 182 下一页