恒邪

2014年4月7日 #

[ACM] hdu 2079 选课时间(普通型母函数)

摘要: Problem Description又到了选课的时间了,xhd看着选课表发呆,为了想让下一学期好过点,他想知道学n个学分共有多少组合。你来帮帮他吧。(xhd认为一样学分的课没区别)Input输入数据的第一行是一个数据T,表示有T组数据。每组数据的第一行是两个整数n(1 #include using namespace std;int c[45],temp[45];int a[11],b[11];int main(){ int t;cin>>t; int n,k; while(t--) { cin>>n>>k; for(int i=1;i>a... 阅读全文

posted @ 2014-04-07 21:36 恒邪 阅读(183) 评论(0) 推荐(0) 编辑

[ACM] poj 1496 Word Index(组合计数)

摘要: Word IndexTime Limit: 1000MSMemory Limit: 10000KTotal Submissions: 4541Accepted: 2567DescriptionEncoding schemes are often used in situations requiring encryption or information storage/transmission economy. Here, we develop a simple encoding scheme that encodes particular types of words with five o 阅读全文

posted @ 2014-04-07 21:09 恒邪 阅读(227) 评论(0) 推荐(0) 编辑

扩展欧几里德算法

摘要: 不定方程ax+by=c重点:解二元一次不定方程。看起来扩展Euclid算法是不定方程的一种特殊情况,实际上呢,不定方程却是用Euclid算法解的。对 于不定方程ax+by=c,设gcd(a,b)=d,如果ax+by=c有解,则d|c(这也是许多奥数题的切入点)。所以一旦d不是c的约数,那么 ax+by=c一定无解。当d|c时,先求出ax'+by'=d=gcd(a,b)的x'和y',则x=x'*c/d,y=y'*c/d。由上一段可知, 只要ax+by=c有一个解,它就有无数个解。Euclid算法还可以求解同余方程ax≡b(mod m)。这其实和不定 阅读全文

posted @ 2014-04-07 20:48 恒邪 阅读(252) 评论(0) 推荐(0) 编辑

哈理工OJ-1328 相等的最小公倍数

摘要: 题目描述 定义 An 为 1,2,…,n 的最小公倍数,例如,A1=1,A2=2,A3=6,A4=12,5=60,A6=60。 请你判断对于给出的任意整数 n,An 是否等于 An–1。如果 An 等于An-1则输出 YES 否则输出 NO。分析 由最小公倍数的定义我们可以知道,如果 An=An-1 则 An-1 可以被 n 整除,首先,对于一个数 n 如果是素数,那么 An 不等于 An-1,其次,我们分析 n,如果对于小于 n 的每一对因子即 n=a*b(a1,则 lcm(a,b)=n/gcd(a,b) 2 #include 3 #include 4 using namespace st. 阅读全文

posted @ 2014-04-07 20:09 恒邪 阅读(340) 评论(1) 推荐(0) 编辑

[ACM] hdu 1134 Game of Connections(大数+Catalan数)

摘要: Game of ConnectionsTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2923Accepted Submission(s): 1649Problem DescriptionThis is a small but ancient game. You are supposed to write down the numbers 1, 2, 3, ... , 2n - 1, 2n consecutively in clockwise 阅读全文

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

欧几里得算法

摘要: 什么是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) 编辑

导航