Jul 21st, 2008 作者 hugsnow
本文由抱雪(hugsnow)原创,转载请注明来源 http://www.luoxf.net/
1 #include <algorithm>
2 #include <vector>
3 #include <iterator>
4 #include <iostream>
5 using namespace std;
6 /**
7 * 分析:组合无序,所以不妨设降序排列
8 * 第一个解是[n,n-1,...,n-r+1]
9 * 解的条件是位置i上的元素A[i]应该满足
10 * i+A[i]>=r
11 * 回溯法:对最后一个元素减一
12 * 如果满足条件则得到一个新解
13 * 如果不满足,一直向前回溯到该位满足为止
14 * 然后把满足的那位后面的依次等于前面减一
15 * 从而得到一组新解,然后继续
16 * 如果已经回溯到第一位仍不满足
17 * 则所有解都已经找到,终止
18 */
19 vector <vector <int> > comb(int n,int r){
20 vector <vector <int> > vv;
21 vector <int> tmp(r);
22 int i;
23 bool f=false;
24 for(i=0;i<r;i++)tmp[i]=n-i;
25 vv.push_back(tmp);
26 while(true){
27 tmp[r-1]--;
28 for(i=r-1;i>=0;i--){
29 if(tmp[i]+i>=r)
30 break;
31 else{
32 if(i==0){
33 f=true;
34 break;
35 }
36 tmp[i-1]--;
37 if(tmp[i-1]+i-1>=r){
38 for (int j=i; j < r; j++) {
39 tmp[j]=tmp[j-1]-1;
40 }
41 }
42 }
43 }
44 if(f)break;
45 vv.push_back(tmp);
46 }
47 return vv;
48 }
49
标签:原创
分类 程序 | 没有评论 »
Jul 10th, 2008 作者 hugsnow
本文由抱雪(hugsnow)原创,转载请注明来源 http://www.luoxf.net/
设有m个传教士和m个野人来到河边,打算乘一只船从右岸渡到左岸去。该船最大负载能力为n人,在任何时候,如果野人人数超过传教士人数,那么野人就会把传教士吃掉。他们怎样才能用这条船安全地把所有人都渡过河去呢?
继续阅读 »
分类 程序 | 没有评论 »
猎人带着一框草莓,一只羊和一条狼要过河。但是只有一条小船。条件如下:
* 一次只可以载一样东西。
* 如果让羊和草莓在一起,而猎人不在旁边的话,羊就会把草莓只掉。
* 如果让狼和羊在一起,而猎人不在旁边的话,狼就会把羊吃掉。 继续阅读 »
分类 程序 | 没有评论 »
本文由抱雪(hugsnow)原创,转载请注明来源 http://www.luoxf.net/
方法很简单
方法一:
1、如果小桶空,从大桶到小桶
2、如果中桶满,从中桶到大桶
3、如果中桶空间能容纳小桶内的,把小桶全倒中桶
4、从小桶倒,把中桶倒满
方法二:完全类似,不过到油的方向为 大桶–>中桶–>小桶
继续阅读 »
标签:原创
分类 程序 | 没有评论 »
Jun 23rd, 2008 作者 hugsnow
審詳春日莫他求,時正節真氣自酬,
五時二刻驚蟄是,十時四刻清明頭,
立夏一日三時六,芒種一日九時收,
二日二時二小暑,二日七時四刻秋,
白露三朝單六刻,寒露三朝六時周,
立冬三朝十一二,大雪細細兩雙流,
小寒四日九時六,五日三時打春牛,
節遇子時加一日,此為捷法記心頭。
量天尺
立春五日起庚由, 惊蛰倒退三时首。
一时一刻清明节, 立夏九时三刻收。
芒种两日退一时, 小暑三日五时求。
五日退三立秋节, 白露六日退一周。
寒露六日四时到, 立冬六日七时求。
大雪六日又四时, 小寒五日九时收。
一掌诀
前九年,二月中, 本年元旦日相同。
月月十五对初一, 千年万载不差宗。
标签:资料
分类 周易 | 没有评论 »
Jun 23rd, 2008 作者 hugsnow
一个阴历月:29.530588天
回归年:365.24219879天(365日5小时48分45.5秒)
恒星年:365.25636天(365天6时9分9.5秒)
分类 周易 | 没有评论 »
Jun 23rd, 2008 作者 hugsnow
来自 齐鲁周易网,原帖地址:http://www.qlzhouyi.com/ShowArticle2.asp?ArticleID=195
一、 推算年干支口诀
掌上推算年干支,支子花甲起根源。
阳支都是旬开始,天干为甲尾四年。
隔位逆推十年正,顺推年尾五零三。
逐支加减六十数,掌上推算千万年。
继续阅读 »
分类 周易 | 没有评论 »
Jun 19th, 2008 作者 hugsnow
function ip2number($ip){
$t=explode('.',$ip);
$x=0;
for($i=0;$i<4;$i++){
$x = $x*256+$t[$i];
}
return $x;
}
function number2ip($num){
$t=$num;
$a=array();
for($i=0;$i<4;$i++){
$x=$t%256;
if($x<0)$x+=256;
array_unshift($a, $x);
$t = intval($t/256);
}
return implode('.',$a);
}
标签:原创
分类 程序 | 没有评论 »
Jun 19th, 2008 作者 hugsnow
本文由抱雪(hugsnow)原创,转载请注明来源 http://www.luoxf.net/
虽然 ubuntu 的软件仓库中有swi-prolog 的 deb 包(包括xpce),但是安装后 xpce 不可用,帮助也就成了文本模式,也只能使用 edit 用 vim 模式编辑 , emacs 不可用,上官网可惜没有 deb 的包,但是有 rpm 包,于是用 alien 转换
sudo apt-get install alien
sudo alien pl-xxxx.xxx.pl
然后用 dpkg -i pl-xxxx.xxx.deb 安装即可
分类 程序 | 没有评论 »
Jun 17th, 2008 作者 hugsnow
本文由抱雪(hugsnow)原创,转载请注明来源 http://www.luoxf.net/
分析:先把123456789拆分成若干个数,分析可知不能拆分为3位以上的数,这些数可正可负,如果这些数的和是100则打印之,swi-prolog程序如下:
如题:在123456789之间加入任意个加减号使算式结果为100。如:
1+2+3-4+5+6+78+9 =100
1+2+34-5+67-8+9 =100
继续阅读 »
分类 程序 | 没有评论 »