摘要:
题意: 你有一个机器人,这个机器人在一维坐标轴上移动。你可以给这个机器人下达指令,指令的形式为 \(t_i, x_i\) ,意味着机器人在第$t_i$秒的时候获得一条指令,此时这个机器人以$1/s$的速度从现在的位置开始向$x_i$移动。若机器人执行当前指令的过程中收到其他命令,那么其他命令会被忽略 阅读全文
摘要:
题意: 给出一个由n个数组成的数组a,这个数组的元素和为S,要求你找出一个由n个数字组成数组b,这个数组满足: 数组中的每个数可以将他两边的数字整除或者被他两边的数字整除 数组b中每个位置的数字减去数组a中相应位置的数字的绝对值和的二倍小于等于S 输出任意一个满足的数组b 思路: 考虑到1可以整除任 阅读全文
摘要:
题意: 你面前有三个怪物,他们分别有a, b, c点血量。现在你可以指定一个怪物,用大炮向他们射击,之后该怪物就会掉一滴血。每七次射击就会使得炮弹威力加强一次,即第7, 14, 21次射击的时候炮弹威力会被加强,加强的炮弹可以对三个怪物分别造成一点伤害。现在问你可不可能在某次被加强的炮弹发射后,使得 阅读全文
摘要:
题意: 给出n个线段组成的集合,第i个线段用 \(\{l_i, r_i\}\) 表示线段从坐标轴的点$l_i$横跨到点$r_i$。现在你可以删除其中的一些线段,使得剩下的线段组成的集合中至少存在一个线段满足:这个线段与所有其他线段都相交。现在问你最少需要删除几条边可以得到满足要求的线段集合。 思路: 阅读全文
摘要:
本题为hard版,还有一个easy版,区别在于k和m的取值不同。 题意: 给出一个由n个数字组成的数组 \(a\)。现在定义一种子集为${A_1, A_2, A_3, ..., A_m}$,使得这个子集中的最大值和最小值的差值不超过k,其中m和k是给出的。现在问你这种子集有几个。 思路: 对给出的数 阅读全文
摘要:
#include <cstdio> typedef long long ll; const int N = 100005; // 最大能计算的n上限 const int MOD = 1000000007; // 1e9 + 7 ll fac[N]; // 用于存储阶乘结果 ll qpow(ll a, 阅读全文
摘要:
题意: 给出一个由n个数字组成的数组,先让你找出符合下列条件的子集的数量: 每个子集包含的数字个数为m = 3 这三个数字中的最大值减去最小值不超过k = 2 思路: 首先对给出的数组进行排序,现在假设这个数组为$a$,这个子集为${A_1, A_2, A_3}$,那么我们每次枚举$A_1$,用一个 阅读全文
摘要:
题意: 给出一个数字x,让你找出一个由1到9这九个数字组成的数字,这个数字的每一位加起来等于x,并且1到9每个数字只能出现一次。若能找到这样的数字,输出这其中最小的一个,否则输出-1。 思路: 利用二进制枚举,枚举每个1到9这九个数字是否出现。每次枚举若和等于x,则将被选中的数字从小到大排列,取得到 阅读全文
摘要:
codeforces1462D 题意: 给出一个由n个数组成的数组,现在你可以对这个数组进行如下操作:将数组中的一个元素加到这个元素的两边中的一边,然后将这个元素删掉。若该元素在最左边,那么该元素不能加到左边,因为它的左边已经没有元素了,同理最右边。现在问你最少几次这样的操作可以让整个数组的每个元素 阅读全文