摘要:
热心的牛牛 牛牛有k颗糖果,n位朋友,怎么分配才能让所有朋友都比自己多,且自己尽量多 思路:二分+贪心,自己尽量多,然后让朋友尽量不多于自己太多 typedef long long ll; class Solution { public: ll Maximumcandies(ll n, ll k) 阅读全文
摘要:
定义每个结点的价值为$xdep_x$,即每个点的编号乘以每个点的深度,算出有n个结点的完全二叉树的总价值 思路 开始想复杂了啊,直接算出左右结点l、r,然后根据$\cfrac{(尾项+首项)*项数}{2}$就是总和了啊(今晚的脑子帧不好使) const int mod=998244353; type 阅读全文
摘要:
给你一个整数数组 nums 和一个整数 x 。每一次操作时,你应当移除数组 nums 最左边或最右边的元素,然后从 x 中减去该元素的值。请注意,需要 修改 数组以供接下来的操作使用。如果可以将 x 恰好 减到 0 ,返回 最小操作数 ;否则,返回 -1 。 思路:比较好像的一题 typedef l 阅读全文
摘要:
用两种操作使两个字符串是是偶发接近 操作 1:交换任意两个 现有 字符。 例如,abcde → aecdb 操作 2:将一个 现有 字符的每次出现转换为另一个 现有 字符,并对另一个字符执行相同的操作。 例如,aacabb → bbcbaa(所有 a 转化为 b ,而所有的 b 转换为 a ) 思路 阅读全文
摘要:
删除一个只函字符a、b的字符串,使其变为按字典序升序的最少删除次数 思路:f[i]表示将s的前i个字符变为全a的操作次数,g[i]类似 const int N=1e5+5; int f[N],g[N]; class Solution { public: int minimumDeletions(st 阅读全文
摘要:
给定N个正整数A1, A2, ... AN。从中选出M个整数,使得它们的乘积末尾有最多的0。 **思路:**f[i][j][k]表示从前i个数中选出j,且一共有k个因数5时,最多的2的个数 #include<iostream> #include<cstring> using namespace st 阅读全文
摘要:
给定N个整数二元组(X1, Y1), (X2, Y2), ... (XN, YN)。 请你计算其中有多少对二元组(Xi, Yi)和(Xj, Yj)满足Xi+Xj = Yi+Yj且i < j。 思路:因为 #include<bits/stdc++.h> using namespace std; typ 阅读全文
摘要:
给定一个有向图,求出该有向图中哈密顿回路的条数(哈密顿路径只关注经过的结点,不关注如何走的(也就是经过的边)) **思路:**暴搜 #include<iostream> using namespace std; const int N=13, M=1<<N; int n,m,ans,ALL,nei[ 阅读全文
摘要:
n个人参加某项特殊考试。 为了公平,要求任何两个认识的人不能分在同一个考场。 求是少需要分几个考场才能满足条件。 思路:问最少,当然是要我们尽量先塞爆放过人的考场啦... #include<bits/stdc++.h> using namespace std; const int N=105,inf 阅读全文
摘要:
弹簧锁有n个槽(n<=17),每个槽的高度可以是{1,2,3,4}中的中的任何一个。在锁的槽中,至少有一对相邻的槽,其高度差等于3,并且锁的槽至少有3个不同的高度值。 查找所符合上述条件的锁的数量。 思路:要记录的东西有这么几个: 当前槽的位置i 前一个相邻槽的高度j 到目前位置槽高度的种类k 目前 阅读全文