Time of Update: 2018-12-03
方法一:--- a/services/java/com/android/server/pm/PackageManagerService.java+++ b/services/java/com/android/server/pm/PackageManagerService.java@@ -2839,6 +2839,13 @@ public class PackageManagerService extends IPackageManager.Stub { int
Time of Update: 2018-12-03
本來自己轉載的兩篇vold的文章已經分析的很詳細了,有圖有文字,但還是想把自己分析的見解寫下來,畢竟自己的思路才是最清晰的,所以寫了筆記供以後參考。從vold的main函數說起:nm->setBroadcaster((SocketListener *) cl) -> void setBroadcaster(SocketListener *sl) { mBroadcaster = sl; }NetlinkManager::start() -> mHandler = new
Time of Update: 2018-12-03
有了上一篇vfs的筆記為基礎,接著實際分析一個真實的檔案系統掛載過程,所以選擇了一個簡單的fat檔案系統。fs/namespace.c中mount的系統調用為:SYSCALL_DEFINE5(mount, char __user *, dev_name, char __user *, dir_name, char __user *, type, unsigned long, flags, void __user *, data){ int ret; char
Time of Update: 2018-12-03
折騰了半天,原始碼有bug,自己修改了一下才可以用環境ubuntu12.10 + cocos2d-x最新版本1. git clone https://github.com/cocos2d/cocos2d-x.git下載cocos2d-x原始碼2. 官方下載ndk,我的是64位版本android-ndk-r8e3. 官方下載sdk,我的eclipse之前已經下載過了,直接拿來用android-sdks4. 進入cocos2d-x,開始編譯,不過g++版本要修改為4.6或以上5. 開啟./make-
Time of Update: 2018-12-03
//並差集求最大秩//一堆學生間接或直接互為朋友則合并//人數最多的集和的人數即為最大秩//不知道為什麼G++逾時但是C++過了#include <iostream>using namespace std;int Father[10000001];int Rank[10000001];int T;int Max;void Make_Set(int x){Father[x] = x;Rank[x] = 1;}int Find(int x){while(x !=
Time of Update: 2018-12-03
之所以講是奇異的crash,是因為我開發這麼長時間還是第一次遇到這樣類型的crash,開始的時候懷疑是由於在DLL中分配的記憶體在其它的dll中釋放導致的,或者由於DLL已經卸載導致分配的記憶體不可用導致的,然後,經過實驗,居然不是,這下可讓我沒了頭腦。經過仔細分析發現,是因為在dll中分配了一個對象指標,該對象的記憶體地區還是可用的,但是dll已經卸載,導致該對象的代碼地區已經卸載,從而無法正確的訪問解構函式導致的訪問錯誤。參考了
Time of Update: 2018-12-03
廣搜32MS,這題比較簡單,進行各種變換推狀態就行了#include <iostream>#include <queue>#include <string>#include <cstring>using namespace std;typedef struct{int password[4]; //4位密碼int step; //步數}pass;int target[4]; //最終密碼int T;string
Time of Update: 2018-12-03
Rundll32標準的介面函數原型如下:typedef void (RCTMETHODCALLTYPE *FUNC_OPENAS)(HWND hWnd, HINSTANCE hInst, LPCWSTR filename, int nShow);例如下面的例子就可以調用Open As的功能等同於“C:/WINDOWS/rundll32.exe shell32.dll,OpenAs_RunDLL %1 ”但是是在自己的進程裡面。#ifdef UNICODE#define FUNC_OPEN_AS_
Time of Update: 2018-12-03
java applet不需要main函數,它們依靠瀏覽器運行。Applet類提供了一個基本的架構結構,使得Applet可以在Web瀏覽器中運行。每個applet都是java.applet.Applet的子類。Applet類是一個AWT類,它不能和Swing組件一起工作。要在java appplet中使用Swing組件,必須通過擴充javax.swing.JApplet來建立一個java
Time of Update: 2018-12-03
1A 0MS 注意座標方向#include <iostream>#include <queue>#include <string>#include <cstring>using namespace std;typedef struct{int x;int y;int z;int step;}point;int N;char map[11][11][11];bool visited[11][11][11];point
Time of Update: 2018-12-03
//編碼類別型可以從一種派生出另一種,那麼把美種編碼看成一個頂點,每個編碼之間都可能存在//繼承關係,這個關係相當於一條路徑,最優方案就是一條路徑串連所有頂點而且路徑和最小//那麼就是求最小產生樹,由於是稠密圖,用prim比較好//不知道為什麼g++逾時然後c++就過了#include <cstring>#include <iostream>#include <string>using namespace std;#define INF
Time of Update: 2018-12-03
#include <iostream>#include <cstring>using namespace std;int Father[1001];int Rank[1001];int T;int N,M;int sum;void Make_Set(int x){Father[x] = x;Rank[x] = 1;}int Find(int x){while(x != Father[x])x = Father[x];return x;}void Union(int
Time of Update: 2018-12-03
貌似做過好幾遍了。。。#include <iostream>#include <cstring>using namespace std;int m,n;char map[105][105];bool visited[105][105];int num;int dirX[8] = {-1,-1,0,1,1,1,0,-1};int dirY[8] = {0,1,1,1,0,-1,-1,-1};void DFS(int x,int y){visited[x][y] =
Time of Update: 2018-12-03
轉自MSDN檢測記憶體流失的主要工具是調試器和 C 執行階段程式庫 (CRT) 調試堆函數。若要啟用調試堆函數,請在程式中包括以下語句: 複製代碼#define _CRTDBG_MAP_ALLOC#include <stdlib.h>#include <crtdbg.h>注意 #include 語句必須採用上文所示順序。如果更改了順序,所使用的函數可能無法正確工作。 通過包括 crtdbg.h,將 malloc 和 free 函數映射到其“Debug”版本
Time of Update: 2018-12-03
經典樹塔問題DP:s[i][j] = max{s[i+1][j],s[i+1][j+1]} + a[i][j]#include <iostream>#include <cstring>using namespace std;int a[101][101];int s[101][101];int C;int N;int main(){cin>>C;while(C--){cin>>N;for(int i = 1; i <= N;
Time of Update: 2018-12-03
狀態轉移方程為b[i]=max(b[j]+a[i],b[i]) 其中(a[j]<a[i],表示i可以從j跳過去)(0<=j<i)我覺得還可以最佳化#include <iostream>using namespace std;int N;int a[1001];int b[1001];int DP(){int max = a[1];b[1] = a[1];for(int i = 2; i <= N; i++){b[i] = a[i];for(int j =
Time of Update: 2018-12-03
//直接從a向r搜尋,不需要用優先隊列#include <iostream>#include <queue>#include <cstring>using namespace std;typedef struct{int x;int y;int step;}point;int N,M;char map[205][205];bool visited[205][205];int s_x,s_y;int dirX[4] = {-1,0,1,0};int dirY[4
Time of Update: 2018-12-03
水題#include <iostream>#include <cstring>#include <cmath>using namespace std;int Ki[23][23];int value[23][23];int N,M;int cal_val(int x,int y){if(x*y < 0)return abs(y);else if(x*y > 0)return -abs(y);elsereturn 0;}int
Time of Update: 2018-12-03
//看題代碼加刷人人一共做了10分鐘,搜尋題現在真水#include <iostream>#include <cstring>using namespace std;int W,H;char map[21][21];bool visited[21][21];int dirX[4] = {-1,0,1,0};int dirY[4] = {0,1,0,-1};int s_x,s_y;int num;void DFS(int x,int y){visited[x][y] =
Time of Update: 2018-12-03
#include <iostream>#include <cstdio>#include <cstring>using namespace std;int n;char map[35][35];long long paths[35][35];bool visited[35][35];long long DP(int x,int y){if(x < 0 || x >= n || y < 0 || y >= n)return