簡單的web伺服器:shhttpd

 作為學習網路編程的入門複習,這兩天參考了一些程式和文檔,自己動手寫了一個小型的http伺服器,作為網路編程的練習。目前伺服器只能簡單的支援以下功能:支援:GET/POST方法返回普通檔案處理cgi(由於cgi我不太熟,測試時只用一個shell指令碼代替,忽略了cgi程式的輸入)目前還不支援目錄的瀏覽和檔案下載,這是以後想要做的,感覺也不難,只是和聯絡網路編程關係不大,呵呵~~~打包後的源碼上傳至:http://hi.csdn.net/link.php?url=http://download.c

正整數n的k拆分問題

演算法小菜鳥剛開始做POJ,1664是一個關於整數拆分的問題,即:將正整數n拆分成k個不能整數的和,0<=k<=n,求有多少種差分方法。比如:將7差分成3個不同整數的拆分法有8中,其中1,1,5和1,5,1屬於同一種拆分法。該問題等同於:將n個完全相同的物品放到k個完全相同的容器中,求有多少種方法。 由於小菜鳥數學不好,感覺是用遞推,但總是寫不出正確的遞推公式,於是google之:http://hi.baidu.com/roba/blog/item/566f5bb58525d5cc3

POJ 1321 棋盤問題(DFS+回溯)

這道題類似於八皇后問題,比較水。這裡記下來是複習一下排列組合和回溯DFS。#include <iostream>#include <cstring>using namespace std;char g[9][9];int s[9][2];int count;int c;int f[9];bool check(int t){int i = 0;int x = s[t][0];int y = s[t][1];if(g[x][y]=='.')return

線段樹基礎

在自然數,且所有的數不大於30000的範圍內討論一個問題:現在已知n條線段,把端點依次輸入告訴你,然後有m個詢問,每個詢問輸入一個點,要求這個點在多少條線段上出現過;最基本的解法當然就是讀一個點,就把所有線段比一下,看看在不線上段中;每次詢問都要把n條線段查一次,那麼m次詢問,就要運算m*n次,複雜度就是O(m*n)這道題m和n都是30000,那麼計算量達到了10^9;而電腦1秒的計算量大約是10^8的數量級,所以這種方法無論怎麼最佳化都是逾時-----因為n條線段是固定的,所以某種程度上說每次

Learning OpenCV: 一個簡單的人眼檢測程式

人眼檢測 分兩步驟: 1. 臉部偵測,得到一個人臉矩形地區2. 在人臉矩形地區進行人眼檢測 以下是部分原始碼: #include "stdafx.h"#include "cv.h"#include "highgui.h"#include <assert.h>void detectEyes(IplImage *img){/*allocate storage*/CvMemStorage* storage = 0;storage = cvCreateMemStorage(0)

狀態壓縮DP POJ 1699解題報告

http://acm.pku.edu.cn/JudgeOnline/problem?id=1699今天在做POJ 1699時,明顯感覺用DP可以解,但是始終找不到合適的狀態方程和子結構。在discuss中看到有人討論用“狀態壓縮dp”求解比較方便,於是花了一下午時間去尋找狀態dp的資料,在上一篇(zz)中看到了一篇講解非常詳細的介紹,於是就開始來分析POJ

Samba共用資料夾拒絕訪問

今天用Samba共用CentOS裡面的檔案夾給Windows使用,無奈在配置正確,關閉防火牆,且檔案屬性均為wrx的情況下,依然被拒絕訪問。弄這個問題花了我不少時間,終於讓我找到了答案:沒有共用檔案給Samba!!!在CentOS中,系統處於安全的考慮,即使擁有著或者許可權合法的情況下,也會拒絕某些進程對檔案的訪問,這時就需要使用chcon這個命令了。於是在我指定了一個目錄後,使用下面的語句即可:chcon -R -t public_content_t

線段樹入門 POJ 2182 Lots Cows

看別人的思路:從後往前推,排在最後一頭牛比他編號小的數量有x頭牛,那麼最後一頭牛的編號必然為x+1。按照這種思路下去,我們把1-n編號的牛排成一排。把x+1這頭牛從裡面刪除。假如倒數第二頭牛在他前面比他編號小的數量有y頭牛,那麼就在這1-n刪掉了求出來的牛後剩下的第y+1頭牛。方法一:直接搜尋(n*n)p[i]表示第i個應該放的cow的id。f[i]=0表示此牛還未被刪除,f[i]=1表示此牛已經被刪除。#include <iostream>#include

OpenCV訓練分類器製作xml文檔(木馬原創)

   在網上找了中文資料,發現大多都是轉載那兩篇文章,而且那兩篇文章講的都有誤差,經過兩天的摸索,我終於訓練分類器成功了,在此與大家分享。 參考英文資料網址: http://note.sonots.com/SciSoftware/haartraining.html#e134e74e   整個過程分為兩步:1.      建立樣本2.      訓練分類器 現在讓我一一講述。 1.      建立樣本 ◆     樣本分兩種:

