https://www.cnblogs.com/wsy107316/p/11502628.html 导弹拦截 解题思路:用nlogn的方法求第一问:最长不上升序列:方法链接 用贪心法求第二问,遍历一遍 AC_Code: 1 #include <iostream> 2 #include <cstdio ...
分类:
其他好文 时间:
2020-01-29 14:11:50
阅读次数:
81
Solution: 对于每个很大的数,基于贪心,我们显然要让它合并次数尽可能少,以保证最终总代价最小。 如图: 考虑中间那个最大的 $maxn$,很显然,将其与其它的合并代价显然更大,所以,我们不可能先用 $maxn$ 去和其它的合并。 但是,由于最终目标长度为1,所以无论如何,$maxn$ 终将被 ...
分类:
其他好文 时间:
2020-01-29 10:36:26
阅读次数:
48
题意: 给定一个字符串,长度小于等于500000。让你找一个二元组序列(l[i],r[i]),使得区间[l[i+1],r[i+1]]的字符串是区间[l[i],r[i]]的子串。求最长的序列长度。 题解: 首先有一个贪心的想法,第i个字符串肯定恰好比第i+1个字符串多一个字符。 考虑对于位置i,如何判 ...
分类:
其他好文 时间:
2020-01-29 01:19:11
阅读次数:
69
题解: 注意每一列与每一列之间互不影响,所以贪心地求出没一列的最小操作值,然后累加起来。 怎么求没一列的最小值呢?维护一个数组same表示其中same[i]=j表示将该序列向上翻滚i次有j个元素归位,那么会有n-j个没有归位,所以我们要修改他们,一共修改n-j次,所以总计n-j+i次。 所以每一列的 ...
分类:
其他好文 时间:
2020-01-28 22:47:54
阅读次数:
53
A题 签到题 B题 只需要贪心的调换成只能经过一次调换的最小字符串,再与目标串比较 #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace st ...
分类:
其他好文 时间:
2020-01-28 12:30:35
阅读次数:
54
"A. 【线上训练13】二叉树" 题解:贪心,先求出这两个序列,i在第一个序列位置为$a[i]$,第二个为$b[i]$,如果$a[i] b[i]$, $ans += 2^{a[i] b[i]}$ cpp include include include include include include ...
分类:
其他好文 时间:
2020-01-28 09:34:02
阅读次数:
62
contest链接:https://codeforces.com/contest/1294 A. 给出a、b、c三个数,从n中分配给a、b、c,问能否使得a = b = c。计算a,b,c三个数的差值之和,n对其取余,判断是否为0即可。 AC代码: 1 #include<iostream> 2 #i ...
分类:
其他好文 时间:
2020-01-28 09:16:10
阅读次数:
117
由于题目要使最长路径最短,于是很容易想到贪心策略: 每棵树和其它树连边的点一定是这棵树上能走到的最远距离最短的的点(由于本人语文水平太菜,这句话有点绕 qwq) 如果我们把上述的最短距离称作半径 $r$,$1,2,3...$ 是树按照 $r$ 排序后的。那么最后链接成的树应该长这样: 那么最后的答案 ...
分类:
其他好文 时间:
2020-01-28 00:03:38
阅读次数:
102
贪心 从上级比赛向下级比赛枚举 用一个堆维护一下可以作为对手人选的价值 每次取最小即可 如果当前比赛不用花钱就能打赢就跳过 没做出来的原因在于还想维护每个对手的手下败将 其实根本不用维护 因为剩下的人总能合理分配 只要比这个人弱的人数量足够就行 因为只要弱就行 #include <bits/stdc ...
分类:
其他好文 时间:
2020-01-28 00:03:22
阅读次数:
99
贪心 一条边的价值肯定大于其子树里边的价值 那么先将叶子节点对应的边放进一个$set$ 从后往前扫 每次选$set$里最小的配对 如果出现新的叶子加入$set$ 每条边的价值就是自己以及子树中最大的编号 有点类似超级钢琴的贪心 不过简单很多 #include <bits/stdc++.h> usin ...
分类:
其他好文 时间:
2020-01-27 23:31:33
阅读次数:
353