摘要:B 思路:结论题,如果点是奇数,这个点只能为1 否则等于中间最短点之间的差值+1 #include<stdio.h> #include<math.h> #include<string.h> #include<ctype.h> #include<iostream> #include<algorithm
阅读全文
摘要:lowbit:保留数在2进制下最后一个1,前面全变0 模板1:单点修改,区间查询 # include <bits/stdc++.h> using namespace std; typedef long long ll; int n[500009]; int t,k; int lowbit(int m
阅读全文
摘要:题意:给定三个数N,M,K N为序列长度,M为每个序列的大小,K为每个序列与后一个序列差值的绝对值 求这种序列组合数 思路: 典中典dp求组合数,但我一直都没怎么刷过dp,,,, 首先考虑dp数组状态 根据题目,状态转移是根据序列某个位置与下一个位置的差值决定的 那么假设:dp[i][j],i为序列
阅读全文
摘要:题意:由1到N个节点组成一个环,从节点1开始,每隔k个节点有一个餐馆(1也有餐馆) 现给出4个数据n,k,a,b n为餐馆的数量,k为餐馆之间的间隔距离,a为起始位置距离最近餐馆的距离,b为走了一步(步数未知)后距离最近餐馆的距离 思路:这题的未知数是每步所走路径l,我们可以把它先设为未知量l 对于
阅读全文
摘要:思路:见代码注释 #pragma GCC optimize(2) #pragma GCC optimize(1) #include<bits/stdc++.h> typedef long long ll; typedef unsigned long long ull; const ull base=
阅读全文
摘要:思路:首先讨论点的度数,整个点的度数应该都是偶数的(每条边贡献两度),那就意味这奇数点的个数是偶数 所以奇数点的个数是奇数的直接输出NO 接下来则讨论如何构造不存在交叉边的图 对于这样一个图 要构造所有边都尽量不相邻的方法是 即一个类似树的结构,我们很自然会想到构建一个树 为了保证偶数点的的度为偶数
阅读全文
摘要:代码实现:通过路径压缩把某类节点统统并入根节点,类似于冠状病毒(? 首先把每个节点的父节点设置为他们自己 find函数以及修改父节点代码实现 int findset(int n){ return fa[n]==n?n:fa[n]=findset(fa[n]); } 并查集父节点查询与融合操作 int
阅读全文
摘要:思路:我们很容易想到先筛去回文数,然后就变成完全背包求方案数裸题了 #include<vector> #include<iostream> #include<string> #include<algorithm> using namespace std; int main() { vector<in
阅读全文
摘要:思路:循环节枚举最小修改数 #include<vector> #include<iostream> #include<string> using namespace std; int main() { int len,k;cin>>len>>k; string op;cin>>op; vector<
阅读全文
摘要:还好没打这场,不然掉大分 A 题意:公式4a+6b=n,给出n,求出a+b最大值与最小值 由公式我们易得出结论我们最终要求n/4-b/2的最大值与最小值 对于最大值很显然b=0,所以输出n/4 对于最小值,显然b要尽可能大而又可以让a为整数 在n%6后,显然有2,4,0三种情况,0与4说明n/6后4
阅读全文
摘要:A 题意:n本A书高度为a,m本B书高度为b,b可以插入a与书柜的间隙中,求最终书摆放最小的宽度 思路:数学,二分 我们把要填充的图形分为两个个部分: 对于状态一的部分我们可以区分为填充满了和没填充满两个状态,没填充满状态可以直接输出n+1 填充满了则进行下一步填充 设m为要从右边拿书的个数,hp为
阅读全文
摘要:F. Longest Strike 思路:双指针统计区间个数,注意越界情况 #pragma GCC optimize(2) #pragma GCC optimize(1) #include<bits/stdc++.h> typedef long long ll; typedef unsigned l
阅读全文
摘要:PART1:建树 1.直接一个数组建树,子节点为当前下标*2以及当前下标*2+1,适用于完全二叉树 2.struct 法(数组大小取决于节点个数 struct node{ int fa,l,r,depth; } 3.链表法(待补充) struct node { bool have_v; int v;
阅读全文
摘要:#pragma GCC optimize(2) #pragma GCC optimize(1) #include<bits/stdc++.h> typedef long long ll; typedef unsigned long long ull; const ull base=131; #def
阅读全文
摘要:#pragma GCC optimize(2) #pragma GCC optimize(1) #include<bits/stdc++.h> typedef long long ll; typedef unsigned long long ull; const ull base=131; #def
阅读全文
摘要:#pragma GCC optimize(2) #pragma GCC optimize(1) #include<bits/stdc++.h> typedef long long ll; typedef unsigned long long ull; const ull base=131; #def
阅读全文