大模擬,沒涉及什麼演算法主要是資料結構的設計、細節的考慮,挺鍛鍊的,記錄一下,**加了注釋。
#include #include #include #include #include #include using namespace std;
typedef long long ll;
struct file ;
file* root = new file();
// 根據指定分隔符進行分割字串
vectorsplit(string s1, string seperator)
if (posbegin != s.length()) // 指向最後乙個元素,加進來
result.push_back(s.substr(posbegin));
return result;
}// 實際新增檔案
bool addfile(file* f, string filename, ll size)
t = t->parent;
}// 校驗成功
if (flag)
// 校驗失敗
for (int i = 0; i < fs.size(); i ++) else
}return false;
}// 建立檔案時還要額外建立目錄
bool addpath(file* root, vector& path, int index, ll size)
if (addfile(f, path[path.size() - 1], size)) else
}// 更新檔案大小
bool updatefile(file* f, string name, ll size)
bool flag = true;
vectorfs;
while (t != nullptr)
t = t->parent;
}if (flag)
// 校驗失敗 撤銷
for (int i = 0; i < fs.size(); i ++) else
}return false;
}// 檢查建立普通檔案
bool checkc(file* root, vector& path, ll size, int index)
return updatefile(root, path[index], size); // 更新
}if (root->lr != - 1 && root->lr < root->rr + size) return false;
if (root->ld != - 1 && root->ld < root->rd + size) return false;
return addfile(root, path[index], size);
}if (!root->isdir) return false; // 中間路徑不是目錄
if (!root->m.count(path[index]))
return checkc(root->m[path[index]], path, size, index + 1);
}// 刪除
void remove(file* f, vector& path, ll index)
return;
}remove(f->m[path[index]], path, index + 1);
}// 檢查配額
bool checkq(file* root, vector& path, ll d, ll r, int index)
return false;
}if (!root->m.count(path[index]))
if (!root->isdir) return false;
return checkq(root->m[path[index]], path, d, r, index + 1);
}// 單獨驗證給根目錄新增配額
bool checkroot(file* root, ll d, ll r)
int main() else if (type == "r") else if (type == "q")
if (checkq(root, p, ld, lr, 0)) printf("y\n");
else printf("n\n");
} else
}return 0;
}
2020 12 最新獲取證書
1 首先你需要進入 選擇你的環境及外掛程式 2 選擇完成後頁面會進行跳轉,稍等一會。此頁面會有詳細的配置教程 1 環境變數問題 the error was noinstallationerror could not find a usable nginx binary.ensure nginx ex...
山科計算機2020 1,2班程式設計基礎作業5
因為要求多組輸入,所以先來乙個while大迴圈,再套3個for內嵌迴圈 因為要求x include intmain if k 0 printf n if k 0 printf case d no pythagorean triple n i i ps 用此 在oj上會顯示超時,因為用了3個for迴圈...
山科計算機2020 1,2班程式設計基礎作業5
如下 include intmain printf u n sum2 else return0 講道理,這個 我也是從別的地方找的 但我死活不知道這個k 12是怎麼出來的 於是我上網找了找unsigned的取值範圍,自己寫了乙個關於階乘的 想通過試k取值多少的時候會超出範圍 如下 經本人實驗輸入為前...