恒邪

上一页 1 ··· 4 5 6 7 8 9 10 11 12 13 下一页

2014年4月7日 #

欧几里得算法

摘要: 什么是GCD?GCD是最大公约数的简称(当然理解为我们伟大的党也未尝不可)。在开头,我们先下几个定义: ①a|b表示a能整除b(a是b的约数) ②a mod b表示a-[a/b]b([a/b]在Pascal中相当于a div b) ③gcd(a,b)表示a和b的最大公约数 ④a和b的线性组合表示ax+by(x,y为整数)。我们有:若d|a且d|b,则d|ax+by(这很重要!)欧几里得算法又称为辗转相除法,设两个数 a,b则 a,b的最大公约 gcd(a,b)=gcd(b,a%b) 不妨设 a>=b,c=gcd(a,b),a=kc,b=jc,则 k,j 互素(否则 c 不是 a,b 的最 阅读全文

posted @ 2014-04-07 19:10 恒邪 阅读(177) 评论(0) 推荐(0) 编辑

组合数打表

摘要: 代码:#include #include using namespace std;int c[11][11];void init(){ memset(c,0,sizeof(c)); c[0][0]=c[1][0]=c[1][1]=1; for(int i=2;i<=10;i++) { c[i][0]=c[i][i]=1; for(int j=1;j<i;j++) c[i][j]=c[i-1][j]+c[i-1][j-1]; }}int main(){ init(); cout<<c[3][2]<<end... 阅读全文

posted @ 2014-04-07 16:50 恒邪 阅读(153) 评论(0) 推荐(0) 编辑

[ACM] hdu 1521 排列组合(指数型母函数)

摘要: 排列组合Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2132Accepted Submission(s): 877Problem Description有n种物品,并且知道每种物品的数量。要求从中选出m件物品的排列数。例如有两种物品A,B,并且数量都是1,从中选2件物品,则排列有"AB","BA"两种。Input每组输入数据有两行,第一行是二个数n,m(1#include #include #incl 阅读全文

posted @ 2014-04-07 14:38 恒邪 阅读(196) 评论(0) 推荐(0) 编辑

hdu acm 1051 sticks

摘要: 看上去并不是很复杂的深搜题,很容易写出可通过测试的代码,但要注意剪枝,这类搜索题考察对剪枝的要求一直没发现,以至于一直TLE。。。虽然代码写得快,但是考虑优化时极其浪费时间,最后在各方面的帮助下 还是写出了AC的代码 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 8 int n,falg,a[70],vis[70],ans; 9 void dfs(int fa,int s,int c)10 {11 12 if(c==1){falg=0;return;}13 if(fa==... 阅读全文

posted @ 2014-04-07 14:28 恒邪 阅读(148) 评论(0) 推荐(0) 编辑

2014年4月6日 #

[ACM] hdu 1521 排列组合(组合+DFS)

摘要: 排列组合Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2119Accepted Submission(s): 875Problem Description有n种物品,并且知道每种物品的数量。要求从中选出m件物品的排列数。例如有两种物品A,B,并且数量都是1,从中选2件物品,则排列有"AB","BA"两种。Input每组输入数据有两行,第一行是二个数n,m(1#include using namespac 阅读全文

posted @ 2014-04-06 23:16 恒邪 阅读(697) 评论(0) 推荐(0) 编辑

[ACM] hdu 1864 最大报销额(01背包或贪心)

摘要: 最大报销额Time Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 14982Accepted Submission(s): 4240Problem Description现有一笔经费可以报销一定额度的发票。允许报销的发票类型包括买图书(A类)、文具(B类)、差旅(C类),要求每张发票的总额不得超过1000元,每张发票上,单项物品的价值不得超过600元。现请你编写程序,在给出的一堆发票中找出可以报销的、不超过给定额度的最大报销额。Input测试输入包含若 阅读全文

posted @ 2014-04-06 23:05 恒邪 阅读(338) 评论(0) 推荐(0) 编辑

2014年4月5日 #

[ACM] hdu 2067 小兔的棋盘(卡特兰数Catalan)

摘要: 小兔的棋盘Time Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5814Accepted Submission(s): 3186Problem Description小兔的叔叔从外面旅游回来给她带来了一个礼物,小兔高兴地跑回自己的房间,拆开一看是一个棋盘,小兔有所失望。不过没过几天发现了棋盘的好玩之处。从起点(0,0)走到终点(n,n)的最短路径数是C(2n,n),现在小兔又想如果不穿越对角线(但可接触对角线上的格点),这样的路径数有多少?小兔想了很 阅读全文

posted @ 2014-04-05 20:57 恒邪 阅读(742) 评论(0) 推荐(0) 编辑

[ACM] poj 2249 Binomial Showdown (排列组合公式优化)

摘要: DescriptionIn how many ways can you choose k elements out of n elements, not taking order into account?Write a program to compute this number. InputThe input will contain one or more test cases. Each test case consists of one line containing two integers n (n>=1) and k (0using namespace std;const 阅读全文

posted @ 2014-04-05 20:02 恒邪 阅读(191) 评论(0) 推荐(0) 编辑

队列逆置

摘要: 思路:用一个栈起到过渡的作用。先将队列中的元素放入栈中,然后初始化队列,再将元素从栈中取出放到初始化的队列中。代码:#include #include #include using namespace std;const int maxn=10;typedef struct{ char data[maxn]; int front,rear;}Queue;typedef struct{ char data[maxn]; int top;}Stack;void Reverse(Queue &q,Stack &s){ s.top=-1; while(q.front... 阅读全文

posted @ 2014-04-05 14:34 恒邪 阅读(203) 评论(0) 推荐(0) 编辑

[ACM] 括号匹配问题(栈的使用)

摘要: 括号配对问题时间限制:3000 ms | 内存限制:65535 KB难度:3描述 现在,有一行括号序列,请你检查这行括号是否配对。输入 第一行输入一个数N(0#include #include using namespace std;char e[10000];bool match(stack s,char e[],int n){ for(int i=0;i>t; while(t--) { cin>>e; int len=strlen(e); stacks; if(match(s,e,len)) c... 阅读全文

posted @ 2014-04-05 13:18 恒邪 阅读(181) 评论(0) 推荐(0) 编辑

上一页 1 ··· 4 5 6 7 8 9 10 11 12 13 下一页

导航