摘要:计数每一个点被被其他点组成的四边形完全包含的四边形的个数,给出的点没有三点共线的情况 官方题解如下,说的很清楚,也很有技巧 代码也是直接参考官方的题解来的 #include<bits/stdc++.h> #define forn(i, n) for (int i = 0; i < int(n); i
阅读全文
摘要:直 接看所有A后面连续P的个数最大值 #include<cstring> #include<cstdio> #include<set> #include<iostream> #define forn(i, n) for (int i = 0; i < int(n); i++) #define for
阅读全文
摘要:题意: 在n*n的矩阵中,你可以选择一个k*k的子矩阵,然后将这个子矩阵中的所有B全部变为W,问你怎么选择这个子矩阵使得最终的矩阵中某一行全是W或者某一列全是W的个数最多 题解:考虑每一行和每一列,对于特定的一行来说,要想让其全变为W,那么子矩阵的左上角端点是在一个范围中的,因此我们可以把范围中的每
阅读全文
摘要:A略 直接求和最大的子序列即可(注意不能全部选中整个子序列) or #include<bits/stdc++.h> using namespace std; void solve(){ int n; cin>>n; vector<int> a(n); vector<long long> sum(n+
阅读全文
摘要:如果最大值比剩余两个加起来的总和+1还大,就是NO,否则是YES #include<bits/stdc++.h> using namespace std; int main(){ int T; cin>>T; while(T--){ vector<int> a(3); for(int i=0;i<3
阅读全文
摘要:代码中的下标从0开始,原理是一样的 int f[N]; void upd(int x, int val){ for (int i = x; i >= 0; i = (i & (i + 1)) - 1) f[i] += val; } int get(int x){ int res = 0; for (
阅读全文
摘要:基于递推,写起来更快 for(int i=1;i<=n;i++) scanf("%I64d",&a[i]),l[i]=r[i]=i; a[0]=0; for(int i=2;i<=n;i++){ int now=i; while(now>1&&a[i]<=a[now-1]) now=l[now-1]
阅读全文
摘要:C D E 这三道题感觉挺好 决定程序是否能通过优化在要求的时间内完成,程序运行时间为t,你可以选择花X天来优化,优化后程序的运行时间为t/(x+1)取上整,花费的时间为程序运行时间加上优化时间 如果程序运行时间小于等于要求时间,那就不需要优化,否则必须优化,假设优化X天,那么总时间就是X+t/(X
阅读全文