Time of Update: 2018-12-07
UVA_10334 這個題目多列幾項就可以猜出來是fibonacci數列。 如果要證明的話,我們不妨來看下折射次數為n的光線是怎麼構成的,實際上它們都是在折射次數為n-1的最終的射出光線與3條橫線的交點位置反向畫一條射出光線形成的。 因此,我們可以得知折射次數為n-1的所有光路中的最終的射出光線與橫線的交點的數量就是折射次數為n的光路的總數。
Time of Update: 2018-12-07
POJ_2728 最優比率產生樹問題,黑書上有詳細的介紹,在求的時候可以直接二分K,也可以先假定一個K然後求得一個新的K,如此反覆迭代下去。 對於這個題而言,如果直接二分的話,大概二分50次就可以保證精度了,而迭代的話大概10次就可以保證精度了,所以迭代的效率還是高一些。View Code 直接二分#include<stdio.h>#include<string.h>#include<algorithm>#include<math.h>
Time of Update: 2018-12-07
書是1月4號到的,1月9號開始認真學了兩三天,之後陸陸續續翻了一下豆瓣的連結:http://book.douban.com/subject/1139426/matrix67的縮寫:《資料結構與演算法分析》5000字縮寫(上)《資料結構與演算法分析》5000字縮寫(中)《資料結構與演算法分析》5000字縮寫(下)羅聰的學習筆記:http://www.luocong.com/dsaanotes/ 與演算法導論的比較這本書沒演算法導論那麼有名,起點也比算導略高一些,300多頁比演算法導論薄不少。對我來
Time of Update: 2018-12-07
最簡單的最大流演算法,不斷搜尋增廣路增廣。這是很不划算的演算法,因為效率太低了,隨便一個資料都能把它卡住。雖然現在10分鐘就能打出一個沒有錯誤的SAP,花很長時間搞出這個很不划算。但是,我不能死記一個進階的演算法而連最基礎的演算法都打不出來。競賽雖然功利,但是學習演算法也並不是完全為了競賽。在網上找,只能找到幾個,因為搞競賽至少也要用個EK,很少有人做題用DFS的。找到的幾個,有的寫得太醜了,有的只是給出了過程,反正找不到滿意的。因為過程倒是很好理解,自己嘗試打了一下,但是調不過去。最後在htt
Time of Update: 2018-12-07
二分答案,然後用容斥原理求1-mid中與m互質的個數注意二分的上界View Code #include<stdio.h>#include<vector>using namespace std;int m,n;__int64 solve(int r,__int64 n){ vector<int> p;int i;for(i=2;i*i<=r;i++){if(r%i==0){ p.push_back(i);while(r%i==0
Time of Update: 2018-12-07
int oldRowNumber = -1;private void c1FlexGrid1_MouseMove(object sender, MouseEventArgs e){ // 擷取滑鼠指向的 Row 對象 int newRowNumber = c1FlexGrid1.MouseRow; // if 中最後一個條件是必須的,否則顏色剛轉換又被恢複了 if (newRowNumber > 0 && newRowNumber <
Time of Update: 2018-12-07
ping 對方IP 在用arp -a 查看機器上的arp緩衝,其中一個是你自己機器的還有個就是那個IP的用ipconfig /all 查自己的MAC地址查同網段其他機器的nbtstat -A ip 或者 ping過的IP地址其主機nic的mac地址都會儲存到arp緩衝裡面用arp -a就可以查看裡面的內容。(1)根據IP地址查對方的機器名和MAC地址:C:\>nbtstat -A 202.110.96.75 NetBIOS Remote Machine Name Table Name
Time of Update: 2018-12-07
UVA_11008 這個題目由於樹的數目很少,我們可以把樹的狀態壓縮成一個整數,並依此來進行狀態轉移。 為了方面後續的狀態轉移,我們可以預先處理出任意兩個樹連線上樹的分布情況,處理的時候同樣選擇把狀態壓縮成一個整數,這樣在後面就只需要一個位元運算的式子就可以消去這條線上所有的樹了。 這樣對於一個樹林的狀態tree,我們就可以枚舉其中兩棵樹,打掉這條線上的所有樹就可以了,用記憶化搜尋實現起來會比較方便。
Time of Update: 2018-12-07
UVA_138 這個題目讓我第一次過了一把打表的癮,自從悠然告訴我真正的打表法該怎麼用了以後,這是第一次實踐。 當然後來又學了一種佩爾方程解法,根據已知我們可以化簡得到一個二元一次方程(2n+1)^2-8*m^2=1,然後找到基本解2n+1=3和m=1,依據遞推公式找到後面的10對m、n列印出來即可。//打表程式#include<stdio.h>#include<string.h>int main(){ freopen("UVA_138(1).cpp",
Time of Update: 2018-12-07
UVA_10247 我們不妨先對k叉樹由n-1層變成n層時這一情況討論一下,看看是否能得到一個遞推式。 不妨設f[i]表示k叉樹n層時的方案種數,設g[i]為k叉樹i層時頂點的個數,首先變成n層時,根節點必須填最小的數,根節點的子節點呢?由於標籤都是不同的,那麼每棵子樹都可以從剩下的標籤中選出g[n-1]個標籤即可。這樣我們就得到了遞推式f[n]=multiply{C(i*g[n-1],g[n-1])*f[n-1]}(1<=i<=k)。
Time of Update: 2018-12-07
UVA_763 這個AC得有點暈暈乎乎的,我只是找到了一個可行的方式可以構造出來結果。首先我們可以看到,input的序列實際上代表著每一個斐波那契數的數量0或者1,那麼它們之間的運算應該也滿足斐波那契通項的運算f(n)=f(n-1)+f(n-2)。在紙上畫了一下,發現對於任意一個局部而言,也就兩種形式的運算。 ①例如001+010=100,或者寫成011=100,這個就對應著f(n-1)+f(n-2)=f(n)。 ②例如0100+0100=1001,或者寫成0200=1001,
Time of Update: 2018-12-07
UVA_11027 首先如果要組成迴文串,最多隻能有一種字母是奇數個。 然後我們不妨設要找第N個迴文串,那麼自然先挑字典序最小的一對放在兩端,這樣算一下這種情況一共有p種,如果p<N,說明當前應該放字典序更大一點的,於是我們令N=N-p,然後再嘗試下一種方法。
Time of Update: 2018-12-07
UVA_10105 組合題,用了一下LRJ書上遞推計算群組合數的方式。#include<stdio.h>#include<string.h>#define MAXD 20int N, K;long long int C(int m, int n){int i;long long int ans = 1;if(n - m < m) m = n - m;for(i = 1; i <= m; i ++) ans = ans *
Time of Update: 2018-12-07
SGU_225由於在dp的時候需要記錄上面兩行放置馬的狀態,以及馬的數量,這樣狀態數就相當多了,直接交寫完的dp就TLE了。暫時沒有想到好的辦法,所以拿自己dp的程式打了個表交上去AC了。// 注意:這個程式是用來打表的,並不是可以直接提交的程式。#include<stdio.h>#include<string.h>#define MAXD 20#define HASH 100007#define SIZE 2000010int N, K, ucode[MAXD],
Time of Update: 2018-12-07
HDU_2442 如果用遞推形式的dp的話,需要記錄兩行輪廓線的狀態,然後根據狀態逐格dp,逐一討論每個圖形是否能夠嵌入到目前狀態中。 由於寫搓了,直接交的時候TLE了,所以就乾脆先將所有狀態預先處理出來了,然後每次O(1)輸出正確結果。#include<stdio.h>#include<string.h>#include<algorithm>#define MAXN 110#define MAXM 6#define ST 4096int N,
Time of Update: 2018-12-07
Manhattan WiringTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 1110 Accepted: 634DescriptionThere is a rectangular area containing n × m cells. Two cells are marked with “2”, and another two with “3”. Some cells are occupied by obstacles.
Time of Update: 2018-12-07
昂貴的聘禮Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 27365 Accepted:
Time of Update: 2018-12-07
方法主要有2點:1.在GetResponse()逾時後要重新發送請求;2.檢查是否異常,捕獲或拋掉異常。publicstring GetHtml(string URI) { string fullhtml=null; while(true) { try { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(URI); req.Method ="GET"; req.UserAgent
Time of Update: 2018-12-07
近期,在一個項目中大量使用DWR,但是,在上線不了多久以後,就頻繁出現死機問題。 經過多番排查(使用YourKit),終於將問題鎖定在死結問題上,並定位在DWR的org.directwebremoting.impl.DefaultScriptSessionManager.invalidate方法上。 經過Google,找到了官方的Bug跟蹤:http://getahead.org/bugs/browse/DWR-60 根據官方的說法,此Bug將在2.0.rc4
Time of Update: 2018-12-07
在處理一個維度時候,提示如下的錯誤:內部錯誤: 操作未能成功,已終止。內部錯誤: 操作未能成功,已終止。出現以下系統錯誤: 沒有註冊類別 。進階關聯式引擎中存在錯誤。 無法與 DataSourceID 為“EtoonDM”、名稱為“EtoonDM”的資料來源建立串連。OLAP 儲存引擎中存在錯誤: 處理 ID 為“單元”、名稱為“單元”的 dimension 時出錯。OLAP 儲存引擎中存在錯誤: 處理“AnalysisEtoon”資料庫的“單元”維度“單元”屬性時出錯。伺服器: 操作已取消。