随笔分类 -  0x04模拟,贪心

摘要:#解题思路 参考了这个博客。 比赛的时候一直在想先把a和b相加之后怎么搞,而没有想到在a和b相加的过程中怎么搞。用一个变量存储进位,然后分几种情况讨论。 如果两位加起来加上进位结果是0和1,不用进位。 如果结果是2,那么需要进位,并且这一位结果是0。如果本位的sgn为正,那么如果下一位的sgn也是正 阅读全文
posted @ 2021-09-27 17:10 shuitiangong 阅读(244) 评论(0) 推荐(1)
摘要:题目链接 #题目大意 给你n个商品,对于每个商品可以选择三个操作之一: 1.以这个商品价格买入这个商品 2.如果之前买过某商品以这个商品价格卖出一个商品 3.什么也不做 #解题思路 先讲一个别的问题。对于A, B, C, D四个数,任你选出几对数求最大差值, 如果$A<B<C, B>D$,是有两种选 阅读全文
posted @ 2021-08-26 20:39 shuitiangong 阅读(113) 评论(0) 推荐(0)
摘要:题目链接 #题目大意 给你n个区间,让你每个区间选一个数,选的数不能重复。 #解题思路 看到题的第一眼肯定是想大力贪。怎么贪呢?对于每个区间来说,尽可能的选靠左或者靠右的数?好像都不太对的样子。 我们考虑将所有区间的左端点排序,然后用一个指针从最小的左端点往右移,每存在一个以当前指针为左端点的右端点 阅读全文
posted @ 2021-08-18 19:53 shuitiangong 阅读(72) 评论(0) 推荐(0)
摘要:题目链接 #题目大意 在n块$W\times H$的地里建两个建筑,可以建在同一块地,也可分开,建筑与边界平行。 #解题思路 建在同一块地很好算,主要是建在不同的地里怎么算。首先将长边从大到小排序,然后开始遍历,将当前的长边当作建筑的一边,而将之前的最长的短边与现在的短边取最小值,显然之前遍历过的地 阅读全文
posted @ 2021-02-12 22:49 shuitiangong 阅读(77) 评论(0) 推荐(0)
摘要:题目链接 #题目大意 给你n组数,每组数有a和b两个数,代表数量和让数量加1的花费,问让所有数量都不相同的最小代价。 #解题思路 如果直接贪心的话会发现情况很复杂。我们可以先求出所有数修改之后的数量应该是多少。如果两个数相同,那么其中一个数如果和其他数相同就得加到一个没有出现的数为止,不过有个更好的 阅读全文
posted @ 2021-02-08 11:20 shuitiangong 阅读(95) 评论(0) 推荐(0)
摘要:题目链接 #题目大意 给你两个数组,让你对b数组排序,使得所给公式算出的结果最小。 #解题思路 思路很显然,算出来每个位置会被算上的次数然后直接乘到a上再对a排序就行了,但是有个特别坑的点就是需要先排序后取模,否则原来的大小关系就会变化。 #代码 const int maxn = 3e5+10; c 阅读全文
posted @ 2021-02-07 17:27 shuitiangong 阅读(49) 评论(0) 推荐(0)
摘要:题目链接 #题目大意 略 #解题思路 使用两个优先队列,第一个优先队列以v为第一优先级,s为第二优先级从大到小排序,第二个优先队列以s为第一优先级,v为第二优先级从小到大排序。对于第一个优先队列堆顶的一对(v,s)来说,如果s我们选出的所有数的数量小,就不需要他了,因为我们以v的大小为第一优先级,加 阅读全文
posted @ 2020-10-04 09:37 shuitiangong 阅读(141) 评论(0) 推荐(0)
摘要:题目链接 #题目大意 给n个数a,之后再给m组数b,b中每组数第一个数如果大于a中的某个数,则可以删除这个数,第二个数代表这个数一次能删除几个连续的数。a中的每个数只能按顺序被删除,问最小删除次数。 #解题思路 首先先把b中的数按第一个数排序,然后用一个数组记录大于等于这个数的最大次数,如果次数用完 阅读全文
posted @ 2020-08-31 15:24 shuitiangong 阅读(158) 评论(0) 推荐(0)
摘要:题目链接 #题目大意 给n个向量从中选出k个向量,使得它们首尾连接与x轴成的面积的2倍最大。 #解题思路 首先我们观察图形可以发现,每新加一个向量,图像右上角的横纵坐标都会变化,而且计算面积的时候需要知道前面的纵坐标,所以我们可以dp图像的纵坐标,其值就是面积,然后取最大面积。既然是从n个数中选出k 阅读全文
posted @ 2020-08-26 16:11 shuitiangong 阅读(183) 评论(0) 推荐(0)
摘要:题目链接 #解题思路 以任意一个点为根,求出它到根的异或值,那么两个点之间异或值就是两者到根的异或值的异或值(因为重复的数异或值等于0),然后就变成了求n个数中两个数最大的异或值。 #代码 const int maxn = 1e6+10; const int maxm = 3e6+10; vecto 阅读全文
posted @ 2020-07-19 17:01 shuitiangong 阅读(152) 评论(0) 推荐(0)
摘要:题目链接 #解题思路 如果想要两个异或的值最多,最好就是两个数从二进制的高位到地位,尽可能的满足一个是1一个是0。把每个数都转换成31位二进制串的形式,然后存到trie树中。然后一个一个的枚举每一个数,在trie树中找尽可能可以异或出最大值的数。 #代码 const int maxn = 1e5+1 阅读全文
posted @ 2020-07-19 16:24 shuitiangong 阅读(135) 评论(0) 推荐(0)
摘要:题目链接 #解题思路 这题最简单的暴力就是枚举左上角和右下角,但是其实有个稍微好一点点的方法。我们可以枚举矩形一条边的边长,至于另一条边的边长,我们会发现,在不断往下延伸的过程中,增加了很多子矩阵,如果已经延伸的部分都是负数,那么可以全部舍去,从一个和为正数的子矩阵开始延伸。这样的话时间复杂度就降到 阅读全文
posted @ 2020-07-16 10:02 shuitiangong 阅读(144) 评论(0) 推荐(0)
摘要:题目链接 #解题思路 这一题相当于环形的均分纸牌,需要用到均分纸牌的思路。 在均分纸牌这题中,我们可以从最左边的一堆或者最右边的一堆开始,递推出所有牌堆需要传递的次数,设每传一张牌的代价为1,那么把$x_i$累加起来就是全部均分的代价。 而对于本题,因为要面对的是一个环,所以暴力做法是我们可以从任意 阅读全文
posted @ 2020-06-15 13:07 shuitiangong 阅读(196) 评论(0) 推荐(0)
摘要:题目链接 #题目大意 给一个a数组,要求定义一个b数组,使得$b_1$$b_i$之中没有出现的最小的数等于$a_i$。 #解题思路 首先可以肯定的是,如果要给b数组填数的话,一定要优先填较小的数,我们这里用一个变量k来填。其次,后面要出现的数字不能用,但是前面出现过后面不会再出现的数可以用。因为要使 阅读全文
posted @ 2020-06-14 01:03 shuitiangong 阅读(155) 评论(0) 推荐(0)
摘要:"题目链接" 题目大意 把一个数划分成两个没有前导0的正整数,使其和最小。 解题思路 如果不考虑划出来的数有没有前导0的话很好做,为了使划出来的两个数尽量小,一定是要从中间划分的。这里需要注意长度为奇数的时候有两种划法,比如93123,可以化成931+23和93+123。 那么如果从中间划会划出含有 阅读全文
posted @ 2020-05-23 21:34 shuitiangong 阅读(156) 评论(0) 推荐(0)
摘要:"题目链接" 题目大意 给$n$个不大于$k$的数,让你尽可能的把它们分成较小的组,每组大于等于$i$的数不超过$c[i]$个。 分析 从最简单的情况开始考虑,对于$n$个数中最大的数$i$,如果数组中一共有$m_i$个$i$,那么这个数组中大于等于$i$的数的数量就是$m_i$个,所以说将这$m_ 阅读全文
posted @ 2020-05-02 22:57 shuitiangong 阅读(163) 评论(0) 推荐(0)
摘要:题目链接:https://vjudge.net/problem/%E8%AE%A1%E8%92%9C%E5%AE%A2-A1011 题目大意:w和x节目的拍摄场地是固定的,问你怎么分配x和y节目的时间从而使得他们在两个场地拍摄时间的最大值最小。 如果y和z同时处理情况会变得很复杂,所以我们可以暴力枚 阅读全文
posted @ 2020-03-06 13:17 shuitiangong 阅读(183) 评论(0) 推荐(0)
摘要:题目链接:https://vjudge.net/problem/CodeForces-1059B 题目大意:你有一个可以盖出一个3*3 ‘#’中心为‘.’的章,问你能不能盖出图中的形状 其实简单模拟一下就行了.....如果盖下一个章,那么这个章的中心8个方向一定是'#',那我们反过来做一个'.'图, 阅读全文
posted @ 2020-03-03 12:31 shuitiangong 阅读(167) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/3665/D 题意就是给你一个n*m的矩阵,然后一开始矩阵都是0,每次让矩阵的一行与一列取反,问q次操作后矩阵每个点状态是1的 数目有多少。 如果直接模拟的话时间会超时,所以可以用两个数组分别记录行、列的变化,但是只是 阅读全文
posted @ 2020-02-03 21:30 shuitiangong 阅读(143) 评论(0) 推荐(0)
摘要:题目链接:http://acm.zzuli.edu.cn/problem.php?id=2616 #include<set> #include<map> #include<stack> #include<queue> #include<cmath> #include<cstdio> #include 阅读全文
posted @ 2019-12-25 11:22 shuitiangong 阅读(302) 评论(0) 推荐(0)