摘要:
题目链接: https://www.luogu.org/problemnew/show/SP1805 http://poj.org/problem?id=2559 思路: 单调栈 首先如果所有矩形的高度是单调递增的,即新加入的矩形比上一个高,那么把加进来直至加完,这是我们就把分别每个矩形的高度看做是 阅读全文
摘要:
题目链接: https://www.luogu.org/problemnew/show/P2859 思路: 首先大家会想到这是典型的贪心,类似区间覆盖问题的思路,我们要将每段时间的左端点从小到大排序,然后一个个插入,插入时比较是否先前的牛棚中已经有牛挤完了奶,如果没有就新增一个牛棚,否则用挤完奶的牛 阅读全文
摘要:
题目链接: https://www.luogu.org/problemnew/show/CF670C 思路: step 1: 语言的数据范围是10^9,所以我们采取用map离散化,这样就能方便且不MLE地记录每个语言会的人数。 step 2: 然后我们再遍历一遍所有场次的电影,记录下最多人能听懂声音 阅读全文
摘要:
题目链接: https://www.luogu.org/problemnew/show/P2280 思路: 简单的二维前缀和,最后扫描一遍求 max(ans,f[i][j]+f[i r][j r] f[i r][j] f[i][j r]); 两个操作时间复杂度都是N方 注意细节: mx,my初始值赋 阅读全文
摘要:
思路: 离散化变成一个1 n的数组表示每个数的排名,然后按顺序插入各个数排名,并且查询比它排名大的数的个数。 这个离散化方法还是比较好的,思维难度和代码难度都比较小。 include include include include include using namespace std; const 阅读全文
摘要:
Update 18.2.27 想当年我还用着C..... 看到题解里一堆用C++ STL库中的优先队列,身为C语言选手心里不是滋味 故手打一个优先队列献给坚守在C语言的选手 include define maxn 1000050 int que1[maxn]; int head=1,tail=0; 阅读全文
摘要:
1. 问题描述 题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N K 1个加号,(括号随便加)使最终结果尽量大。因为乘号和加号一共就是N 1个了,所以恰好每两个相邻数字之间都有一个符号。例如: N=5,K=2,5个数字分别为1、2、3、4、5,可以加成: 1\ 2\ (3+4+ 阅读全文
摘要:
1. 题目 问题描述 有一棵 n 个节点的树,树上每个节点都有一个正整数权值。如果一个点被选择了,那么在树上和它相邻的点都不能被选择。求选出的点的权值和最大是多少? 输入格式 第一行包含一个整数 n 。 接下来的一行包含 n 个正整数,第 i 个正整数代表点 i 的权值。 接下来一共 n 1 行,每 阅读全文
摘要:
此题可以用STL中的map做,但是了解一下Trie树这个数据结构也是必须的。 Trie树(又称字典树)有以下特点: 1. 根节点不包含字符,除它之外的每一个节点都包含 一个 字符。 2. 从根节点到某一节点,路径上经过所有字符连起来为该节点对应字符串 3. 每个节点的子节点包含字符不同,也就意味着字 阅读全文
摘要:
首先请看定义:(百科上抄下来的)孙子定理是中国古代求解 一次同余式组(见同余) 的方法。是数论中一个重要定理。又称中国余数定理。 一元线性同余方程组问题最早可见于中国南北朝时期(公元5世纪)的数学著作《孙子算经》卷下第二十六题,叫做“物不知数”问题。 原文如下: 有物不知其数,三三数之剩二,五五数之 阅读全文