Time of Update: 2018-12-04
判斷(32位)整數的二進位表示中的1有奇數個還是偶數個最直接的思路就是求位元中1的個數,然後確定是偶數還是奇數。代碼如下:// true為x二進位表示中含有奇數個1,false為偶數個1bool OddOnes(int x) {int cnt = 0;while(x){cnt++;x &= x-1;}return cnt & 1;}上述代碼的就是先求x二進位中1的個數,方法就是通過x &=
Time of Update: 2018-12-04
A*搜尋演算法,俗稱A星演算法。這是一種在圖形平面上,有多個節點的路徑,求出最低通過成本的演算法。常用於遊戲中的NPC(Non-Player-ControlledCharacter)的移動計算,或線上遊戲的BOT(ROBOT)的移動計算上。該演算法像Dijkstra演算法一樣,可以找到一條最短路徑;也像BFS一樣,進行啟發學習法的搜尋。A*演算法是一種啟發學習法搜尋演算法,啟發學習法搜尋就是在狀態空間中的搜尋對每一個搜尋的位置進行評估,得到最好的位置,再從這個位置進行搜尋直到目標。這樣可以省略大
Time of Update: 2018-12-04
1.灰階變換增強程式:% GRAY TRANSFORMclc;I=imread('pout.tif');imshow(I);J=imadjust(I,[0.3 0.7],[0 1],1); %transforms the walues in the %intensity image I to values in J by linealy mapping %values between 0.3 and 0.7 to values between 0 and 1.figure;imshow(J)
Time of Update: 2018-12-04
如題,一個數能否被7整除的判定方法是如下的:例如,求344617能否被7整除把617-344=273,273能被7整除,所以344617能被7整除又如,求4241468能否被7整除把468-241+4=231能被7整除,所以4241468能被7整除怎樣證明此方法呢?最好用中文回答。用比較簡單易明的方法。技巧很簡單,只用 1001 = 7*11*13 即可,請看看下面。比個中文版你︰設一六位元 ABCDEF.所以,ABCDEF = 100000A + 10000B + 1000C + 100D +
Time of Update: 2018-12-04
質數又稱素數。指在一個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數。一、判斷一個數是否為質數首先根據定義,最簡單的判斷一個數n是否為質數的方法,就是從2開始對小於n的所有數,依次判斷是否能整除n,若都不能整除就是質數。bool IsPrime(int n){if(n == 1)return false;for(int i = 2; i < n; i++)if(n % i ==0)return false;return true;}我們再稍微改進一下,我們可以先判斷一下2
Time of Update: 2018-12-04
1.下載 ubuntu 鏡像檔案。我下載的檔案全名是 ubuntu-12.04-desktop-i386.iso2.下載 EasyBCD。這個是用來引導安裝 ubuntu 的。 步驟1:在 win7 系統下,右鍵“我的電腦”->管理->磁碟管理,選擇F盤,壓縮卷,選擇13G即可。這樣就可以為ubuntu的安裝騰出13G的空間。步驟2:然後,開啟 EasyBCD,點擊"Add New Entry"—>"Neo Grub"—>"Install",再點"Configure"。
Time of Update: 2018-12-04
在C/C++的學習中,有人經常搞不清楚“常量指標”和“指標常量”這兩個概念。其實簡單一點講,“常量指標”所指向的地址上的資料是常量,而“指標常量”所指向的地址是常量,地址上面的資料是可以變化的。 首先,告訴大家一個小規則,就是像這樣連著的兩個詞,前面的一個通常是修飾部分,中心詞是後面一個詞,怎麼說呢,就像這裡的常量指標和指標常量。 常量指標,表述為“是常量的指標”,它首先應該是一個指標。常量指標,就是指向常量的指標,關鍵字 const 出現在 * 左邊,表示指標所指向的地址的內容是不可修改
Time of Update: 2018-12-04
思路比較簡單:就是先調用minimum找到二叉樹中的最小關鍵字的結點,即二叉樹最左邊的樹葉,然後依然迭代地調用tree_successor尋找前一個結點x的後繼:即比x->key大的所有關鍵字中最小的一個的節點。依次輸出即可。minimum很容易理解,利用蠻力一直往左遍曆,到底即可。tree_successor分兩種情況,如果x有右子樹,則x的後繼就是右子樹中最小關鍵字的那個結點,如果x沒有右子樹,則後繼是x的最底層祖先。最底層祖先聽著很拗口,用圖示表示就是:13號結點的後繼是15,15即
Time of Update: 2018-12-04
找出二叉尋找樹中出現頻率最高的元素。樹中結點滿足left->val <= root->val <= right->val。如果多個元素出現次數相等,返回最小的元素。在一個有序數組中,我們尋找出現頻率最高的元素,很簡單,順序掃描一遍即可統計出。那麼我們對二叉尋找樹也可以用類似方式統計,因為中序遍曆序列就是有序序列,所以我們在中序遍曆的過程中就可以統計出出現頻率最高的元素。class TreeNode{public:int val;TreeNode
Time of Update: 2018-12-04
本文使用隱式空閑鏈表實現簡單的動態記憶體分配。動態記憶體分配器維護一個大塊地區,也就是堆,處理動態記憶體配置請求。分配器將堆視為一組不同大小的塊的集合來維護,每個塊要麼是已指派的,要麼是閒置。實現動態記憶體分配要考慮以下問題:(1)空閑塊組織:我們如何記錄空閑塊?(2)放置:我們如何選擇一個合適的空閑塊來放置一個新分配的塊?(3)分割:在我們將一個新分配的塊放置到某個空閑塊之後,我們如何處理這個空閑塊中的剩餘部分?(4)合并:我們如何處理一個剛剛被釋放的塊?任何分配器都需要一些開銷,需要資料結構
Time of Update: 2018-12-04
CODE:<%@ page contentType="text/html;charset=GBK"%><%@ page language="java" pageEncoding="GBK"%> <%@ page import="org.jfree.chart.ChartFactory, org.jfree.chart.JFreeChart,
Time of Update: 2018-12-04
題意:有T組測試資料,每組資料的N,H,W表示有N個炸彈或水果,H和W表示用來“切”水果的板磚的長寬,要求W必須平行於X軸,H必須平行於Y軸。問一板磚下去,最多能拍到多少個水果(要求不能拍到炸彈),在拍到最多水果的前提下,問板磚有多少種拍水果的方案(即如果板磚的四條邊上都要水果“犧牲”,那麼方案數計一,否則板磚就可移動,那麼方案數就是so many!) 下面的N行,每行給出炸彈或水果的座標,L X
Time of Update: 2018-12-04
題意:類比約瑟夫環。有N(1<=N<=500000)個孩子圍成一圈,他們被順時針編號為 1 到 N。每個小孩手中有一個卡片,上面有一個非 0 的數字,遊戲從第 K 個小孩開始,他告訴其他小孩他卡片上的數字並離開這個圈,他卡片上的數字 A 表明了下一個離開的小孩,如果 A 是大於 0 的,則下個離開的是左手邊第 A 個,如果是小於 0 的,則是右手邊的第 A 個小孩。遊戲將直到所有小孩都離開,在遊戲中,第 p 個離開的小孩將得到 F(p) 個糖果,F(p) 是 p
Time of Update: 2018-12-04
題意:給你一棵有n個節點的樹,樹邊為權值,要你求出樹上每個點到其他點的距離中最大的那個值。對求出的從節點1到節點n最大值,找出最長的一段使得這一段中最大值減最小值的結點小於等於m。對於第一個問題,有兩種方法可以解決。第一種比較簡單的方法是,每個點到其他點的距離中最大的那個值,一定是到樹的直徑的兩個端點的距離之一(反證法易得)。那麼我們找出樹的直徑的同時,處理出各個節點到樹直徑兩個端點的距離就可以了。第二種方法是樹型DP,兩次DFS,第一次DFS求出以點i為根節點的子樹裡,到達點i的最大距離。但是
Time of Update: 2018-12-04
題意:給n個單位記憶體(編號從1開始),有幾種操作:Reset把所有的記憶體清空,然後輸出“Reset Now”。New x申請一塊長度為x的記憶體塊(如多解,左邊優先),然後輸出“New at A”。Free x把包含第x塊單位記憶體的記憶體塊清除,然後輸出“Free from A to B”。Get x返回第x塊記憶體塊的起始記憶體單位編號,然後輸出 “Get at A”。 大部分操作和POJ 3667
Time of Update: 2018-12-04
1. 安裝增強功能包(Guest Additions)cd /media/cdom0sudo ./VboxLinuxAdditions.run 2. 設定共用資料夾重啟完成後點擊"裝置(Devices)" -> 共用資料夾(Shared Folders)菜單,添加一個共用資料夾,選項固定和臨時是指該檔案夾是否是持久的。共用名稱可以任取一個自己喜歡的,比如"gongxiang",盡量使用英文名稱。 3. 掛載共用資料夾重新進入虛擬Ubuntu,在命令列終端下輸入:sudo mkdir
Time of Update: 2018-12-04
題意:給你n個整數,有兩種操作,U A B把第A個數變成B,Q A B查詢區間[A,B]的最長連續上升序列。
Time of Update: 2018-12-04
自旋鎖與互斥鎖有點類似,只是自旋鎖不會引起調用者睡眠,如果自旋鎖已經被別的執行單元保持,調用者就一直迴圈在那裡看是否該自旋鎖的保持者已經釋放了鎖,"自旋"一詞就是因此而得名。 由於自旋鎖使用者一般保持鎖時間非常短,因此選擇自旋而不是睡眠是非常必要的,自旋鎖的效率遠高於互斥鎖。 訊號量和讀寫訊號量適合於保持時間較長的情況,它們會導致調用者睡眠,因此只能在進程上下文使用(_trylock的變種能夠在中斷上下文使用),而自旋鎖適合於保持時間非常短的情況,它可以在任何上下文使用。 如果被保護的共用
Time of Update: 2018-12-04
轉載連結 http://blog.chinaunix.net/uid-25304914-id-3046279.html庫 可執行程式的一部分動態連結相關性 lddhttp://hi.baidu.com/%C4%FE%BE%B2%B5%C4%B7%B1%BB%AA/blog/item/deac821366ba9565cb80c441.htmlLD_LIBRARY_PATH:該 環境變數
Time of Update: 2018-12-04
題意:有T(T<10)組測試資料,然後有一個數字N(N<100000),接下來的一行裡有N個字元,每個字元是'('或')',有三種操作(1)"set l r c",表示將區間[l,r]裡的所有元素改變為c,c是'('或')'的其中一種。(2)"reverse l r",表示將區間[l,r]裡的'('與')'對調。(3)"query l r",表示查詢區間[l,r]是否為一個合法的括弧序列。