上一页 1 ··· 4 5 6 7 8 9 10 11 12 下一页
摘要: C. Sum of Substrings 题目大概意思,给你一个01串,求和最小,其中和是该串所有相邻字符所组成的十进制数的和。 如:0110, sum = 01 + 11 + 10 = 22。 通过观察我们可以发现,除了第一个位置和最后一个位置,其他位置上的1对和的贡献都是11。 所以我们只需要特 阅读全文
posted @ 2022-11-19 20:35 风归去 阅读(56) 评论(0) 推荐(0)
摘要: Frogger 法一:floyd #include<iostream> #include<cstring> #include<algorithm> #include<cstdio> #include<cmath> #include<iomanip> #define int long long int 阅读全文
posted @ 2022-11-19 20:33 风归去 阅读(30) 评论(0) 推荐(0)
摘要: G water testing 题意:给你一个多边形(可能是凸多边形,也可能是凹多边形),问该多边形内有多少个整数点(不包含边界)。 思路:皮克定理 + 叉乘计算三角形面积:皮克定理是指一个计算点阵中顶点在格点上的多边形面积公式,该公式可以表示为S=a+b÷2-1,其中a表示多边形内部的点数,b表示 阅读全文
posted @ 2022-11-19 20:32 风归去 阅读(41) 评论(0) 推荐(0)
摘要: F - Subarrays 题意:给你一个序列,问这个序列里有多少个子串的和能被k整除。 思路:求前缀和,然后每个位置对k取模,模数相等的位置之间,是一个满足条件的字串。 因为求的是前缀和,所以取模后相等,做差刚好去掉这个模后结果。 某个位置前面有多少个取模和该位置取模相等的数,用map记录一下。 阅读全文
posted @ 2022-11-19 20:31 风归去 阅读(45) 评论(0) 推荐(0)
摘要: E 爬塔 方法一:二分做法 预处理每个点所能到达的最远距离,存到vector里边,然后二分处理结果 #include<bits/stdc++.h> using namespace std; const int N = 1e5 + 10; int n, q, a[N], len, maxn; vect 阅读全文
posted @ 2022-11-19 20:30 风归去 阅读(61) 评论(0) 推荐(0)
摘要: Palindrome 题意:给一个字符串,问最少加上多少个字符,可以使这个字符串成为回文串 思路一、直接dp(会爆内存) dp[i][j]表示区间[i,j]之间有最少需要加上多少个字符 状态转移方程:如果s[i] = s[j], 则dp[i][j] = dp[i + 1][j - 1]; 如果s[i 阅读全文
posted @ 2022-11-19 20:29 风归去 阅读(22) 评论(0) 推荐(0)
摘要: [神坛]pta *相邻两条边围成的三角形面积会是最小的 极角排序+叉积计算三角形面积 #include<bits/stdc++.h> #define int long long using namespace std; const int N = 2e5 + 10; int n, m; double 阅读全文
posted @ 2022-11-19 20:26 风归去 阅读(104) 评论(0) 推荐(0)
摘要: 很好的一道bfs题目,到达岸边可以看成是最后一步 #include<bits/stdc++.h> using namespace std; const int N = 1e5 + 10; int n, dist[N], pre[N]; double d, dis; struct node{ doub 阅读全文
posted @ 2022-11-19 20:25 风归去 阅读(110) 评论(0) 推荐(0)
摘要: 在单调递增序列a中查找>=x的数中最小的一个(即x或x的后继) while(l<r) { int mid=(l+r)/2; if(a[mid]>=x) r=mid; else l=mid+1; } return a[l]; 在单调递增序列a中查找<=x的数中最大的一个(即x或x的前驱) while( 阅读全文
posted @ 2022-11-19 20:23 风归去 阅读(25) 评论(0) 推荐(0)
摘要: 1、巴什博弈 阅读全文
posted @ 2022-11-19 20:17 风归去 阅读(79) 评论(0) 推荐(0)
上一页 1 ··· 4 5 6 7 8 9 10 11 12 下一页