題意:磁碟n個塊,有m個檔案,各自被分割成許多塊分散在磁碟之中,要求通過最少移動次數使得第1個檔案的佔1,2,3...f1塊,第二個檔案佔f1+1,f1+2...f1+f2塊。。。
思路:dfs(k)為將第k位置填好。
#include #include #include #include using namespace std;
#define n 10005
int n,m;
int hh[n],s[n],len = 0,used[n];
int f;
int dfs(int i)
if(used[s[i]])elseelse
return ans;
}}int main()
for(i = 1;i<=len;i++)//看看是不是每個位置都放好了
if(s[i] != i)
break;
if(i == len+1)
printf("no optimization needed\n");
else}}
return 0;
}
3 檔案的游標移動
include include off t lseek int fd,off t offset,int whence lseek int fd,off t offset,int whence 注 lseek 檔案,偏移值,游標位置 偏移值 為 0 不移動,大於 0 正數 向後移動,小於 0 負數 向...
3 檔案游標移動操作
標頭檔案 include include off t lseek int fd,off t offset,int whence 將檔案讀寫指標相對whence移動offset個位元組。whence seek cur 檔案當前位置 seek set 檔案頭 seek end 檔案尾部offset 0 ...
1 檔案測試 2 檔案操作
1 檔案測試函式 2 檔案操作 新建檔案 fopen filename,w 以 寫 的方式開啟乙個不存在的檔案,就會新建該檔案 檔案刪除 unlink 檔案複製 copy filename,aaa bb.txt 盡量使用 和相對路徑,因為linux只認 也沒有磁碟分割槽,而windows 和 都認 ...