![](https://img-blog.csdnimg.cn/20210313211311984.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
greedy
贪心
「已注销」
这个作者很懒,什么都没留下…
展开
-
简单的构造
题一个长度为n的序列,给你n-2个三元组,比如p=[1,4,2,3,5],那么三元组为[1,4,2],[4,2,3],[2,3,5],其中每个三元组内的元素可以交换位置,整个三元组也可以和别的三元组整体交换位置,但不能交换不同三元组的数。求这个序列。点击进入...原创 2021-06-02 19:53:31 · 126 阅读 · 0 评论 -
27
题目给定一堆书,有只有Alice喜欢的,有只有Bob喜欢的,也有两者都喜欢的,选出Alice喜欢的k本书,Bob喜欢的k本书,两种选择可以有重复,组成一个新集合,要求新集合对应的总阅读时间最少,输出这个最少时间。(如果这本书被选择,不论几个人读都是花费t的时间,不喜欢则说明不读)基本思路按阅读时间,自小到大,将只有Alice喜欢的排序,将只有Bob喜欢的排序,将两者自小到大配对,配成两者都喜欢的,即两本书的阅读时间,合并成一本书的阅读时间,归类为两者都喜欢的书,最后只在AB喜欢中选。证明:只有Al原创 2021-01-18 23:16:51 · 64 阅读 · 0 评论 -
26
题目大意 给出N K Z 。 N长的数组,从1开始走,能够走K步,最多可以向左走Z次,不可连续两次向左走。 每走到一个地方,就获得其值,问如何走使得获得的值最大。思考过程: 从1开始走,显然最多走到K+1,枚举所有点。 每一次向左走再回原地,要两次操作,其对答案的贡献是A[ i ]+A[ i - 1]. 对于每个点,A[ i ]+A[ i - 1].作为MX。每左走一次加一次MX。 对于向左走不回到原地,这种情况是正好走了K步才会出现。所原创 2021-01-18 23:17:27 · 86 阅读 · 0 评论 -
8
题目怪兽的血量ai与对下一个(i+1)怪兽的伤害bi,最后一个怪兽伤害首怪兽。问杀死所有怪兽所需子弹最少?一发伤害1。老子的代码:#include<iostream>#include<algorithm>using namespace std;typedef long long ll;int t,n;int main(){ scanf("%d",&t); while(t--){ scanf("%d",&n); ll a[n],b[n],c原创 2021-01-19 20:53:38 · 67 阅读 · 0 评论 -
9
题给定 n 个节点 n-1 条边组成的树,以节点 1 为根。现需要选出 k 个节点作为工业城市,其余城市均为旅游城市。问从所有工业城市出发走到根节点所经过的旅游城市数量之和的最大值。思路选出 n-k 个旅游城市以节点 1 为树根->对于每个节点,我们可以计算出以这个节点为根的子树中包含的节点数量以及这个节点拥有的祖先节点数量。选择的旅游城市都是尽可能靠近根节点的,首先肯定是将根节点选成旅游城市,then选择某个节点 i 作为旅游城市,那么对答案的“增加的贡献”就是以节点 i 为根的子树(不包原创 2021-01-19 18:44:58 · 79 阅读 · 0 评论 -
6
题给一个字符串,如果一个char左或右的char比它字典序小1,这个字符可删除,问最多可删多少个字符思路1从字典序最大的字符开始删https://www.cnblogs.com/-Ackerman/p/12420140.html思路2考虑到数据量小,暴力https://blog.csdn.net/qq_43504141/article/details/104618903...原创 2021-01-20 11:05:59 · 69 阅读 · 0 评论 -
31+
题ps:隐藏浏览器收藏栏ctl+b图论:点击进入分治:点击进入原创 2021-01-21 15:49:12 · 89 阅读 · 0 评论 -
32+
题给两个字符串S和T,把S的子序列接在Z末尾构造空串Z使得Z==T,最小操作次数or不可能-1分析与代码点击进入原创 2021-01-21 16:57:47 · 77 阅读 · 0 评论 -
38+
题两个字符串 s、t,s字符串中字符至多交换一次。若最终s能小于t,输出s,若不可能,输出—。例s:AZAM t:APPL不会:点击进入原创 2021-01-22 10:50:19 · 75 阅读 · 0 评论 -
42+
题q次,每次给出等长为n的字符串s、t。问能否在2n次之内(含)s与t交换一个字符操作使得两者相同,若是输出yes,交换次数以及每次交换的s下标、t下标,否则输出no。点击进入原创 2021-01-22 17:59:27 · 83 阅读 · 0 评论 -
41
题t次,每次给你一个数,你可以操作无限次:交换相邻两个奇偶性不同的数。输出最小化的数双指针:点击进入原创 2021-01-22 17:33:24 · 64 阅读 · 0 评论 -
47
题有一个怪兽,有X个头,你有N种攻击方式,每种攻击方式能够砍掉Di个怪兽的头,同时,以该种攻击方式进行攻击后,如果怪兽没被杀死,那么怪兽会长出Hi个头。问,最少攻击多少次可以将怪兽杀死,如果不能输出-1。贪心点击进入...原创 2021-01-23 09:38:04 · 63 阅读 · 0 评论 -
46+
题n张票的价格pi,每a张票价格的x%与每b张票价格的y%用作环保项目,为了使环保项目的总额至少为k,求出重新排列票的价格后需要卖出的最少的票数二分 贪心 点击进入_gcd()的使用点击进入...原创 2021-01-22 21:27:09 · 84 阅读 · 0 评论 -
50+
题长为n的数组a,q次操作,1操作为p位置数改为q,2操作为所有小于p的数更为p,求最终数组。点击进入原创 2021-01-23 11:13:01 · 87 阅读 · 0 评论 -
49+
题给出主串和模式串,问从主串中删除一些子串得到模式串,删除的子串中最大长度为?例子:asdfyyazzsdfasd、fasd点击进入原创 2021-01-23 10:41:15 · 85 阅读 · 0 评论 -
52+
题q 次,每次,给一个长度为 n 的字符串, 循环子串的长度 k,长度为 n 的子串中选择一个长度为 k 的子串,对其进行任意次更改,即可将任意一个字符改为其他字符代价为1,使得这个子串与 “RGBRGBRGB…” 循环子串所匹配,求最小代价。点击进入...原创 2021-01-23 14:19:08 · 94 阅读 · 0 评论 -
54+
题给出4n+1个点, 除了一个点之外其余点都在一个正方形的边界上, 找出这个点。点击进入原创 2021-01-23 15:50:45 · 58 阅读 · 0 评论 -
48+
题给你一个数组a,你可以对ai 除以2向下取整 无限次,计算最小操作次数使得数组中相同数的个数为k。点击进入原创 2021-01-23 10:07:26 · 497 阅读 · 0 评论 -
57+
题给两个数组a、b,长都n你可以任意改变b的顺序来最小化最终答案点击进入点击进入原创 2021-01-24 10:25:24 · 167 阅读 · 0 评论 -
59+
题n,数组,要求输出k的最大值,满足前k个数中(Q中),去掉一个数之后,(Q中)剩下每种数的数量相同。点击进入原创 2021-01-24 10:25:37 · 93 阅读 · 0 评论 -
58+
题输入次数t,对于每次,输入n,下行n个数,求他们的最小公倍数,然后判断之前的n个数是不是它所有的乘数/因数。分析点击进入代码点击进入原创 2021-01-24 10:25:46 · 75 阅读 · 0 评论 -
62+
题有人要从A地飞向B地,然后从B地飞向C地。给出A,B地的n、m个航班的出发时间。已知所有航班从A到B的经过时间ta,从B到C经过时间tb。到达B,问你现在你可以去掉最多K个航班,尽量使得别人最晚到达C 如果不能到达C 输出-1 (那个人会在你删掉之后选择最好的方案)点击进入点击进入...原创 2021-01-24 11:36:13 · 153 阅读 · 0 评论 -
65+
题对矩阵每个点求交叉点。点击进入原创 2021-01-24 14:25:27 · 85 阅读 · 0 评论 -
69+
题给出一棵有点权ai的树,root深度为 1,现在你只知道深度为奇数的点到root的路经权值和si,让你给所有点都分配一个非负的权值,满足所给和,且所有点权的和最小。如果不存在输出 -1 。点击进入点击进入...原创 2021-01-25 13:26:01 · 101 阅读 · 0 评论 -
74+
题输入一个长度为n的字符串,字符串只包含字符G和S,最多一次交换两个字符,获得最大连续G的个数。两方法:点击进入原创 2021-01-25 17:06:51 · 98 阅读 · 0 评论 -
73+
题有n个学生,m个科目,然后输入n行x,y分别表示科目编号和科目的能力值,现在要求去选科目,使得所选的每个科目的人数相同,问怎么选才能使最后的能力值最大,输出最大的能力值。点击进入...原创 2021-01-25 16:38:56 · 76 阅读 · 0 评论 -
89+
题给你n个线段,给出其左右端点,求去掉其中一个边,剩下的线段的最大交集。ps:画图明了两方法:点击进入原创 2021-01-27 10:41:36 · 105 阅读 · 0 评论 -
79
题a,b,c是二进制序列,a“+”b=c//001+111=112,c不能有连续重复。b已知,求最大可能a思路分治法#include<cstdio>using namespace std;int main(){ int t;scanf("%d",&t); while(t--){ int n;scanf("%d",&n); char a[n+5],b[n+5],c[n+5]; scanf("%s",b); a[0]='1'; if(b[0]=='原创 2021-01-20 14:29:34 · 158 阅读 · 0 评论