Time of Update: 2018-12-03
一個很簡單的web伺服器。import java.io.*;import java.net.*;public class MyServer{ public static void main(String[] args){ try{ //建立串連,開啟連接埠 ServerSocket serverSocket = new ServerSocket(8888); //擷取串連 Socket socket =
Time of Update: 2018-12-03
1.拆點,對於第d天,每個點已被拆為d+1個點,下標代號成等差數列 公差n*m.2.起始的時候,s向第0天的n*m中是人的點連條權值為1的邊。3.而後從小到大枚舉每天,假設第t天,那麼對於t-1天的點可以向四周擴充,或不動,向對應在第t天新加的點連條權為1的邊,然後對第t天的n*m點,如果是出口則向匯點連條權值為1的邊,然後從源點到匯點做網路流,如果ans等於人數,則break,return
Time of Update: 2018-12-03
樹形DP的不錯的題目 枚舉第一個點,以此為根dfs,然後對於另一個點v不再路徑u-v上的邊 全要調成指向樹葉,路徑上的邊,相當於01序列化為11....00#include<iostream>#include<vector>#include<algorithm>using namespace std;#define N 3100int dp[N][2],n,sum;struct node{int
Time of Update: 2018-12-03
以1號點為根樹形dp,dp[x]=對每個兒子sum+=min(w(邊權),dp[那個兒子]),dp=sum;這個地方要對limit power進行判斷。對於沒有解的情況,我是用inf作為標記物表示這個點無法被切斷,枚舉兒子 如果有個兒子dp[..]=inf並且w>limit power 那麼就設定父節點dp[x]=inf
Time of Update: 2018-12-03
觀看者:javascript,jquery愛好者。需要一定的繼承基礎,如果沒有可以看我的javascript深入瞭解(繼承)目標:瞭解jquery原型繼承,實現jquery選取器的基礎 $("id"),$("input") ...實現方式:代碼及相關文字解釋。從最簡單方式逐步推進。首先用一個實現一個簡單的實現:$("id") 返回一個jquery對象有一個方法tagName();於是我想到這樣的:$ = window.JQuery = function(id){return new
Time of Update: 2018-12-03
隨著學習的東西原來越多,發現設計模式越來越重要,很多是辛苦的想著要解決代碼中的耦合問題,其實這些東西都已經被總計出來,並歸納為設計模式。這就是我們要去加強學習設計模式的原因。關於設計模式,其中感觸最深的就是動態代理。剛開始接觸這個模式的時候並不知道這個就是代理模式,只是在spring架構中的aop思想用到。後到聽老師的設計模式,原來Spring架構就是運用了 代理來實現面向切面編程的。代理模式其實在很多地方都可以用到,如關於系統的日誌記錄功能,和記錄操作時間等額外操作,都可以利用代理來實現。我想
Time of Update: 2018-12-03
先看一段PHP代碼:<?php $m = new message();$m->index();class message { //$info = "hello"; public function index(){ $info = "hello"; echo $info; }}?>這樣是可以執行的,但是如果使用注釋的方式,那麼就會報錯。至少是什麼都不會輸出。而很神奇的是:<script type =
Time of Update: 2018-12-03
開始我直接枚舉刪邊 就逾時,後來想了下,只要枚舉最短路徑上的邊刪除就行了。。。改了下 就AC了#include<cstdio>#include<cstring>#include<queue>#include<algorithm>#include<set>using namespace std;const int inf=999999999;int
Time of Update: 2018-12-03
#include<cstdio>#include<iostream>using namespace std;const int MOD = 1000000007;typedef long long LL;LL n, m;int prime[37000],is[37000];void getprime(){int cnt=0;for(int i=2;i<37000;i++){if(!is[i]){prime[cnt++]=i;for(int j=i;j<3700
Time of Update: 2018-12-03
現在來說下代碼的clone和提交.1 首先要理解一個概念就是fork.分支。 github是用fork的方式管理的. 如果你需要去參與一個開源項目。那麼你首先需要去拷貝一份代碼到你的github上。 那麼你的這份代碼就相當於是與原始碼的一個副本。 官方的說法就是分支。 那麼你每次提交代碼就會是更新你自己的fork。 那麼別的分支就可以選擇合并的你的fork。這樣就實現了代碼的管理。2 看下具體過程: 1)首先需要載入你需要提交的檔案: git add
Time of Update: 2018-12-03
一 、SelectjQuery擷取Select選擇的Text和Value: 1. $("#select_id").change(function(){//code...}); //為Select添加事件,當選擇其中一項時觸發 2. var checkText=$("#select_id").find("option:selected").text(); //擷取Select選擇的Text 3. var checkValue=$("#select_id").val();
Time of Update: 2018-12-03
搜尋題目推薦及解題報告(8.28更新)2008-06-28 14:31以前的文章要麼太分散,要麼太淩亂,故現在開始,對每一個分類做一個長期更新的匯總貼。格式說明:題目名後面列出個人此題的大致難度(對菜鳥而言)POJ 1069 -The Bermuda
Time of Update: 2018-12-03
1、C++中產生隨機數 需要包含的標頭檔:#include<cstdlib>#include<ctime> 設定隨機種子: srand( time(NULL) );unsigned int i= rand(); 注意:rand()函數產生的隨機數的範圍在0~RAND_MAX之間,RAND_MAX為 0x7fff(32767) 2、當使用sizeof操作符要求數組的大小時,可以直接通過sizeof(數組名)來獲得整個數組的大小,這裡的數組可以是一維數組,也可以是二維數組。
Time of Update: 2018-12-03
爬山法是深度優先搜尋的改進演算法。在這種方法中,使用某種貪心演算法來協助我們決定在搜尋空間中向哪個方向搜尋。由於爬山法總是選擇往局部最優的方向搜尋,所以可能會有“無解”的風險,而且找到的接不一定是最優解。但是他比深度優先搜尋的效率要高很多。 主要的演算法描述如下: 1、構造由根節點組成的1元棧。2、檢查該棧的棧頂元素是否為目標節點,如果是,那麼停止,否則轉向3.3、從棧中刪除棧頂元素並擴充該元素,增加該元素的後代到棧中,進棧的次序按照評估函數值的順序(一般可以使用堆)4、如果棧是空的,那麼失敗,
Time of Update: 2018-12-03
3.3.1. Injecting dependenciesThe basic principle behind Dependency Injection (DI) is that objects define their dependencies (that is to say the other objects they work with) only through constructor arguments, arguments to a factory method, or
Time of Update: 2018-12-03
研究彙編代碼是理解編譯器以及產生的代碼會如何啟動並執行最有效手段之一。 編譯器最佳化代碼的限制:1、程式設計中存在“儲存空間別名使用”的問題。編譯器必須假設不同的指標可能指向儲存空間中相同的位置。2、函數調用(簡略了。。。具體看書) ~~~~~~~~~~~~~~~基本的編碼原則:效能大幅度提升~~~~~~~~~~~~~~~~~~~ 最佳化程式效能的一些方法:1、將調試完的程式完成編譯器層級上的最佳化。(這個目前還沒找到。。。)2、代碼移出這類最佳化包括識別出要執行多次(例如,在迴圈裡)但是計算結
Time of Update: 2018-12-03
上班時間實在沒事,但是自己不能去閑著。 閑來無事就翻開servlet的源碼來看看,來領略下大神的境界。 順便沾點仙氣。 1. HttpServlet 我想凡是做過servlet開發的都應該知道個類。很多時候做web開發都是直接繼承這個HttpServlet類。然後實現doGet,doPost方法。 來看看它的源碼: 首先是定義了一對靜態變數: private static final String METHOD_DELETE = "DELETE";
Time of Update: 2018-12-03
聲明與定義分離標頭檔:用於記錄聲明代碼模組檔案(c檔案/cpp檔案):用於記錄實現代碼 絕大多數串連程式是把一個模組中的所有函數、變數當作整體串連到執行程式中。只要引用了模組中的一個名字,整個模組就進入執行檔案(如果模組10M,則所有引用過這個模組的執行檔案都要超過10M)多個函數的實現,應該分到不同的模組 可(但不一定)放在一個模組的函數 相互調用的函數 一定會被同時調用的函數 open()/close(), new/
Time of Update: 2018-12-03
1、可以在檔案的頭部定義一個__DEBUG宏,值為1,來標記程式處於調試階段還是執行階段。這樣在調試的部分就可以用if(__DEBUG)來包含調試資訊,而不需要調試資訊時,可以直接將__DEBUG宏定義為0.這樣很方便,而且需要屏蔽部分調試資訊時,只需要使用if(!
Time of Update: 2018-12-03
1、在程式設計中可以使用宏定義:#define __DEBUG 1來進行調試,把調試語句放在if(__DEBUG)中,這樣如果不想列印出調試語句,可以直接將__DEBUG宏定義改為 #define __DEBUG