acwing
罚时大师月色
努力让更多小白和我一起共同进步
展开
-
每天学会一个二分————浮点二分
Acwing网址:https://www.acwing.com/video/2299/需要注意的情况:若题目中给出保留k位小数,则精度范围是1e-(2+k),例如保留两位小数r-l<1e-4测试样例:3 43 5 4代码:#include<iostream>using namespace std;const int N=1e5+10;int n,k;int l[N];bool check(double mid){ long long cnt=0;原创 2021-01-31 18:15:58 · 148 阅读 · 1 评论 -
AcWing 255. 第K小数
给定长度为 N 的整数序列 A,下标为 1∼N。现在要执行 M 次操作,其中第 i 次操作为给出三个整数 li,ri,ki,求 A[li],A[li+1],…,A[ri] (即 A 的下标区间 [li,ri])中第 ki 小的数是多少。输入格式第一行包含两个整数 N 和 M。第二行包含 N 个整数,表示整数序列 A。接下来 M 行,每行包含三个整数 li,ri,ki,用以描述第 i 次操作。输出格式对于每次操作输出一个结果,表示在该次操作中,第 k 小的数的数值。每个结果占一行。数据范围原创 2021-05-29 17:17:42 · 113 阅读 · 0 评论 -
AcWing 1277. 维护序列
老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成。有长为 N 的数列,不妨设为 a1,a2,…,aN。有如下三种操作形式:把数列中的一段数全部乘一个值;把数列中的一段数全部加一个值;询问数列中的一段数的和,由于答案可能很大,你只需输出这个数模 P 的值。输入格式第一行两个整数 N 和 P;第二行含有 N 个非负整数,从左到右依次为 a1,a2,…,aN;第三行有一个整数 M,表示操作总数;从第四行开始每行描述一个操作,输入的操作有以下三种形式:操作 1:1 t g c,表示原创 2021-05-26 22:03:56 · 199 阅读 · 0 评论 -
AcWing 247. 亚特兰蒂斯 线段树,pushdown
有几个古希腊书籍中包含了对传说中的亚特兰蒂斯岛的描述。其中一些甚至包括岛屿部分地图。但不幸的是,这些地图描述了亚特兰蒂斯的不同区域。您的朋友 Bill 必须知道地图的总面积。你自告奋勇写了一个计算这个总面积的程序。输入格式输入包含多组测试用例。对于每组测试用例,第一行包含整数 n,表示总的地图数量。接下来 n 行,描绘了每张地图,每行包含四个数字 x1,y1,x2,y2(不一定是整数),(x1,y1) 和 (x2,y2) 分别是地图的左上角位置和右下角位置。注意,坐标轴 x 轴从上向下延伸原创 2021-05-25 23:19:28 · 137 阅读 · 0 评论 -
AcWing 243. 一个简单的整数问题2 树状数组 + 懒人标记
给定一个长度为 N 的数列 A,以及 M 条指令,每条指令可能是以下两种之一:C l r d,表示把 A[l],A[l+1],…,A[r] 都加上 d。Q l r,表示询问数列中第 l∼r 个数的和。对于每个询问,输出一个整数表示答案。输入格式第一行两个整数 N,M。第二行 N 个整数 A[i]。接下来 M 行表示 M 条指令,每条指令的格式如题目描述所示。输出格式对于每个询问,输出一个整数表示答案。每个答案占一行。数据范围1≤N,M≤105,|d|≤10000,|A[i]|≤1原创 2021-05-24 18:58:43 · 168 阅读 · 0 评论 -
Acwing 238. 银河英雄传说
Acwing 238. 银河英雄传说有一个划分为 N 列的星际战场,各列依次编号为 1,2,…,N。有 N 艘战舰,也依次编号为 1,2,…,N,其中第 i 号战舰处于第 i 列。有 T 条指令,每条指令格式为以下两种之一:M i j,表示让第 i 号战舰所在列的全部战舰保持原有顺序,接在第 j 号战舰所在列的尾部。C i j,表示询问第 i 号战舰与第 j 号战舰当前是否处于同一列中,如果在同一列中,它们之间间隔了多少艘战舰。现在需要你编写一个程序,处理一系列的指令。输入格式第一行包含整数原创 2021-05-23 17:36:21 · 235 阅读 · 0 评论 -
Acwing 239. 奇偶游戏 并查集
Acwing 239. 奇偶游戏 并查集这道题是 查询的 l , r 的奇偶性关系,这道题 类似于食物链,用并查集 + 离散化去做。代码如下:#include <iostream>#include <unordered_map>#include <cstring>using namespace std;const int N = 20010;int p[N] , d[N];unordered_map<int,int> S;int原创 2021-05-23 17:07:51 · 100 阅读 · 0 评论 -
LeetCode 456. 132 模式
LeetCode 456. 132 模式这道题我刚开始想的是用树状数组,y总给了一个新的方法,单调栈,从后向前排列,形成单调递增序列,然后在更新的操作中,把满足132中的“32”部分(后两个)的最大满足条件的right("1"的最大值"1"表示左边的部分),求出来凡是在遍历中遇到了可以满足条件的直接返回right。代码如下:class Solution {public: bool find132pattern(vector<int>& nums) { in原创 2021-05-10 23:43:36 · 161 阅读 · 0 评论 -
LeetCode 73. Set Matrix Zeroes
LeetCode 73. Set Matrix Zeroes 这道题我们采用空间最优的方法,把每行需要变成0的放在行头和列头,需要注意一些细节。class Solution {public: void setZeroes(vector<vector<int>>& matrix) { int n = matrix.size(); int h = 0 , l = 0 ; int m = matrix[0].size()原创 2021-05-09 23:10:50 · 135 阅读 · 0 评论 -
Acwing 3302. 表达式求值
Acwing3302. 表达式求值这道题主要思想是建立树与优先级的关系#include<iostream>#include<stack>#include<unordered_map>using namespace std;stack<int> digit;stack<char> op;unordered_map<char,int> pr{{'+',1},{'-',1},{'*',2},{'/',2}};void原创 2021-05-09 22:33:51 · 118 阅读 · 2 评论 -
AcWing 1241. 外卖店优先级
AcWing 1241. 外卖店优先级“饱了么”外卖系统中维护着 N 家外卖店,编号 1∼N。每家外卖店都有一个优先级,初始时 (0 时刻) 优先级都为 0。每经过 1 个时间单位,如果外卖店没有订单,则优先级会减少 1,最低减到 0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加 2。如果某家外卖店某时刻优先级大于 5,则会被系统加入优先缓存中;如果优先级小于等于 3,则会被清除出优先缓存。给定 T 时刻以内的 M 条订单信息,请你计算 T 时刻时有多少外卖店在优先缓存中。输入格式第原创 2021-02-27 16:40:08 · 214 阅读 · 0 评论 -
AcWing 130. 火车进出栈问题
AcWing 130. 火车进出栈问题一列火车n节车厢,依次编号为1,2,3,…,n。每节车厢有两种运动方式,进栈与出栈,问n节车厢出栈的可能排列方式有多少种。输入格式输入一个整数n,代表火车的车厢数。输出格式输出一个整数s表示n节车厢出栈的可能排列方式数量。数据范围1≤n≤60000输入样例:3输出样例:5首先我们把入栈叫做’+’,出栈叫做’-’,然后我们开始分析。一共有这五种情况。+++−−−321+++--- 321+++−−−321+−+−+−123+ - +-原创 2021-02-25 20:55:27 · 291 阅读 · 0 评论 -
AcWing 794. 高精度除法 高精度算法模板
AcWing 794. 高精度除法给定两个非负整数A,B,请你计算 A / B的商和余数。输入格式共两行,第一行包含整数A,第二行包含整数B。输出格式共两行,第一行输出所求的商,第二行输出所求余数。数据范围1≤A的长度≤100000,1≤B≤10000B 一定不为0输入样例:72输出样例:31y总的视频链接代码如下#include<iostream>#include<vector>using namespace std;int t=0原创 2021-02-25 20:45:02 · 142 阅读 · 0 评论 -
AcWing 3250. 通信网络 两次bfs
AcWing 3250. 通信网络某国的军队由 N 个部门组成,为了提高安全性,部门之间建立了 M 条通路,每条通路只能单向传递信息,即一条从部门 a 到部门 b 的通路只能由 a 向 b 传递信息。信息可以通过中转的方式进行传递,即如果 a 能将信息传递到 b,b 又能将信息传递到 c,则 a 能将信息传递到 c。一条信息可能通过多次中转最终到达目的地。由于保密工作做得很好,并不是所有部门之间都互相知道彼此的存在。只有当两个部门之间可以直接或间接传递信息时,他们才彼此知道对方的存在。部门之间不原创 2021-02-25 16:55:39 · 124 阅读 · 0 评论 -
AcWing 3215. 网络延时 树的遍历
AcWing 3215. 网络延时给定一个公司的网络,由 n 台交换机和 m 台终端电脑组成,交换机与交换机、交换机与电脑之间使用网络连接。交换机按层级设置,编号为 1 的交换机为根交换机,层级为 1。其他的交换机都连接到一台比自己上一层的交换机上,其层级为对应交换机的层级加 1。所有的终端电脑都直接连接到交换机上。当信息在电脑、交换机之间传递时,每一步只能通过自己传递到自己所连接的另一台电脑或交换机。请问,电脑与电脑之间传递消息、或者电脑与交换机之间传递消息、或者交换机与交换机之间传递消息最多原创 2021-02-25 16:06:33 · 111 阅读 · 0 评论 -
AcWing 3205. 最优配餐
AcWing 3205. 最优配餐 栋栋最近开了一家餐饮连锁店,提供外卖服务。随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问题。栋栋的连锁店所在的区域可以看成是一个 n×n 的方格图(如下图所示),方格的格点上的位置上可能包含栋栋的分店(绿色标注)或者客户(蓝色标注),有一些格点是不能经过的(红色标注)。方格图中的线表示可以行走的道路,相邻两个格点的距离为 1。栋栋要送餐必须走可以行走的道路,而且不能经过红色标注的点。送餐的主要成本体现在路上所花的时间,每一份餐每走一个单位的距原创 2021-02-25 12:05:35 · 178 阅读 · 0 评论 -
AcWing 173. 矩阵距离 多源bfs模板
AcWing 173. 矩阵距离 给定一个N行M列的01矩阵A,A[i][j] 与 A[k][l] 之间的曼哈顿距离定义为:dist(A[i][j],A[k][l])=∣i−k∣+∣j−l∣dist(A[i][j],A[k][l])=|i−k|+|j−l|dist(A[i][j],A[k][l])=∣i−k∣+∣j−l∣输出一个N行M列的整数矩阵B,其中:B[i][j]=min1≤x≤N,1≤y≤M,A[x][y]=1dist(A[i][j],A[x][y])B[i][j]=min1≤x≤N,1≤y原创 2021-02-25 12:03:25 · 178 阅读 · 0 评论 -
AcWing 3195. 有趣的数 组合数问题
AcWing 3195. 有趣的数我们把一个数称为有趣的,当且仅当:它的数字只包含 0,1,2,3,且这四个数字都出现过至少一次。所有的 0 都出现在所有的 1 之前,而所有的 2 都出现在所有的 3 之前。最高位数字不为 0。因此,符合我们定义的最小的有趣的数是 2013。除此以外,4 位的有趣的数还有两个:2031 和 2301。请计算恰好有 n 位的有趣的数的个数。由于答案可能非常大,只需要输出答案除以 109+7 的余数。输入格式输入只有一行,包括恰好一个正整数 n。输出格式原创 2021-02-25 10:08:18 · 159 阅读 · 1 评论 -
AcWing 730. 机器人跳跃问题
AcWing 730. 机器人跳跃问题机器人正在玩一个古老的基于DOS的游戏。游戏中有N+1座建筑——从0到N编号,从左到右排列。编号为0的建筑高度为0个单位,编号为 i 的建筑高度为H(i)个单位。起初,机器人在编号为0的建筑处。每一步,它跳到下一个(右边)建筑。假设机器人在第k个建筑,且它现在的能量值是E,下一步它将跳到第k+1个建筑。如果H(k+1)>E,那么机器人就失去H(k+1)-E的能量值,否则它将得到E-H(k+1)的能量值。游戏目标是到达第N个建筑,在这个过程中能量值不原创 2021-02-25 09:30:07 · 1148 阅读 · 2 评论 -
AcWing 507. 积木大赛 (贪心+差分)
AcWing 507. 积木大赛原创 2021-02-25 08:23:55 · 190 阅读 · 1 评论 -
AcWing 211. 计算系数 快速幂的注意事项
AcWing 211. 计算系数给定一个多项式(ax+by)k,请求出多项式展开后xnym项的系数。输入格式共一行,包含 5 个整数,分别为 a,b,k,n,m,每两个整数之间用一个空格隔开。输出格式输出共 1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007 取模后的结果。数据范围0≤n,m≤k≤1000,n+m=k,0≤a,b≤106输入样例:1 1 3 1 2 输出样例:3这道题真心来说很简单很简单,我们用dp+乘法逆元+快速幂解决了,这是一个送分的原创 2021-02-24 20:42:22 · 170 阅读 · 0 评论 -
Acwing 480. 传染病控制 树状图+dfs+暴力
480. 传染病控制近来,一种新的传染病肆虐全球。蓬莱国也发现了零星感染者,为防止该病在蓬莱国大范围流行,该国政府决定不惜一切代价控制传染病的蔓延。不幸的是,由于人们尚未完全认识这种传染病,难以准确判别病毒携带者,更没有研制出疫苗以保护易感人群。于是,蓬莱国的疾病控制中心决定采取切断传播途径的方法控制疾病传播。经过 WHO(世界卫生组织)以及全球各国科研部门的努力,这种新兴传染病的传播途径和控制方法已经研究清楚,剩下的任务就是由你协助蓬莱国疾控中心制定一个有效的控制办法。研究表明,这种传染病的传原创 2021-02-24 18:18:19 · 218 阅读 · 0 评论 -
AcWing 478. 侦探推理 枚举+模拟
AcWing 478. 侦探推理明明同学最近迷上了侦探漫画《柯南》并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏。游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明明不知情的情况下),明明的任务就是找出这个罪犯。接着,明明逐个询问每一个同学,被询问者可能会说:证词内容 证词含义I am guilty. 我是罪犯I am not guilty. 我不是罪犯XXX is guilty. XXX是罪犯(XXX表示某个同学的名字)XXX is not guilty. XXX不原创 2021-02-24 15:53:56 · 123 阅读 · 0 评论 -
AcWing 477. 神经网络 拓扑+遍历
AcWing 477. 神经网络人工神经网络(Artificial Neural Network)是一种新兴的具有自我学习能力的计算系统,在模式识别、函数逼近及贷款风险评估等诸多领域有广泛的应用。对神经网络的研究一直是当今的热门方向,兰兰同学在自学了一本神经网络的入门书籍后,提出了一个简化模型,他希望你能帮助他用程序检验这个神经网络模型的实用性。在兰兰的模型中,神经网络就是一张有向图,图中的节点称为神经元,而且两个神经元之间至多有一条边相连,下图是一个神经元的例子:QQ截图2019031206584原创 2021-02-24 09:10:53 · 335 阅读 · 0 评论 -
AcWing 148. 合并果子 第一次涉及哈夫曼数
是原创 2021-02-23 16:29:39 · 1101 阅读 · 2 评论 -
AcWing 907. 区间覆盖 贪心
AcWing 907. 区间覆盖给定N个闭区间[ai,bi]以及一个线段区间[s,t],请你选择尽量少的区间,将指定线段区间完全覆盖。输出最少区间数,如果无法完全覆盖则输出-1。输入格式第一行包含两个整数s和t,表示给定线段区间的两个端点。第二行包含整数N,表示给定区间数。接下来N行,每行包含两个整数ai,bi,表示一个区间的两个端点。输出格式输出一个整数,表示所需最少区间数。如果无解,则输出-1。数据范围1≤N≤105,−109≤ai≤bi≤109,−109≤s≤t≤109输入原创 2021-02-23 15:27:04 · 440 阅读 · 1 评论 -
Acwing 906. 区间分组
906. 区间分组给定N个闭区间[ai,bi],请你将这些区间分成若干组,使得每组内部的区间两两之间(包括端点)没有交集,并使得组数尽可能小。输出最小组数。输入格式第一行包含整数N,表示区间数。接下来N行,每行包含两个整数ai,bi,表示一个区间的两个端点。输出格式输出一个整数,表示最小组数。数据范围1≤N≤105,−109≤ai≤bi≤109输入样例:3-1 12 43 5输出样例:2这道题挺有难度的,先对左边界进行一个排序,然后建立一个小根堆,然后放进去有边界,每原创 2021-02-23 11:22:26 · 240 阅读 · 1 评论 -
Acwing 905. 区间选点
905. 区间选点给定N个闭区间[ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。输出选择的点的最小数量。位于区间端点上的点也算作区间内。输入格式第一行包含整数N,表示区间数。接下来N行,每行包含两个整数ai,bi,表示一个区间的两个端点。输出格式输出一个整数,表示所需的点的最小数量。数据范围1≤N≤105,−109≤ai≤bi≤109输入样例:3-1 12 43 5输出样例:2思路:将每个点的右边界进行排序,每次选取有边界作为一个点原创 2021-02-23 09:01:49 · 198 阅读 · 0 评论 -
AcWing 901. 滑雪
AcWing 901. 滑雪 给定一个R行C列的矩阵,表示一个矩形网格滑雪场。矩阵中第 i 行第 j 列的点表示滑雪场的第 i 行第 j 列区域的高度。一个人从滑雪场中的某个区域内出发,每次可以向上下左右任意一个方向滑动一个单位距离。当然,一个人能够滑动到某相邻区域的前提是该区域的高度低于自己目前所在区域的高度。下面给出一个矩阵作为例子:1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9在给定矩阵中,一条可行原创 2021-02-22 22:49:43 · 189 阅读 · 0 评论 -
AcWing 285. 没有上司的舞会
AcWing 285. 没有上司的舞会 Ural大学有N名职员,编号为1~N。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数 Hi 给出,其中 1≤i≤N。现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。输入格式第一行一个整数N。接下来N行,第 i 行表示 i 号职员的快乐指数Hi。接下来N-1行,每行输入一对整数L, K,表原创 2021-02-22 22:06:30 · 248 阅读 · 1 评论 -
AcWing 91. 最短Hamilton路径 压缩dp
AcWing 91. 最短Hamilton路径给定一张 n 个点的带权无向图,点从 0~n-1 标号,求起点 0 到终点 n-1 的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n-1 不重不漏地经过每个点恰好一次。输入格式第一行输入整数n。接下来n行每行n个整数,其中第i行第j个整数表示点i到j的距离(记为a[i,j])。对于任意的x,y,z,数据保证 a[x,x]=0,a[x,y]=a[y,x] 并且 a[x,y]+a[y,z]>=a[x,z]。输出格式输出一个原创 2021-02-22 20:44:17 · 1246 阅读 · 3 评论 -
AcWing 291. 蒙德里安的梦想 压缩dp
AcWing 291. 蒙德里安的梦想求把NM的棋盘分割成若干个12的的长方形,有多少种方案。例如当N=2,M=4时,共有5种方案。当N=2,M=3时,共有3种方案。如下图所示:输入格式输入包含多组测试用例。每组测试用例占一行,包含两个整数N和M。当输入用例N=0,M=0时,表示输入终止,且该用例无需处理。输出格式每个测试用例输出一个结果,每个结果占一行。数据范围1≤N,M≤11输入样例:1 21 31 42 22 32 42 114 11`0 0输出样例:原创 2021-02-22 19:47:23 · 163 阅读 · 1 评论 -
AcWing 338. 计数问题
AcWing 338. 计数问题给定两个整数 a 和 b,求 a 和 b 之间的所有数字中0~9的出现次数。例如,a=1024,b=1032,则 a 和 b 之间共有9个数如下:1024 1025 1026 1027 1028 1029 1030 1031 1032其中‘0’出现10次,‘1’出现10次,‘2’出现7次,‘3’出现3次等等…输入格式输入包含多组测试数据。每组测试数据占一行,包含两个整数 a 和 b。当读入一行为0 0时,表示输入终止,且该行不作处理。输出格式每组数据输出一原创 2021-02-22 16:58:08 · 977 阅读 · 1 评论 -
AcWing 900. 整数划分
AcWing 900. 整数划分这是一个计量dp求方案数,我确实没有涉及过,所以我学了y总的视频闫氏分析法还是很厉害的。我们把他变成一个完全背包问题,求价值为w时有多少种方案。核心式子推导dp[i,j]=dp[i-1][j]+dp[i-1][j-i]+dp[i-1][j-2*i]+……+dp[i-1][j-s*i];dp[i,j-i]= dp[i-1][j-i]+dp[i-1][j-2*i]+……+dp[i-1][j-s*i];dp[i,j]=dp[i-1][j]+dp原创 2021-02-22 11:51:56 · 186 阅读 · 0 评论 -
AcWing 282. 石子合并 最简单的区间dp题 区间dp+前缀和
AcWing 282. 石子合并设有N堆石子排成一排,其编号为1,2,3,…,N。每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。例如有4堆石子分别为 1 3 5 2, 我们可以先合并1、2堆,代价为4,得到4 5 2, 又合并 1,2堆,代价为9,得到9 2 ,再合并得到11,总代价为4+9+11=24;如果第二步是先合并原创 2021-02-22 10:55:38 · 169 阅读 · 0 评论 -
AcWing 899. 编辑距离
AcWing 899. 编辑距离给定n个长度不超过10的字符串以及m次询问,每次询问给出一个字符串和一个操作次数上限。对于每次询问,请你求出给定的n个字符串中有多少个字符串可以在上限操作次数内经过操作变成询问给出的字符串。每个对字符串进行的单个字符的插入、删除或替换算作一次操作。输入格式第一行包含两个整数n和m。接下来n行,每行包含一个字符串,表示给定的字符串。再接下来m行,每行包含一个字符串和一个整数,表示一次询问。字符串中只包含小写字母,且长度均不超过10。输出格式输出共m行,每行输原创 2021-02-22 10:40:45 · 396 阅读 · 0 评论 -
AcWing 902. 最短编辑距离 线性dp
AcWing 902. 最短编辑距离这道题是用线性dp就可以解决,在这之前,我先给大家介绍一下我们大名鼎鼎的闫氏dp首先我们要考虑状态表示,dp[i,j]表示a[1−-−i]变成b[1−-−j]的最小操作方案数,我们可以假设成dp[i,j]是成功把a[1~~i]变成b[1~j]的然后状态计算,删除操作是在i-1,j已经匹配上了,多了一个i,那么我们就把它删了,插入操作是指,i,j-1匹配上了,但是我们要匹配上i,j需要再加一个字母,如果a[i]==b[j]那么我们就不需要改了,就直接使用dp[i-1原创 2021-02-22 10:16:48 · 1043 阅读 · 3 评论 -
AcWing 9. 分组背包问题
题目链接有 N 组物品和一个容量是 V 的背包。每组物品有若干个,同一组内的物品最多只能选一个。每件物品的体积是 vi[j]vi[j]vi[j],价值是 wi[j]wi[j]wi[j],其中 iii 是组号,jjj 是组内编号。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行有两个整数 N,V,用空格隔开,分别表示物品组数和背包容量。接下来有 N 组数据:每组数据第一行有一个整数 Si,表示第 i 个物品组的物品数量;每组数据接下来有 Si原创 2021-02-21 23:04:13 · 86 阅读 · 0 评论 -
AcWing 5. 多重背包问题 II 用二进制变成背包问题
AcWing 5. 多重背包问题 IIy总的视频把他拆分二进制,然后可以用这些一堆2i(1-cnt)来组合成0-s的数,如果不能形成想象的二进制数,那我们就把最后的没能形成的作为一部分算进去。然后变成一个背包问题。可能到这一步你们还没有理解,比如说7的二进制数是111可以变成14+12+1*1因为二进制最大是1,也就是只能用一次,背包问题同样也是,背包问题没搞明白的话,可以去看看以前的博文链接所以代码就非常的简单了。代码如下#include<iostream>#inc原创 2021-02-21 22:43:12 · 143 阅读 · 1 评论 -
AcWing 890. 能被整除的数
AcWing 890. 能被整除的数来自大佬的博文ttps://img-blog.csdnimg.cn/20210221211724332.png)这是一道典型的容斥问题,凡是个数为奇数的就系数为正,然后偶数为负y总的视频讲的很清楚首先我们想办法把n个数的的倍数求出来求出他们的个数,然后进行一个容斥运算,为什么要用二进制呢,因为1到2m-1是0位到m-1位的0,1的全排列。所以我们引用这部分的知识#include<iostream>using namespace std;c原创 2021-02-21 21:23:42 · 1157 阅读 · 4 评论