Codeforces Round 620 (Div. 2) 题目链接 https://codeforces.com/contest/1313 A B C题直接跳过。 D题: 求最短的上升子序列,我们可以直接假设它是1~n从大到小排列,然后对于每两个大于号之间的小于号再翻转就行。 求最长的就反过来做一 ...
分类:
其他好文 时间:
2020-03-01 12:35:10
阅读次数:
62
这题有些不一样,睁大眼睛看题,发现不用连续地取,那么我们就可以预处理一下。 把h从大到小排个序,然后从前往后扫一遍,如果当前的这片土地的w值不比前面的最大值大,那么他就可以被包含,无贡献。 这时我们取出了一个h递减,w递增的数列,这时取就必须连续了。 递推式长这样:f[i]=f[j]+b[i].w* ...
分类:
其他好文 时间:
2020-03-01 00:47:10
阅读次数:
55
T1 假如max(a)<0的话直接把所有的a排个序贪心选择大的尽量多 现在考虑一个正的ai对后面的影响 维护一个大根堆,a<0就往里添,a>=0就去抵消堆顶元素 这样新序列(堆里的元素)就可以像刚才那样做了 T2 先把点按权值从大到小排序 然后枚举那个点可以选也可以不选 前面的都已经选了 然后在当前 ...
分类:
其他好文 时间:
2020-02-29 22:08:02
阅读次数:
60
描述给定一个数组包含n个元素,统计前m大的数并且把这m个数从大到小输出。输入第一行包含一个整数n,表示数组的大小。n < 100000。第二行包含n个整数,表示数组的元素,整数之间以一个空格分开。每个整数的绝对值不超过100000000。第三行包含一个整数m。m < n。输出从大到小输出前m大的数, ...
分类:
其他好文 时间:
2020-02-27 23:47:47
阅读次数:
137
"传送门" 按照 $d_i$ 从大到小依次考虑每个点。发现我们可以通过将某些边调整为 $10^9$ 来 “封死” 这条边,从而使得每个点 $i$ 至多与一个 $d_j\leq d_i$ 的 $j$ 相邻。可以证明取最小的一个 $j$ 不会导致无解。 此时,若 $d_j d_i$ 的边,要么已经被考虑 ...
分类:
其他好文 时间:
2020-02-26 01:12:10
阅读次数:
66
A: 题意: 有ABC的三种菜,现在有a个A,b个B,c个C,问能组成多少种不同菜单 思路: abc都大于等于4,肯定是7种,给abc排个序,从大到小举例删减 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define ll long lon ...
分类:
其他好文 时间:
2020-02-23 22:36:39
阅读次数:
82
/* * @Issue: 数组排序:从键盘读入多个整数,要求对这些整数实现从小到大或从大到小排序, 屏幕上输出排序结果。冒泡、选择、插入三种排序算法都可以 * @Author: 一届书生 * @LastEditTime: 2020-02-21 13:35:46 */ #include<iostrea ...
分类:
编程语言 时间:
2020-02-21 14:57:06
阅读次数:
83
“冒泡排序法”可以将一个无序的数组按照从小到大的顺序或者是从大到小的顺序进行排序,是一种较为常见的排序算法,因为数据从小到大或者从大到小地到数列头或者数列末的过程称为“冒泡”。对于冒泡排序我觉得最重要的两点就是:(1)需要重新排序的次数,即循环的次数,这个是根据数组的序列的大小来定的,比如数组的大小 ...
分类:
编程语言 时间:
2020-02-19 05:34:04
阅读次数:
80
这个用优先队列就可以了。 在这里补充一点优先队列和队列的知识。 优先队列 大根堆:从大到小排列。小根堆:从小到大排列。优先队列就是堆,也可以自己手写堆。// 小根堆的写法priority_queue<int,vector<int>,greater<int> > vis;// 大根堆的写法priori ...
分类:
其他好文 时间:
2020-02-16 16:09:34
阅读次数:
70
sort 思路:正常使用sort即可,注意是从大到小排序,需要一个cmp函数保证排序,如果使用cin和cout会超时,所以,改用时间短的scanf和printf。 代码: #include<iostream> #include<algorithm> using namespace std; int ...
分类:
其他好文 时间:
2020-02-15 15:25:38
阅读次数:
44