回溯——排列組合問題

 排列組合與回溯演算法KuiBing感謝Bamboo、LeeMaRS的協助[關鍵字] 遞迴 DFS[前言] 這篇論文主要針對排列組合對回溯演算法展開討論,在每一個討論之後,還有相關的推薦題。在開始之前,我們先應該看一下回溯演算法的概念,所謂回溯:就是搜尋一棵狀態樹的過程,這個過程類似於圖的深度優先搜尋(DFS),在搜尋的每一步(這裡的每一步對應搜尋樹的第i層)中產生一個正確的解,然後在以後的每一步搜尋過程中,都檢查其前一步的記錄,並且它將有條件的選擇以後的每一個搜尋狀態(即第i+1層的狀態節點)

Regex中的模糊比對

字串1:只含有英文字母, 字串2:含有英文字母和*,其中符號*表示匹配任一字元0或者多次,即Regex裡面的含義。   現在給定這樣的兩個串,要求判斷是否匹配? bool isMatch ( const char *str1, const char *str2)   例如:str1 = "hello", str2 = "he*o",則二者匹配,返回true, str1 = "hello", str2 = "he*l",則不匹配,返回false。   bool isMath (

最大流入門POJ 1273 Edmonds-Karp

http://acm.pku.edu.cn/JudgeOnline/problem?id=1273自己的第一個最大流程式,作個紀念。#include <iostream>#include <string.h>using namespace std;const int max_size = 210;long c[max_size][max_size];//容量long flow[max_size][max_size];//初始化任意兩點間的流量位0int

結構體大小及其位域問題(from:byr)

問題: struct mybitfields  {  unsigned short a : 4;  unsigned short b : 5;  unsigned short c : 7;  }test  void main(void)   {  int i;  test.a=2;  test.b=3;  test.c=0;  i=*((short *)&test);  printf("%d/n",i);  }  運行結果是50. 求教高手,怎麼得到的?i=*((short

POJ 2251 (三維迷宮問題) DFS /BFS

這道題開始時用DFS做的,逾時了,這也是意料之中的。後來改用BFS做AC。這道題時最基本的典型的搜尋問題,通過DFS能夠找到一個路徑,但是不能保證是最優的,需要回溯搜尋才能找到最優。通過BFS就能夠找到一個最優解(如果存在),符合標準的BFS搜尋。這裡記錄下來就為了作為搜尋題的基礎,以後能有所進步。#include <iostream>#include <queue>#include <cstring>using namespace std;int

一道類型轉換題(from:byr)

include <stdio.h>  int A[]={1,2,3,4,5,6,7};  #defineLength sizeof(A)/sizeof(A[0])  int main() { int d=-1;printf("%d/n",d<(sizeof(A)/sizeof(A[0])-2));  } 為什麼輸出0?解釋:-1<7-2 左邊-1為int,右邊為size_t,即unsigned型別提升是這樣的:int-->unsigned->long int-

POJ 2531(隨機化思想)

題目大意:給一個完全圖,求最大割。據說這是一個NP難的問題,我開始想的便是DFS+回溯,果然暴力搜尋逾時,後來參考別人的爆搜,進行了一些最佳化,竟然過了。用了400MS。可能有比較好的剪枝方法,可惜我沒找到。這裡主要筆記一下隨機化演算法,畢竟以前沒有見到過。爆搜代碼:#include <iostream>#include <cstring>using namespace std;int g[22][22];int val[22];int max_sum=0;int

POJ 2151 (DP +補集)

ZZ

trie樹(字典樹)介紹及簡單實現

第一次接觸trie樹,翻了一些演算法樹竟然沒有找到。於是在google上各種尋找,現在對自己所瞭解的trie總結一下,以便將來複習,並給出簡單的實現。Trie,又稱字典樹、單詞尋找樹,是一種樹形結構,用於儲存大量的字串。它的優點是:利用字串的公用首碼來節約儲存空間。相對來說,Trie樹是一種比較簡單的資料結構.理解起來比較簡單,正所謂簡單的東西也得付出代價.故Trie樹也有它的缺點,Trie樹的記憶體消耗非常大.當然,或許用左兒子右兄弟的方法建樹的話,可能會好點.其基本性質可以歸納為:1.

POJ 1840 Hash 鏈地址避免衝突

差不多是第一次做HASH演算法,今天用STL裡的map和自己寫的鏈地址避免衝突hash數組做POJ 1840,令人驚訝的是兩種做法的效率竟然差了1300多MS (LT=5000MS),不知道是自己寫的hash函數效率還行,還是STL太慢。下面的代碼是自己寫的hash函數:#include <iostream>using namespace std;struct Node{long num;int count;Node * next;};const int P =

並查集及其應用——kruscal法求最小產生樹

並查集維基百科中是這樣描述的:並查集是一種樹型的資料結構,用於處理一些不相交集合(Disjoint Sets)的合并及查詢問題。常常在使用中以森林來表示。(參考《演算法導論》)並查集有以下基本操作:void make_set(int x):產生只包含x單個元素的集合int find_set(int x):尋找包含元素x的集合“代表”(集合樹中的根節點)void union_set(int x,int

總頁數: 61357 1 .... 21319 21320 21321 21322 21323 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.