
基本算法
ZA139
这个作者很懒,什么都没留下…
展开
-
洛谷P2370 yyy2015c01 的 U 盘 二分答案+背包
洛谷P2370 yyy2015c01 的 U 盘 二分答案+背包很简单但是很有意思的一道题题意:n个文件,最小价值p,硬盘大小为s设端口大小为每次传输文件大小的上限求最少需要多大的端口可以传过去价值总和大于等于p的文件如果没有则输出No Solution!思路:因为端口大小具有单调性,所以可以二分对端口大小进行二分,check函数中进行01背包,判断能否装下价值总和大于等于p的文件即可如果大小等于右端点也装不下,则无解代码:#include<cstdio>#includ原创 2020-12-25 16:30:50 · 309 阅读 · 0 评论 -
2020ICPC上海站 B Mine Sweeper
题意:给定两个扫雷n*m的矩阵A和B在进行最多floor(n∗m/2)floor(n*m/2)floor(n∗m/2)次取反操作之后,把B中的所有非地雷格子的数字的和等于A中的值(非地雷格子中的数字表示在以自己为中心的3x3的格子中有多少个地雷)求出任意符合题意的翻转方案思路看到floor(n∗m/2)floor(n*m/2)floor(n∗m/2)次操作,想到取反易证得,一个矩阵翻转后数字和不变翻转后总有一个操作不超过floor(n∗m/2)floor(n*m/2)floor(n∗m/2)原创 2020-12-20 22:42:51 · 235 阅读 · 0 评论 -
Running Median 对顶堆
Running Median 对顶堆题意:给定一个数列,每次已经输入了奇数个数字的话,输出此时的中位数思路:对顶堆板子题想象两个堆为一个三角形和一个倒三角形,组成的沙漏形状,即为对顶堆,两个堆相接之处则为答案维护一个大根堆一个小根堆,保持这两个堆均分数组数据。询问时输出对顶即可代码:注意输出格式#include<iostream>#include<algorithm>#include<queue>#include<vector>usi原创 2020-12-08 17:16:44 · 304 阅读 · 0 评论 -
七夕祭 (前缀和,排序)
七夕祭 (前缀和,排序)题意是中文的就不重复了。。思路:列之间的交换并不会影响行的结果,相似的,行之间的交换并不会影响列的结果首先我们进行可行性判断即t个点可以被n行或者m列所均分可以抽象为将t个点均分给n或m个人(类似题目[均分纸牌][https://ac.nowcoder.com/acm/problem/16739])以下以分给n个人为例第i个人需要的纸牌数目为A[i]=row[i]−(t/n)A[i]=row[i]-(t/n)A[i]=row[i]−(t/n),为正则为需要纸牌,从i+原创 2020-12-08 15:51:50 · 362 阅读 · 0 评论 -
Codeforces DIV2 670C Cinema(离散化)
Codeforces DIV2 670C Cinema(离散化)题意:有n个科学家,每个科学家会一个语言。有m个电影,每个电影有一个音频语言和一个字幕的语言输出最多人能听懂的电影的索引,如果有多个电影有相同的人数能听懂,则输出在此条件下最多人能看懂的一个,如果还有多个电影符合,输出任意思路: 可以直接用map写 这里用离散化。数据范围2e5个科学家,且每个人只会一种语言。但是数据大小为1e9,所以我们可以离散化到一个计数数组中,然后再根据题意对其排序,如果lower_bound返回的下标等原创 2020-12-08 12:37:26 · 124 阅读 · 0 评论 -
算法竞赛进阶指南0x01位运算题解
算法竞赛进阶指南0x01位运算题解a^b背景知识:1.快速幂 已知任意数字均可由二进制表示,即为,给定一个十进制整数b,若其在二进制表示下有k位,则其可以被表示为b=∑i=0k−1ci2ib=\sum_{i=0}^{k-1}c_i2^{i}b=∑i=0k−1ci2i其中cic_ici为b在二进制表示下的第i位 根据幂次运算的运算律,同底数幂相乘,底数不变,指数相加,即basea+b=basea∗basebbase^{a+b}=base^a*base^bbasea+b=basea∗base原创 2020-10-28 19:55:01 · 282 阅读 · 0 评论 -
起床困难综合症
起床困难综合症题意给你N个门,每个门的操作为AND,XOR,OR中的一种,每个门有一个操作数,现在让一个[0,m]的数字x依次通过这n扇门,问最大的结果是多少思路位运算没有进位,所以可以每一位单独运算所以我们让在[0,m]范围的每一位去通过这n道门,查看结果即可因为x有[0,m]范围的限制,所以我们要尽可能的让x最小即对于x的第i位当且仅当x的第i位为0时通过n道门得到的结果不为1且x的第i位为1时通过n道门得到的结果为1时x的第i位才为1,否则都是0最后获得x跑一边n道门就是答案啦原创 2020-10-23 20:16:42 · 485 阅读 · 0 评论