随笔分类 -  菜鸡的算法路

摘要:https://codeforces.ml/contest/1746/problem/D 题目大意:一棵n节点有根树,根节点为1,分别有两个数组 s[i] 顶点 i 的魅力值 c[i] 覆盖顶点 i 的路径数 每个顶点的路径数必须满足,同一父节点的子节点| c[v1]-c[v2] | <= 1 问当 阅读全文
posted @ 2022-10-16 12:36 empty_y 阅读(124) 评论(0) 推荐(0)
摘要:bitset:基本功能就是将一个数改为其二进制的形式 基于此特点有以下优化: 1.二维bool数组优化为bitset: https://www.luogu.com.cn/problem/P3879 1 # include<iostream> 2 # include<bits/stdc++.h> 3 阅读全文
posted @ 2022-09-01 11:01 empty_y 阅读(56) 评论(0) 推荐(0)
摘要:种类并查集:定义种类之间的关系来判断操作是否进行 题目大意:对于题目给出的一个矩阵,我们可以进行一种操作:swap(a[i][j],a[j][i]) 使得矩阵可以变换为字典序最小的矩阵 思路: 通过扫描整个矩阵,每次都判断a[i][j] 和 a[j][i]是否需要交换 交换的前提就是: 对第i行/第 阅读全文
posted @ 2022-08-07 22:52 empty_y 阅读(62) 评论(0) 推荐(0)
摘要:记录一下第一次写交互题 题目大意:一共有1<<n个人参加一场竞标赛,需要你通过比较两人的胜场来判断谁晋级,最终获得第一名 最多1/3*2^(n+1)次询问,每次询问query(a,b),如果a胜场多返回1,如果b胜场多返回2,相同胜场返回0 找到冠军后输出“! i”(i为冠军的编号) 思路: 每次取 阅读全文
posted @ 2022-08-07 18:30 empty_y 阅读(70) 评论(0) 推荐(0)
摘要:题目大意:求一段数(l到r)的按位与结果不为零需要删除中间元素的最小个数 思路:按位与使得结果不为0只要有某一位全是1即可,所以只要统计每一位1的个数,用总个数减去1的个数就是某一位0的个数 删除包含0最少的那一位就是最少需要删除的个数 1 # include<iostream> 2 # inclu 阅读全文
posted @ 2022-08-06 17:43 empty_y 阅读(52) 评论(0) 推荐(0)
摘要:题目链接:https://vjudge.net/problem/HDU-2639 题目大意:求一个0-1背包中第k个最优解 思路: 将最优解的个数也作为背包的一维来进行递推,只不过递推的依据需要额外的两个数组来记录在相同体积下的第s次最优解 1 # include<iostream> 2 # inc 阅读全文
posted @ 2022-08-03 00:11 empty_y 阅读(27) 评论(0) 推荐(0)
摘要:题目大意:给出一个文章t和n个字符串s1,s2...sn; 问能否用这n个字符串将整个文章覆盖; 思路:贪心(最小区间覆盖) 记录每个字符串能够覆盖的所有位置(起点,终点,编号) 排序后贪心的求出是否能够将所有点覆盖 1 # include<iostream> 2 # include<bits/st 阅读全文
posted @ 2022-08-02 22:00 empty_y 阅读(187) 评论(0) 推荐(0)
摘要:题目大意: 当一栋楼比旁边两栋楼都高的时候,这栋楼为cool,对除了1和n以外的所有楼可以增加任意层,问在满足使最多的楼cool的前提下的花费最小。 当n为奇数的情况下: cool的楼实际上是固定的,只要将他们需要的花费加起来就好。 当n为偶数的情况下: cool的楼并不固定,但是他的形式是固定的, 阅读全文
posted @ 2022-07-19 15:34 empty_y 阅读(98) 评论(0) 推荐(0)
摘要:题目大意: 给出一个无向无环连通图(树),n个点n-1条边,m次查询,每次询问给出一个集合,问集合里的树是否都在同一条链上(即能否不重复的走一条边而遍历整个点集) 思路:通过求lca,若有三个点x,y,z 如果满足dix(x,y)+dix(y,z) == dix(x,z),说明此时y位于x,z之间, 阅读全文
posted @ 2022-07-14 12:32 empty_y 阅读(49) 评论(0) 推荐(0)
摘要:题目链接:https://codeforces.ml/contest/1702/problem/E 题目大意: 每张牌上面有两个数字,现在有n张牌(n为偶数),问能否将这n张牌分成两堆,使得每堆牌中的数字不重复; 因为需要每堆牌不重复,那牌中的数字必须满足: 1.每个数字出现的次数刚好为2 2.同一 阅读全文
posted @ 2022-07-11 14:01 empty_y 阅读(152) 评论(0) 推荐(0)
摘要:https://codeforc.es/contest/1697/problem/C 因为规则中,两种字符串变换都与‘b’有关,所以我们根据b的位置来进行考虑; 先去掉所有的'b',如果两字符串不相等就“NO”; 否则通过‘b'在a,b串中的位置,如果posa>posb,那么他们之间如果出现'a'就 阅读全文
posted @ 2022-07-08 01:36 empty_y 阅读(43) 评论(0) 推荐(0)
摘要:D Problem - D - Codeforces 题意: 给定一个有向图,每个点有自己的点权,求一条长度为K的路径使得路径上的最大点权最小,输出该条路径上的最大点权。 思路:(二分+拓扑排序) 最小值最大的题考虑二分解决。 我们每次二分答案为mx,以此判断有没有某条路径的最大值为mx且长度为k。 阅读全文
posted @ 2022-05-15 13:34 empty_y 阅读(39) 评论(0) 推荐(0)
摘要:C. 连锁商店 time limit per test 1 second memory limit per test 512 megabytes input standard input output standard output 比特山是一个旅游胜地,它一共有 n个景点,按照海拔高度从低到高依次 阅读全文
posted @ 2022-05-01 12:19 empty_y 阅读(177) 评论(0) 推荐(0)
摘要:题目大意:给你N个字符串,你可以从中选择任意数量的字符串,请统计在你的字串中,相同字母出现次数正好为K次的字母数。数据保证出现的字母都是小写字母。 1≤N≤15 1 ≤K≤N 一开始读题的时候读错了,读成了至少为k次,就想的暴力选择全部字符串,然后统计字母数,但是在认真读题WA了N发后发现是恰好为K 阅读全文
posted @ 2022-04-30 11:22 empty_y 阅读(266) 评论(0) 推荐(0)
摘要:小豆现在有一个数 x,初始值为 1。小豆有 QQ 次操作,操作有两种类型: 1 m:将 x变为 x × m,并输出 x mod M 2 pos:将 x 变为 x 除以第 pos次操作所乘的数(保证第 pos 次操作一定为类型 1,对于每一个类型 1 的操作至多会被除一次),并输出 x mod M。 阅读全文
posted @ 2022-04-29 01:46 empty_y 阅读(57) 评论(0) 推荐(0)
摘要:给定长度为N的数列A,以及M条指令,指令为一下两种之一: 1. C L R d 表示把A[L],A[L+1].....A[R]都加上d 2. Q L R 表示查询 A[L]......A[R]的最大公约数 对于每个询问输出一个答案; 这个题算是经典的线段树的问题了,因为:区间修改+区间查询 这道题好 阅读全文
posted @ 2022-04-24 15:09 empty_y 阅读(99) 评论(0) 推荐(0)
摘要:1 # include<iostream> 2 # include<cstring> 3 # include<algorithm> 4 using namespace std; 5 const int N = 110; 6 7 int e[N], ne[N], idx; 8 int h[N]; 9 阅读全文
posted @ 2022-04-13 00:07 empty_y 阅读(46) 评论(0) 推荐(0)
摘要:Codeforces Round #781 C. Tree Infection time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output A 阅读全文
posted @ 2022-04-09 11:17 empty_y 阅读(177) 评论(0) 推荐(1)
摘要:菜鸡第一次打icpc 记录一下历程 习惯#define int long long 以下皆是按照我认为的难易顺序排序 K. 看题意大概就是说求从L加到R 1 ios::sync_with_stdio(false); 2 cin.tie(nullptr); 3 cout.tie(nullptr); 4 阅读全文
posted @ 2022-04-04 12:37 empty_y 阅读(96) 评论(0) 推荐(0)