
cf简单题
Sleppypot
困难的路越走越容易,容易的路越走越难。
展开
-
822C
题意:给出n个区间和X,每个区间有左右边界和价值,li,ri,x。然后问从这n个区间找出2个不重合的区间,他们的区间长度和为x,并且价值最小。解答:方法一:预处理:记录所有以某个点为左端点、右端点的区间长度和价值。枚举以每个点为左端点和右端点的所有区间。记录每个以该点为右端点的区间的价值的最小值。然后从第二个点为起点更新最小值。#include#include#include#inc原创 2017-07-23 22:46:36 · 522 阅读 · 0 评论 -
423C
题意:告诉你一些字符串的信息,要求你重组并输出字典序最小的这个字符串,告诉你的信息是,某个子串在某几个位置出现,保证给的信息不冲突 解答:暴力!但是!要注意重复地位置要跳过,不然会超时!#include#include#include#include#include#includeconst int MAXN = 2000100;char s[MAXN];int ss[原创 2017-07-23 22:59:58 · 629 阅读 · 0 评论 -
423D
题意:给出n个点,其中k个点只能有一条边相连,剩下的边至少有2条边相连,问构造出的树最远的两个点最近是多少解答:度为1的点的数目越多,这个距离就越小。那么构造一个中心点,发散地连k个点。不够n的一层一层往最外面的点上面添加即可。#include#include#includeusing namespace std;int main(){ int n,k; whil原创 2017-07-23 23:26:18 · 1120 阅读 · 0 评论 -
424C
题意:一个比赛中,有n次打分,有一个初始分数,这个初始分数加上这n次的分可得出n个结果,而作者只记得其中k次的结果,且不确定是哪几次的。问初始分数有多少中可能?解答:首先要初始化这n次的打分的前缀和。注意前缀和地去重处理!v将这k个结果分别枚举为第一次到第n次的结果,分别计算出初始值。如果这个得出某个初始值得次数恰好为k,那么这个初始值即为可能的结果。#include#include#原创 2017-07-23 23:46:58 · 528 阅读 · 0 评论 -
422D
题意:f(i)表示有i个女孩比赛,若不分组,则应当比 次。但可以将他们分为x个组,每组i/x个人,每组分别进行比赛决出一个女孩,再将各个组决出的女孩进行比赛。给出t,l,r,求 t0·f(l) + t1·f(l + 1) + ... + tr - l·f(r). 解答:如果是素数,则无法分组,否则分为i/i的最小质因子组。i的最小质因子可通过筛素数的方法得出。#include#inclu原创 2017-07-25 13:14:43 · 488 阅读 · 0 评论