摘要:
区间dp 终态时是0与n - 1连成的边和另一个顶点j,遍历0 到n - 1之间的点j,取乘积最小的 则0 j n - 1,把多边形分成了3份;其中0 j n - 1为三角形,另外两个多边形(也有可能是三角形) 因此dp[0][n - 1] = dp[0][j] + dp[j][n - 1] + v 阅读全文
摘要:
用个vector就超时什么鬼 垃圾题 再次证明,水题不要用stl class Solution { public: bool check(int n) { int vis[10]; memset(vis, 0, sizeof(vis)); while(n) { int tmp = n % 10; n 阅读全文
摘要:
先从小到大排序 对每个nums[i],sum += 1,表示自己除自己为1 一、 令p = i + 1,q = 第一个大于等于nums[i]的数的下标,则q - p为与nums[i]相等的数的个数, sum += (q - p)* 2,因为我们只考虑 5 / 2,而不用考虑2 / 5,但若有两个5, 阅读全文
摘要:
就是个dp 如果s[i] == 0, s[i]还想是0 则i - 1必定为0, dp[i][0] = dp[i - 1][0]; s[i]想变成1,则i - 1是0是1无所谓 dp[i][1] = min(dp[i - 1][0], dp[i - 1][1]) + 1 如果s[i] == 1,与上述 阅读全文
摘要:
加密后的pyc只是直接打开看不到源码了,不影响功能使用。1.一次命令整个文件夹里的所有py文件全部加密为pyc文件操作 打开Anaconda Prompt命令窗口, 输入python进入命令行状态下,输入: import compileall compileall.compile_dir(r'H:/ 阅读全文
摘要:
注意sort时,自定义函数要加引用 lower_bound用set自己的 set是用红黑树存的,所以lower_bound时会用自己的结构查找 class Solution { public: struct node { int x, y; bool operator < (const node b 阅读全文
摘要:
从头开始累加,如果加完某个元素后大于等于target,则考虑循环删除起始元素,并设起始元素的下个元素为起始元素 记录大于等于target时的长度,求最小即可 这样一定会经过结果子集 class Solution { public: int minSubArrayLen(int target, vec 阅读全文
摘要:
map标记即可 注意对于某个文件名生成的结果文件名也需要标记一下 class Solution { public: vector<string> ret; map<string, int> mmap; vector<string> getFolderNames(vector<string>& nam 阅读全文
摘要:
贪心即可 class Solution { public: vector<int> v[410]; vector<int> record; int vis[410]; int minSwaps(vector<vector<int>>& grid) { int n = grid.size(); mem 阅读全文
摘要:
水题,spfa即可 class Solution { public: vector<int> gra[5010]; int d[5010], vis[5010]; bool check(string str1, string str2) { int len1 = str1.length(), len 阅读全文