2020年2月17日

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)

cf1000E

摘要: 先缩点构造出一颗树,然后求树的直径就好 const int maxn=3e5+5; const int maxm=6e5+5; const int inf=1e9; int head[maxn],ver[maxm],nex[maxm],tot; void inline AddEdge(int x,i 阅读全文

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

Educational Codeforces Round 46 (Rated for Div. 2) D

摘要: dp[i]表示一定包含第I个点的好的子序列个数,那么最终答案就是求dp[0] + dp[1] + .... + dp[n-1] 最终的子序列被分成了很多块,因此很明显我们枚举第一块,第一块和剩下的再去组合,然后我们为了保证没有重复,我们需要保证第一块不同,然而第一块的大小是固定的,因此我们可以选择枚 阅读全文

posted @ 2020-02-17 17:25 欣崽 阅读(174) 评论(0) 推荐(0)

Codeforces Round #620 (Div. 2) D

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

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

导航