题解
文章平均质量分 80
TimDyh
这个作者很懒,什么都没留下…
展开
-
洛谷 P1036 选数
这道题的关键在于如何列出所有的选数组合,那么自然想到递归。我们将n个数存入数组num[]中,选数过程可以看作是从下标0~n-1中选择不重复的k个填满k个空位。函数dfs()中sum记录当前已选数的累加和,left记录当前剩余空位数,p指出当前空位可以从num[]中哪一位下标开始选。由于组合是无序的,且不能选择重复的数,所以要遵循从前往后选数的规则,即后一个空位只能选择num[]中下标比前一个空位所...原创 2019-08-20 10:20:20 · 115 阅读 · 0 评论 -
洛谷 P1177 【模板】快速排序
这道题用传统快排(如下所示)的结果就是最后三个点TLE:void swap(int &a, int &b){ int tmp = a; a = b; b = tmp;}void quickSort(int a[], int left, int right){ if (left >= right) return;...原创 2019-08-20 10:28:29 · 195 阅读 · 0 评论 -
洛谷 P1080 国王游戏
这是一道贪心题,贪心的策略是将大臣们按左右手金币的乘积升序排列,具体证明过程可以参见洛谷大佬的题解,这里就不再赘述了。因为本菜鸡之前没有接触过高精度运算,对C++的运算符重载也不太熟练,所以正好借此机会记录一下用到的高精度模版。模版框架参考于:https://blog.csdn.net/Wall_F/article/details/8373395然而,直接复制该模版会导致TLE,原因在于这...原创 2019-08-20 10:32:24 · 163 阅读 · 0 评论 -
洛谷 P1219 八皇后
这道题感觉没有必要用好几个数组甚至二维数组来做吧……把问题抽象一下,其实不需要显式地模拟棋盘的行列,这样代码也更简洁。实际上,要满足“每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子”的条件,只需要让序列任意两个位置上的数字之差不等于其距离之差。举个例子,假设当前要决定第pos行的棋子所在的列数i,即序列ans[]的第pos个位置的数字为i,那么只要让i与po...原创 2019-08-28 11:29:29 · 198 阅读 · 0 评论