AOJ/堆与动态规划习题集】的更多相关文章

ALDS1_9_A-CompleteBinaryTree. Codes: //#define LOCAL #include <cstdio> int parent(int i) { return i/2; } int left(int i) { return i*2; } int right(int i) { return i*2+1; } int main() { #ifdef LOCAL freopen("E:\\Temp\\input.txt", "r&qu…
一个显然的dp是设f[i][j]为i子树内权值<=j时的答案,则f[i][j]=Σf[son][j],f[i][a[i]]++,f[i][a[i]+1~n]对其取max.这样是可以线段树合并的,但实在太弱了不太会. 另一种做法是考虑扩展经典的单调队列优化LIS的做法,维护子树内答案为k时最小的最大值,用平衡树维护,在父亲处启发式合并,然后将父亲处权值插入即可. #include<iostream> #include<cstdio> #include<cmath>…
剑指 Offer 49. 丑数 Offer_49 题目详情 解法一:小根堆+哈希表/HashSet 根据丑数的定义,如果a是丑数,那么a2, a3以及a*5都是丑数 可以使用小根堆存储按照从小到大排序的丑数. package com.walegarrett.offer; import java.util.HashMap; import java.util.PriorityQueue; /** * @Author WaleGarrett * @Date 2021/2/8 21:39 */ /**…
题目传送门 传送门I 传送门II 题目大意 给定一棵带边权有根树,修改一条边的边权的代价是修改前和修改后的值的绝对值之差.不能将一条边的边权改为负数.问使得根节点到所有叶节点的距离相等的最小代价. 当前正在考虑某个节点,设$f(x)$表示算上它到父节点的边,后将所有叶节点到它的父节点的距离改为$x$的最小代价.设$g(x)$表示将它所在的子树内的所有叶节点到它的距离改为$x$的最小代价,它和它父节点的边的边权为$w$. 对于一个点的各个子树之间互相独立,所以这个点的$g$函数相当于,它的各个子节…
背景 你知道吗,SQ Class的人都很喜欢打CS.(不知道CS是什么的人不用参加这次比赛). 描述 今天,他们在打一张叫DUSTII的地图,万恶的恐怖分子要炸掉藏在A区的SQC论坛服务器!我们SQC的人誓死不屈,即将于恐怖分子展开激战,准备让一个人守着A区,这样恐怖分子就不能炸掉服务器了.(一个人就能守住??这人是机械战警还是霹雳游侠?)但是问题随之出现了,由于DustII中风景秀丽,而且不收门票,所以n名反恐精英们很喜欢在这里散步,喝茶.他们不愿意去单独守在荒无人烟的A区,在指挥官的一再命令…
题目描述 Mary在她的生日礼物中有一些积木.那些积木都是相同大小的立方体.每个积木上面都有一个数.Mary用他的所有积木垒了一个高塔.妈妈告诉Mary游戏的目的是建一个塔,使得最多的积木在正确的位置.一个上面写有数i的积木的正确位置是这个塔从下往上数第i个位置.Mary决定从现有的高塔中移走一些,使得有最多的积木在正确的位置.请你告诉Mary她应该移走哪些积木. 输入 第一行为一个数n,表示高塔的初始高度.第二行包含n个数a1,a2,...,an,表示从下到上每个积木上面的数. 输出 注意:请…
问题描述 LG5202 题解 \[opt[i]=xx+(cnt[i]-cnt[yy]<=0)\] 发现\(cnt[i]-cnt[yy] <= 0\)只能有两种取值 于是直接堆优化即可 \(\mathrm{Code}\) #include<bits/stdc++.h> using namespace std; template <typename Tp> void read(Tp &x){ x=0;char ch=1;int fh; while(ch!='-'&a…
ALDS1_1_D-MaximumProfit. Codes: //#define LOCAL #include <cstdio> #include <algorithm> using namespace std; #define maxSize 200010 int a[maxSize]; int main() { #ifdef LOCAL freopen("E:\\Temp\\input.txt", "r", stdin); freope…
ALDS1_3_A-Stack. Description: Write a program which reads an expression in the Reverse Polish notation and prints the computational result. An expression in the Reverse Polish notation is calculated using a stack. To evaluate the expression, the prog…
ALDS1_4_A-LinearSearch. Description: You are given a sequence of n integers S and a sequence of different q integers T. Write a program which outputs C, the number of integers in T which are also in the set S. Input: In the first line n is given. In…