自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 高精度加法 压位

高精度加法 压位 #include <iostream> #include <vector> using namespace std; const int base = 1000000000; vector<int> add(vector<int> &A, vector<int> &B) { if (A.size() < B.size()) return add(B, A); vector<int

2021-07-31 10:34:28 131

原创 2021牛客暑期多校训练营1第一场 A

2021牛客暑期多校训练营1第一场 A题 题目大意 两人博弈,每次一个人从一堆中拿 k 个,同时从另一堆拿 k * s(s >= 0) 个,问谁先不能拿。 10000 组数据,N <= 5000 考察内容 博弈,sg 函数优化 解题思路: 假如当前的状态是(x,y) 如果取走石子后形成(x1,y1)为必败态 那么(x,y)必然不是必败态我们根据这个性质可以得到,得到一个关键点判断是否由(x,y)可以得到(x1,y1),是否有 (x,y)=(x1+k,y1+sk) ,如果得到那么这个点就是必胜点。

2021-07-18 11:23:32 175

原创 并查集+路径压缩

并查集 1.将两个集合合并 2.询问两个元素是否在一个集合当中 基本原理:每个集合用一个树来表示,树根的编号就是整个集合的编号。每个节点存储它的父节点,p[x]表示x的父节点. 问题1:如何判断树根:if(p[x]==x) 问题2:如何求x的集合编号 while(p[x]!=x) x=p[x]; 问题3:如何合并两个集合 px是x的集合编号,py是y的集合编号 。p[x]=y; 优化:路径压缩,按照秩合并(较少用: 优化效果不明显) 题目: 一共有 n 个数,编号是 1∼n,最开始每个数各自在一个集合中。

2021-07-15 16:18:32 136

原创 lc 997.有序数组的平方

lc 997.有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例 1: 输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 [16,1,0,9,100] 排序后,数组变为 [0,1,9,16,100] 示例 2: 输入:nums = [-7,-3,2,3,11] 输出:[4,9,9,49,121] 提示: 1 <= nums.length <= 104

2021-07-14 16:30:34 69

原创 acwing 3764.三元数异或

acwing 3764.三元数异或 题目链接 解题思路:题目要求max(a,b)最小,对于一个数如何分配可以达到这个目的,因为a+b的和为定值,为了使max(a,b)值最小能均分时就均分 1.当c[i]=0 必有a=b=0 2.当c[i]=1 可以使(a,b)=(1,0) 但是这样会导致两个数不等,由于我们需要max(a,b)尽可能的小,当我们第一次不均匀分配之后因为是从高位开始分配的此时 max(a,b)=a,为了使a的值不在变大,将剩下的值都分给b 3.当c[i]=2 能均分就均分,如果a>b已知

2021-07-13 20:13:20 140

原创 acwing 3763数字矩阵

acwing 3763.数字矩阵 解题思路: 对于任意位置的变换都是成对变换相邻元素,变换过程中有传递性(改变一个位置的符号就会改变相邻位置的符号)对应矩阵的各个位置的符号都是可以通过这个特性改变,对于存在奇数个负数进行变化之后,只会剩下一个负数,当只有一个负数要使矩阵和max,对应的就是让矩阵中绝对值最小的数为负 2.实现代码 #include<iostream> #include<cstring> #include<algorithm> using namespac

2021-07-12 21:09:48 66

原创 acwing 3762.二进制矩阵

acwing 3762.二进制矩阵 时间:7月9日 题目链接 解题思路: 对于任意位置的1可以采取3次达到变换的目的,故对于nm的矩阵最多需要3nm次 对于矩阵的中任意选取2*2矩阵都可以采取3次变换任意一个为1的地方,如图所示左上角的变法 对于最后一列和最后一行变法如图所示 为了思路的清晰定义了L的四个方向,以中心点位(i,j)变换的 #include<iostream> #include<cstring> #include<algorithm> using name

2021-07-12 20:41:34 208

原创 acwing 3761.唯一最小数

acwing 3761.唯一最小数 时间:7月8日 题目链接 解题思路:用哈希表统计出现的次数为1的数从中找到最小的数,在出现为1次的数里面遍历就找到唯一最小数 #include<iostream> #include<cstring> #include<algorithm> using namespace std; const int N=200010; int n; int w[N],cnt[N];//w数组用来保存值 cnt用来保存次数 int main() {

2021-07-12 14:06:50 59

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除