摘要:
div2D sol: 每次找到两个最小的数,如果相同则塞回去一个,不同则存下小的作为答案 复习一波优先队列 #include <bits/stdc++.h> using namespace std; #define int long long typedef int ll; inline ll re 阅读全文
摘要:
div2A 用四个二进制位记每个点状态,O(n)判断一下即可 #include <bits/stdc++.h> using namespace std; typedef int ll; inline ll read() { ll s=0; bool f=0; char ch=' '; while(! 阅读全文
摘要:
sol:显然只有后面一串相同才行,因为只能删除前面的元素 #include <bits/stdc++.h> using namespace std; typedef int ll; inline ll read() { ll s=0; bool f=0; char ch=' '; while(!is 阅读全文
摘要:
sol:很显然的组合数,就是把当前的ai个塞进前面里去 模数是质数也很行 #include <bits/stdc++.h> using namespace std; #define int long long typedef int ll; inline ll read() { ll s=0; bo 阅读全文
摘要:
看到10000000个数中求最大的lcm感觉很难,但是数据随机 于是搞一百个最大的数字,100*100扫一遍就稳了(滑稽 #include <bits/stdc++.h> using namespace std; typedef int ll; inline ll read() { ll s=0; 阅读全文
摘要:
sol: 手玩之后发现,一个00(11)可以使答案+1 一个000(111)可以使答案+2 两个00(11)可以使答案+2 三个00(11)还是+2 #include <bits/stdc++.h> using namespace std; typedef int ll; inline ll rea 阅读全文
摘要:
sol:很显然答案就是两个坐标之间的线段数量 O(n)判断一下就行了 #include <bits/stdc++.h> using namespace std; typedef int ll; inline ll read() { ll s=0; bool f=0; char ch=' '; whi 阅读全文
摘要:
就是简单的模拟题 康复如此的痛苦 sol: 从左往右扫 如果遇到L则清空前面的,遇到R就扫到L在结算 #include <bits/stdc++.h> using namespace std; typedef int ll; inline ll read() { ll s=0; bool f=0; 阅读全文
摘要:
题意:n*m的矩阵,给出k个点,Q次询问,问每个矩阵中每个点是否被看管,一个点被看管的定义是那个点所在的行或列有点,n,m<=1e5,k,q<=2e5 sol :发现行和列是独立的,即要么每行都有点或每列都有点,所以可以用线段树艹,对于x建线段树,对于所有y<=y2的点加入y的坐标,询问x1,x2中 阅读全文
摘要:
CF193B Xor sol:发现好像非常不可做的样子,发现n,u都很小,大胆dfs,因为异或偶数次毫无卵用,只要判每次是否做2操作就是了,复杂度O(可过) #include <bits/stdc++.h> using namespace std; typedef long long ll; inl 阅读全文