摘要:
原题链接 题解 1.首先要解决的问题是,怎样的窗口能包裹住尽可能多的星星? 这里有一个很巧妙的思维点,那就是我们构造一个以星星为左下角的矩形,矩形重叠的部分可以构造一个右上角在其中的窗口,这样这个窗口就能覆盖矩阵重合的星星 2.这样,问题就转换成了求最大并矩阵权值和(表示窗口的右上角在某个矩阵内), 阅读全文
posted @ 2024-07-20 19:15
纯粹的
阅读(26)
评论(0)
推荐(0)
摘要:
原题链接 看成区间相交个数,查询右端点大于等于当前左端点的区间个数减左端点大于当前右端点个数 阅读全文
posted @ 2024-07-20 16:04
纯粹的
阅读(8)
评论(0)
推荐(0)
摘要:
原题链接 题解 二分图,分为两类,一类是指向,一类是被指向 在这里,只需要建立情人之间的边就行,因为找情人能否成功 code #include<bits/stdc++.h> #define ll long long using namespace std; vector<int> G[10000]; 阅读全文
posted @ 2024-07-20 15:46
纯粹的
阅读(15)
评论(0)
推荐(0)
摘要:
原题链接 题解 设花为 1 ,花盆为 0,我们先确保花之间有空隙,即 \(1010....0101\) 接下来再插入 \(n-m-(m-1)\) 个花盆进入 1 与 1 之间 则有 \(C_{n-m+1}^{m}\) 种插法(相当于m个黑球,n个白球有几种排列方法) 再乘上 \(A_m\) ,即花与 阅读全文
posted @ 2024-07-20 15:13
纯粹的
阅读(15)
评论(0)
推荐(0)
摘要:
原题链接 题解 由于模拟会爆 longlong,所以用线段树维护每次操作的值,初始每次操作的值均为1 操作一令对应节点变为 m 操作二令对应节点变为 1 返回整棵树的值(相乘) code #include<bits/stdc++.h> #define ll long long using names 阅读全文
posted @ 2024-07-20 14:28
纯粹的
阅读(33)
评论(0)
推荐(0)
摘要:
原题链接 题解 细节 所有字符的回文半径初始化为 1 rmax=1 ans=1 code #include<bits/stdc++.h> #define ll long long using namespace std; void solve() { string s; cin>>s; string 阅读全文
posted @ 2024-07-20 14:08
纯粹的
阅读(12)
评论(0)
推荐(0)
摘要:
原题链接 题解 每行有 a 个,所以总共有 \(n\cdot a\) 个 每列有 b 个,所以总共有 \(m\cdot b\) 个 所以要满足 \(na=mb\) 想象一下这个场景:每一行,每次往当前列中,最左端的一最少的列的开始连续放置1 code #include<bits/stdc++.h> 阅读全文
posted @ 2024-07-20 11:18
纯粹的
阅读(20)
评论(0)
推荐(0)
摘要:
原题链接 题解 细节 1.划分数组时要用原本的代码,而不是排序后的代码 2.更新划分数组时一些参数要更新 code #include<bits/stdc++.h> #define ll long long using namespace std; int a[200005],b[200005]; v 阅读全文
posted @ 2024-07-20 00:01
纯粹的
阅读(9)
评论(0)
推荐(0)

浙公网安备 33010602011771号