随笔分类 -  构造题

cf1041E
摘要:题意:要求你构造一棵树,树中每一个节点都有一个编号(互不相同),告诉你删除掉每一条边之后的两个联通分量中节点标号的最大值,要求你输出这颗树,不存在就输出NO 题解:可以发现这颗树实际上是一个序列,我们构造一个序列就可以了 #include<bits/stdc++.h> using namespace 阅读全文

posted @ 2020-02-21 21:29 欣崽 阅读(220) 评论(0) 推荐(0)

cf1131D
摘要:题意:总共有n+m个点,每一个点都有一个val,给出一个n*m的矩阵,矩阵中第i行第j列的为=,表示 i 点 和 j+n个点的值相等,<表示i 点比j+n个点的值小,> 刚好相反 要求用最少的值给每一个点确定一个val,满足如上那个矩阵,如果不存在输出Yes 存在输出每一个点的val 题解:大小关系 阅读全文

posted @ 2020-02-21 19:18 欣崽 阅读(244) 评论(0) 推荐(0)

cf1214E
摘要:题意简述:构造一棵包含2*n个节点的树,要求2*i 和 2*i-1之间的距离等于d[i]<=n 1<=i<=n 给出N和d数组,输入对应的边 题解:对d数组按照从大到小排序,然后首先构造出一条链,1 - 3 - 5 -7 2*n-1 然后一次将 2 ,4 。。 。 加进去,加进去的过程中维护最长的链 阅读全文

posted @ 2020-02-19 20:35 欣崽 阅读(160) 评论(0) 推荐(0)

cf1176D
摘要:题意简述:数组a经过一系列操作之后获得数组b,给你数组b,构造出一个满足条件的数组a 操作如下从左到右扫描数组a,如果是一个素数,那么把第这个素数的素数加到数组a中,例如a[1]=2那么加3到数组a当中 如果是一个和数,那么把这个和数的最大因数加进去,这个因数不能等于他本身 只操作N次,N为数组a的 阅读全文

posted @ 2020-02-18 22:59 欣崽 阅读(212) 评论(0) 推荐(0)

cf1266D
摘要:注意到每一个的点出入流是不会变的,因此本质是让构造一张图满足这个出入流并且边上的流量之和最少,显然流量是平衡的,也就是所有节点的出入流之和为0 因此我们可以直接暴力的选择让负数点向正数点连边,连之后就更新每一个点的出入流,直到所有点出入流都为0就结束 int n,m; ll need[maxn]; 阅读全文

posted @ 2020-02-18 17:28 欣崽 阅读(225) 评论(0) 推荐(0)

cf 989C
摘要:构造一个网格图使得四种类型的联通分量分别有a,b,c,d 看图就知道应该如何去构造了 int gird[maxn][maxn]; int main(){ int a[4]; for(int i=0;i<4;i++) cin>>a[i],--a[i]; int n = 40, m= 50; for(i 阅读全文

posted @ 2020-02-17 20:01 欣崽 阅读(595) 评论(0) 推荐(0)

Codeforces Round #620 (Div. 2) D
摘要:构造一个排列,要求相邻之间的数满足给定的大小关系,然后构造出两个序列,一个序列是所有可能的序列中LIS最长的,一个所有可能的序列中LIS最短的 最短的构造方法:我们考虑所有单调递增的部分,可以发现要让他LIS最小那么就必须要让每一个部分满足前面的比后面的大 最长的构造方法:考虑单调递减的部分,每一个 阅读全文

posted @ 2020-02-17 16:28 欣崽 阅读(151) 评论(0) 推荐(0)

导航