Time of Update: 2018-12-05
如下9行代碼,輸出結果說明了問題:#include <stdio.h>int main() { float f = 0.01; int i = 1800; printf("%d/n", (int)(f*i)); printf("%f/n", f*i); return 0;}輸出:1718.000000編譯上述程式時在float f = 0.01語句處會出現一個warning: truncation from 'double' to 'float'改為:float f = 0.01f;
Time of Update: 2018-12-05
題目:http://acm.jlu.edu.cn/joj/showproblem.php?pid=1017非常簡單的回溯,沒有用任何的限界函數就可以AC。代碼如下: #include <cstdio> int n;char m[5][5];int ans, cn;bool ok(int i, int j) { if(m[i][j] == 'X') return false; for(int t = j-1; t >= 1 && m[i][t]
Time of Update: 2018-12-05
兩個題目解題思想非常相似。就是把一個問題轉化為規模較小的問題,在轉化的過程中小問題與原問題本質上一致。這樣,可以通過把小問題轉化為更小的問題。尋找發帖水王題目是找出一堆資料中出現次數超過總數一半的那個資料。《編程之美》上的分析是:如果每次刪除兩個不同的資料,那麼剩下的資料列表中,我們要找的那個資料的出現次數仍然超過總數的一半。於是,可以在O(N)的時間複雜度內和O(1)的空間複雜度解決這個問題。JOJ
Time of Update: 2018-12-05
題目:http://acm.jlu.edu.cn/joj/showproblem.php?pid=2039演算法:動態規劃 分析如下:設函數f(n,k)表示大小為n的地圖中放k個blockhouse的方法數。那麼,放置blockhouse的方法無外乎以下兩種:1. 一個blockhouse放在了第一行第一個位置。2.
Time of Update: 2018-12-05
這是《編程之美》的2.20題目,給出一段C#代碼,要求不用電腦,理解程式並回答問題。下面是從C#代碼中改寫成的C++代碼:#include <iostream>#include <limits>using namespace std;int main() { int rg[] = {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29,30,31}
Time of Update: 2018-12-05
這是在解JOJ 1170題目的時候遇到的問題,使用replace函數得不到期望結果,調試發現replace函數沒有正確執行,查看STL中的原始碼發現了問題。針對這個問題重新寫一小段測試代碼:#include <algorithm> #include <cstdio> #include <ctime> #include <cstdlib> using namespace std;int main() { int testArr[16], i;
Time of Update: 2018-12-05
題目:http://acm.jlu.edu.cn/joj/showproblem.php?pid=1170根據題目的輸入特點,用kruskal演算法最方便。代碼:#include <cstdio> #include <vector> #include <algorithm>
Time of Update: 2018-12-05
題目:Mathematicians are able to solve many a mythical problem. They indeed do much for the mankind. But sometimes they play trick to make some difficult problems for us to solve. The equation problem is one of them. Consider the equation like this: x1+
Time of Update: 2018-12-05
class ControlMover { public enum Direction { Any, Horizontal, Vertical } public static void Init(Control control) { Init(control, Direction.Any); } public static void Init(Control control, Direction direction) { Init(control,
Time of Update: 2018-12-05
本來想每天一破的,發現我天真了。目標:crackme.rar先檢查有沒有殼: crackme6.exe:ASPack 2.x (without poly) -> Alexey Solodovnikov [Overlay] 用AspackDie1.41脫殼後: unpacked.ExE:LCC Win32 1.x -> Jacob Navia [Overlay] 用w32dasm開啟,發現了:GetDlgItemTextA 很好,接下來用OD開啟。 用Ctrl+N
Time of Update: 2018-12-05
在online judge上做題的時候,通常程式要讀入大批輸入資料進行測試。每次運行都從鍵盤上敲入測試資料很麻煩。為了省卻鍵盤輸入的麻煩,往往使用freopen進行輸入輸出重新導向。但需要在測試完成後注釋掉它們。我們可以用作業系統內建的重新導向來完成,例如,編譯後的程式為test.exe,測試資料放在in.txt中。我們可以這樣進行輸入重新導向:test < in.txt表示從in.txt中讀取輸入資料。還可以同時進行輸出重新導向:test < in.txt >
Time of Update: 2018-12-05
題目:http://acm.jlu.edu.cn/joj/showproblem.php?pid=1002每個人是有向圖中的一個點,資訊的傳遞是一條有向邊。傳遞所需的時間為邊的權。題目的要求實際就是在該圖中能否找到一點,使該點到其餘點都有路徑可達。題目所要的答案就是這個點到其它點的最短路徑中最長的那條路徑的長度。所以,解法就是使用floyed演算法求出圖中每個點到其餘點的最短路徑,在那些到其餘點都有路徑可達的點當中,找出最長的路徑的長度。也可以對圖的n個點每個點都運行一次Dijkstra演算法,
Time of Update: 2018-12-05
以前只知道使用遞迴或遞推的方法,最近在CSDN論壇上學到一種新的解法,在自己所知的幾個演算法裡,它具有最好的運行效率。這種方法使用下面這個關於Fibonacci數的矩陣恒等式:
Time of Update: 2018-12-05
工具:ILMerge:http://download.microsoft.com/download/1/3/4/1347C99E-9DFB-4252-8F6D-A3129A069F79/ILMerge.msi預設安裝位置:C:\Program
Time of Update: 2018-12-05
題目:http://acm.jlu.edu.cn/joj/showproblem.php?pid=1003圖的著色問題。因為已知任何平面圖都可以用不多於四種的顏色進行著色,並且使相鄰頂點的顏色不同。所以分別使用1,2,3,4四種顏色進行試探。使用回溯法,代碼如下:#include <stdio.h> #include <string.h>
Time of Update: 2018-12-05
今天考試,給出了base64編碼的規則,需要編寫一個程式實現base64解碼(對於字串中有中文或者其它多位元組字元的,要注意他們的編碼,比如對於中文字元,使用的是UTF8而不是GB2312,這一點在最後面有說明)。 base64編碼規則概述: 在密碼學領域裡,非常多的加密想法極有創意,base64便是其中一種。雖然規則簡單,但值得仔細品味欣賞。關於base64編碼的細節和應用,網上能搜尋到很多資料。
Time of Update: 2018-12-05
談論排序的時候,絕對不會少了插入排序演算法,它實在是太經典了,而且十分簡單。演算法:插入排序Insertion_sort(A)for j = 2 to A.length do key=A[j] i = j-1 while(i>0 &&A[i]>key) do A[i+1]=A[i] i = i-1;
Time of Update: 2018-12-05
BitTorrent協議非常好用,在網路中分發共用大檔案,不會造成網路上某一個鏈路擁塞,不會給某一台機器造成大量負載。BitTorrent把檔案分割,分塊校正,分塊傳輸,並發性好,速度快,可靠性有保證。搭建BitTorrent環境很簡單,需要一個tracker程式和一個用戶端程式。tracker程式用來於各個peer之間進行溝通,發現新的peer。用戶端程式用來製作種子。tracker程式非常多,google一下bittorrenttracker可以找到一大堆。有很多開源的使用LAMP實現的系統
Time of Update: 2018-12-05
步驟:1、安裝supermap objects java 6R2、安裝JRE6.0以上版本(或者JDK 6.0)3、配置環境變數(1).建立變數“JRE_HOME”(如果安裝的是JDK,則為'JAVA_HOME‘),值為:“C:\Program Files\Java\jre6”(這是你本機上JDK或者JRE的安裝目錄) (2).建立變數“UGO_HOME”,值為:“C:\Program Files\SuperMap\SuperMap Objects Java
Time of Update: 2018-12-05
全稱是GNU Multiple Precision Arithmetic Library,即GNU高精度算術運算庫,官方網站是:http://gmplib.org/ 它的功能非常強大,介面很簡單,文檔詳盡,有C風格的介面也有C++的精心封裝後的介面,其中不但有普通的整數、實數、浮點數的高精度運算,還有隨機數產生,尤其是提供了非常完備的數論中的運算介面,比如Miller-Rabin素數測試演算法,大素數產生,歐幾裡德演算法,求域中元素的逆,Jacobi符號,legendre符號等。