构造
Lnn.
来吧
展开
-
E. Kuroni and the Score Distribution妙妙构造、证明
前言:这一场,寄!题目传送门E. Kuroni and the Score Distribution 题目类型:数学、证明、贪心构造。 解析:凭直觉会想到构造1~n的数组,此时三元组最多。感性证明一下:比如1,2,3,4,5,6,7。7 = 1+6 = 2+5 = 3+4。7可以把1-6的所有数都用来构造三元组,每个数都尽量把前面的数用来构造三元组(i-1)/2个,所以这样构造三元组是最多的,这样还不够的话就寄了。 如果还没构造完就超过了,那么此时需要的数<=(i-1)/2。比n =原创 2021-11-18 13:32:33 · 239 阅读 · 0 评论 -
C. Phoenix and Towers
前言:其实就是合并果子。C. Phoenix and Towers 题目类型:贪心,优先队列 解析: 对于把n个数放到m个位置上的问题,我们可以先考虑简化版本:选m个数放到m个位置上。显然,m个数,任意两个数的差不超过x,即最大和最小的数差不超过x,那么这m个数就是原数组中最小的m个数。这一部分sort处理。 接下来考虑,在处理好的m个数中,添加一个数。那么现在有m+1个数,我们可以取其二相加,贪心一下,选两个最小值相加。不断重复这个操作。便得到正解。这部分用优先队列维护。 可以证明原创 2021-05-04 00:14:06 · 127 阅读 · 0 评论 -
B. Phoenix and Puzzle
前言:无前言。B. Phoenix and Puzzle题目类型:规律,构造。 解析:观察,可以用四个三角形的直角边组成一个基础正方体,也可以用两个三角形的斜边组成一个基础正方体,大正方体必定能由i*i个基础正方体得来,枚举即可,则大正方体有个三角形i.i.4或者i.i.2个三角形。 code#include <iostream>#include <cmath>#include <cstdio>#include <cstring>#in原创 2021-05-03 23:22:28 · 575 阅读 · 1 评论 -
A. Phoenix and Gold
前言:我是菜鸡,写这题被自己的脑洞折磨,写成dp,dfs,差点没写出来。A. Phoenix and Gold 题目类型:构造,模拟。 解析:题目中重要信息:数组中每个数都不一样,那么直接模拟,从1取到n,如果发现到i时,前缀和pre[i]=x,那么把i和没取过的换一下就行了,因为每个数都不一样,所以换完之后pre一定不等于x,如果等于,说明数组总和=x,输出no。 code:#include <iostream>#include <queue>#include原创 2021-05-03 23:14:39 · 157 阅读 · 0 评论