上一页 1 ··· 8 9 10 11 12 13 14 15 下一页
摘要: /*挑战程序设计竞赛——第2版P73*/#include#include#include#define MAX_N 100using namespace std;int heap[MAX_N], sz = 0;void push(int x){ //自己结点的编号 int i = sz++; while (i > 0) { int p = (i - 1) / 2; //如果没有大小颠倒则退出 if (heap[p] = x)break; heap[i] = heap[a]; i = a; } ... 阅读全文
posted @ 2014-01-10 14:30 偶尔会寂寞 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。给定K、L,求L位K好数的数目。#include__int64 f[20][20];int main(){ int k,l,i,j,p; __int64 sum=0; scanf("%d%d",&k,&l); for(i=0;i<=k-1;i++) f[1][i]=1; for(i=2;i<=l;i++) { for(j=0;j&l 阅读全文
posted @ 2014-01-10 14:00 偶尔会寂寞 阅读(376) 评论(0) 推荐(0) 编辑
摘要: /*最长上升子序列*//*输入:54 2 3 1 5输出:3*/#include#define MAX_N 100#define max(x, y) x>y?x:yusing namespace std;int n;int a[MAX_N];int dp[MAX_N];void LIS(){ int res = 1; for(int i = 0; i >n; for(int i = 0; i >a[i]; LIS(); system("PAUSE"); return 0;} 阅读全文
posted @ 2013-11-25 20:47 偶尔会寂寞 阅读(122) 评论(0) 推荐(0) 编辑
摘要: #include#include#include#include#define MAX 10000000bool b[MAX];void Prime(){ int num = 0, t = sqrt(1.0*MAX); memset(b, true, sizeof(b)); for(int i=2; i < t; i++) { if(b[i]) { for(int j = 2; j * i < MAX; j++) b[j*i]=false; } } for(int... 阅读全文
posted @ 2013-11-24 17:37 偶尔会寂寞 阅读(229) 评论(0) 推荐(1) 编辑
摘要: /*最长公共子序列*/#include#include#define max(x, y) a>b?a:b#define For(t, i, j) for(t = i; t = c[i][j-1]) { c[i][j] = c[i-1][j]; b[i][j] = 2;//正上 } else { c[i][j] = c[i][j-1]; b[i][j] = 3;//左 } } cout>x>>y; LCS(); system("pause"); return 0;} 阅读全文
posted @ 2013-11-24 11:37 偶尔会寂寞 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 欧几里得算法中,计算 x, y 的最大公约数的方法是辗转相除,例如:gcd (26, 15)26 % 15 = 1 ... 1115 % 11 = 1 ... 411 % 4 = 2 ... 34 % 3 = 1 ... 13 % 1 = 3 ... 0 可知,gcd (26, 15) = 1如果 gcd(x, y) = r,那么有 ax + by = r,可以看出,上面的步骤实际上是可以直接得出 a, b 的:26 % 15 = 1 ... 11 => 11 = 26 - 15 1 1 -115 % 11 = 1 ... 4 => 4 = 15 - 11 = 15 - (26 - 阅读全文
posted @ 2013-11-23 14:03 偶尔会寂寞 阅读(198) 评论(0) 推荐(0) 编辑
摘要: #includeusing namespace std;void p( int divide, int v,int n, int a[]){ //打印所有划分情况,divide是最大划分数,v是数组 if( divide > n ) //下标,n是待划分数 divide = n; //最大划分数永远不大于被划分数 for( int i = divide; i >=1; i-- ){ if( n == i){ //一种划分情况完成,打印数组 a[v]=i; cout>n; while( n>n; } a=new int[n]; cout<<"一共有& 阅读全文
posted @ 2013-11-22 20:52 偶尔会寂寞 阅读(212) 评论(0) 推荐(0) 编辑
摘要: /*4 52 31 23 42 2_____7*/#include#define MAX 1000using namespace std;int max(int n1, int n2){return n1>n2?n1:n2;}int dp[MAX][MAX], n, m, w[MAX], v[MAX];int rec(int i, int j){ if(dp[i][j]>=0) return dp[i][j]; int res; if(i==n){ res=0; }else if(j>n >> m; for(i=0; i>w[i] >>v[i]; 阅读全文
posted @ 2013-11-22 20:25 偶尔会寂寞 阅读(124) 评论(0) 推荐(0) 编辑
摘要: #include#includeint main(){ unsigned int e_n = 0XFFFFFFFE, e_nt = ~e_n;//反 int n = sizeof(e_n); printf("%X\n", e_nt);//十六进制 unsigned int a = 0X00001111,b = a & e_n;//与 printf("%X\n", b); unsigned int c = e_n | a;//或 printf("%X\n", c); unsigned int d = e_n ^ a;//异或 p 阅读全文
posted @ 2013-11-20 20:29 偶尔会寂寞 阅读(152) 评论(0) 推荐(0) 编辑
摘要: Fence RepairTime Limit:2000MSMemory Limit:65536KTotal Submissions:21209Accepted:6762DescriptionFarmer John wants to repair a small length of the fence around the pasture. He measures the fence and finds that he needsN(1 ≤N≤ 20,000) planks of wood, each having some integer lengthLi(1 ≤Li≤ 50,000) uni 阅读全文
posted @ 2013-11-18 22:08 偶尔会寂寞 阅读(313) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 下一页