Feed on
文章
评论

本文由抱雪(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 

野人与传教士

本文由抱雪(hugsnow)原创,转载请注明来源 http://www.luoxf.net/
设有m个传教士和m个野人来到河边,打算乘一只船从右岸渡到左岸去。该船最大负载能力为n人,在任何时候,如果野人人数超过传教士人数,那么野人就会把传教士吃掉。他们怎样才能用这条船安全地把所有人都渡过河去呢?
继续阅读 »

猎人过河

猎人带着一框草莓,一只羊和一条狼要过河。但是只有一条小船。条件如下:
* 一次只可以载一样东西。
* 如果让羊和草莓在一起,而猎人不在旁边的话,羊就会把草莓只掉。
* 如果让狼和羊在一起,而猎人不在旁边的话,狼就会把羊吃掉。 继续阅读 »

韩信走马分油问题

本文由抱雪(hugsnow)原创,转载请注明来源 http://www.luoxf.net/

方法很简单
方法一:
1、如果小桶空,从大桶到小桶
2、如果中桶满,从中桶到大桶
3、如果中桶空间能容纳小桶内的,把小桶全倒中桶
4、从小桶倒,把中桶倒满
方法二:完全类似,不过到油的方向为 大桶–>中桶–>小桶
继续阅读 »

審詳春日莫他求,時正節真氣自酬,
五時二刻驚蟄是,十時四刻清明頭,
立夏一日三時六,芒種一日九時收,
二日二時二小暑,二日七時四刻秋,
白露三朝單六刻,寒露三朝六時周,
立冬三朝十一二,大雪細細兩雙流,
小寒四日九時六,五日三時打春牛,
節遇子時加一日,此為捷法記心頭。

量天尺
立春五日起庚由, 惊蛰倒退三时首。
一时一刻清明节, 立夏九时三刻收。
芒种两日退一时, 小暑三日五时求。
五日退三立秋节, 白露六日退一周。
寒露六日四时到, 立冬六日七时求。
大雪六日又四时, 小寒五日九时收。

一掌诀
前九年,二月中, 本年元旦日相同。
月月十五对初一, 千年万载不差宗。

历法数据

一个阴历月:29.530588天
回归年:365.24219879天(365日5小时48分45.5秒)
恒星年:365.25636天(365天6时9分9.5秒)

流星赶月

来自 齐鲁周易网,原帖地址:http://www.qlzhouyi.com/ShowArticle2.asp?ArticleID=195

一、 推算年干支口诀

掌上推算年干支,支子花甲起根源。
阳支都是旬开始,天干为甲尾四年。
隔位逆推十年正,顺推年尾五零三。
逐支加减六十数,掌上推算千万年。
继续阅读 »

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);
            }

本文由抱雪(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 安装即可

本文由抱雪(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
继续阅读 »

« 更新的文章 - 更旧的文章 »