- 博客(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
240
原创 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
295
原创 并查集+路径压缩
并查集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
244
原创 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
189
原创 acwing 3764.三元数异或
acwing 3764.三元数异或题目链接解题思路:题目要求max(a,b)最小,对于一个数如何分配可以达到这个目的,因为a+b的和为定值,为了使max(a,b)值最小能均分时就均分1.当c[i]=0 必有a=b=02.当c[i]=1 可以使(a,b)=(1,0) 但是这样会导致两个数不等,由于我们需要max(a,b)尽可能的小,当我们第一次不均匀分配之后因为是从高位开始分配的此时 max(a,b)=a,为了使a的值不在变大,将剩下的值都分给b3.当c[i]=2 能均分就均分,如果a>b已知
2021-07-13 20:13:20
254
原创 acwing 3763数字矩阵
acwing 3763.数字矩阵解题思路:对于任意位置的变换都是成对变换相邻元素,变换过程中有传递性(改变一个位置的符号就会改变相邻位置的符号)对应矩阵的各个位置的符号都是可以通过这个特性改变,对于存在奇数个负数进行变化之后,只会剩下一个负数,当只有一个负数要使矩阵和max,对应的就是让矩阵中绝对值最小的数为负2.实现代码#include<iostream>#include<cstring>#include<algorithm>using namespac
2021-07-12 21:09:48
167
原创 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
371
原创 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
135
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