首先我们难以计算每个在范围内的数对答案的贡献,注意到每个数的贡献组成是线性的,于是可以考虑计算每个数字对答案的贡献。 那么你会发现对于数字 \(d\),当它在所选数中排名(从大到小)为 \(i\) 时对答案的贡献就为 \(d \times 10 ^ {i - 1}\)。 那么现在的问题就转化为求数字 ...
分类:
其他好文 时间:
2020-10-12 19:59:07
阅读次数:
22
题目链接 题意 给出 n 个数字,求满足$a+b+c=d$的 d 的最大值,注意(a,b,c,d) 互不相等。 思路 折半枚举。 首先我们把任意两个数的和求出,排序。 然后从大到小枚举 d 的值,再枚举 c 的值,对于$d-c$,我们二分找到其在两个数的和中出现的次数。 接下来开始将重复的情况删去。 ...
分类:
其他好文 时间:
2020-10-06 21:16:10
阅读次数:
46
平衡树 1. 二叉搜索树的优点 二叉搜索树作为数据存储的结构,最大的优势是可以快速找到给定关键字的项,并且可以快速的实现插入和删除数据操作 因为二叉搜索树采用了二分查找的策略 2. 二叉搜索树存在的问题 但是二叉搜索树有一个麻烦的问题:若插入的数据是一个有序数列(从小到大/从大到小),会造成二叉搜索 ...
分类:
其他好文 时间:
2020-09-17 23:05:38
阅读次数:
28
自己想了好一会,AC后看了下好像和网上挺多人思路不太一样(但本质是一样的),所以就来写这篇题解 首先这题之所以能反悔的根本原因和性质在于你在第i天买股票,第j天卖出,可以拆成第i天买股票,第k(i <= k <= j)天卖出和第k天买股票,第j天卖出两个过程(I) 我们首先可以从大到小倒序扫描,假设 ...
分类:
其他好文 时间:
2020-09-03 17:04:38
阅读次数:
37
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法? 输入格式: 输入在一行中给出待换的零钱数额8。 输出格式: 要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1 ...
分类:
编程语言 时间:
2020-07-18 11:36:23
阅读次数:
93
原文地址:https://www.cnblogs.com/Cloudcan/p/13326550.html 遵循两条原则:1.某出栈元素之后出栈的各元素,若比其小(即在原队列中先进栈),必须为从大到小排序(即倒序);2.最大的倒序数列,其元素数目不可以超过栈大小。例如5 6 4 3 7 2 1,最大 ...
分类:
其他好文 时间:
2020-07-17 09:25:45
阅读次数:
68
第一种使用if语句来完成这个功能 1 public static void main(String[] args) { 2 Scanner in = new Scanner(System.in); 3 System.out.println("请输入第一个数:"); 4 int num1 = in.n ...
分类:
其他好文 时间:
2020-07-16 10:12:55
阅读次数:
65
题目链接:https://codeforces.com/contest/1380/problem/C 题意 给 $n$ 个数分组,要求每组的最小值乘以该组数的个数不小于 $x$ 。 题解 从大到小依次分即可。 代码 #include <bits/stdc++.h> using ll = long l ...
分类:
其他好文 时间:
2020-07-14 00:45:36
阅读次数:
83
区间选点问题: 给定n个v闭区间[ai,bi],在数轴上选尽量少的点,使得每个区间内都至少有一个点(不同区间内含的点可以是同一个)。 【思路点拨】 首先按照区间的结束位置从大到小排序。然后从区间1到区间n进行选择:对于当前区间,若集合中的数不能覆盖它,则将区间末位的数加入集合(对于每个集合取最后一个 ...
分类:
其他好文 时间:
2020-07-11 13:15:24
阅读次数:
54
题目链接:https://www.acwing.com/problem/content/212/ 给定n个数,要求这些数能够异或的数中的第k小,通过求异或线性基就可以得到这些数可以异或得到的不相同的数的维数,通过这些线性基的异或便可以得到这些数的异或的所有可能的数, 异或基中从大到小的数的最高位为1 ...
分类:
编程语言 时间:
2020-07-08 11:47:07
阅读次数:
71