摘要:
水题,spfa即可 class Solution { public: vector<int> gra[5010]; int d[5010], vis[5010]; bool check(string str1, string str2) { int len1 = str1.length(), len 阅读全文
摘要:
倒推 每次选最大的,然后减去剩余的所有值的和,即为按题意的操作,该位置上次的值 但倒退的话不用在意值的顺序,所以每次排一下序,选最大的即可 显然[1,1,1000000000] 类似于这样的可能超时,所以不用减,用% 当然如果只有两个值,且其中一个为1,因为任何数%1都为0,所以直接返回true就行 阅读全文
摘要:
水题,只是为了练一下bfs标记层数 dfs就行 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : va 阅读全文
摘要:
O(nk)的dp就能解决 dp[n][j] 表示当最后一个数以第j种方式取时的最大值,其中j <= k 推广到每个i即可, 用pre[i]存储第i个数不同取法中的最大值 class Solution { public: int dp[550][550]; int pre[550]; int maxS 阅读全文
摘要:
垃圾题目 class Solution { public: int sum(string str) { long long ret = 0; int len = str.length(); int flag = 0; for(int i = 0; i < len; i++) { if(str[len 阅读全文
摘要:
总结: 用于判断凸多边形内部点 给出任意多边形顶点,设A和B为其中两点且逆时针排序,C为内部一点,则向量AB叉乘向量AC小于0 如果是顺时针排序,则向量AB叉乘向量AC大于0 先按x从小到大,如果x相同,则y从小到大的顺序排序 已知x最小、y最小、x最大、y最大的点肯定为凸包上的点,为什么,可以仔细 阅读全文
摘要:
先sort一下,就能将reservedSeats 数组按照行和列排序,设begin = 0, end = 11 则遍历每个reservedSeats时,将有cnt = reservedSeats[i][1] - begin - 1个空位 如果reservedSeats[i][0] == reserv 阅读全文
摘要:
就找出最后一层的所有节点,依次求lca就行 lca暴力就行 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode( 阅读全文
摘要:
区间dp + 记忆性搜索 搭眼一看,是个最大值最小化 dp[1][n]表示区间[1, n]所需要至少的money 因为不知道最后一步选哪个,则枚举1-n的数 则dp[1][n] = min(dp[1][n], k + max(dp[1][k - 1], dp[k + 1][n])) 注意边界 用df 阅读全文
摘要:
工具-》NuGet包管理器-》程序包管理器控制台 输入 Install-Package System.Drawing.Common -Version 5.0.2 阅读全文