上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页

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 欣崽 阅读(460) 评论(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 欣崽 阅读(172) 评论(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 欣崽 阅读(150) 评论(0) 推荐(0) 编辑

Codeforces Round #620 (Div. 2) D

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

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

2020年2月15日

Codeforces Round #592 (Div. 2) E

摘要: 给你一个数组,你最多可以进行k次操作,每次操作可以使一个数+1或者-1,问操作之后数组的极差最小可能是多少 利用map来模拟移动,可以观察到每次应该选择数量少的一组数让他们进行移动是最优的 int main(){ int n; ll k; cin >> n >> k; vector<int> a(n 阅读全文

posted @ 2020-02-15 01:13 欣崽 阅读(124) 评论(0) 推荐(0) 编辑

2020年2月4日

2020 CCPC Wannafly Winter Camp Day1 Div.1&amp F

摘要: #include<bits/stdc++.h> #define forn(i, n) for (int i = 0; i < int(n); i++) #define fore(i, s, t) for (int i = s; i < (int)t; i++) #define fi first #d 阅读全文

posted @ 2020-02-04 19:15 欣崽 阅读(211) 评论(0) 推荐(0) 编辑

2020年1月31日

codeforces 1284E

摘要: 计数每一个点被被其他点组成的四边形完全包含的四边形的个数,给出的点没有三点共线的情况 官方题解如下,说的很清楚,也很有技巧 代码也是直接参考官方的题解来的 #include<bits/stdc++.h> #define forn(i, n) for (int i = 0; i < int(n); i 阅读全文

posted @ 2020-01-31 16:56 欣崽 阅读(195) 评论(0) 推荐(0) 编辑

2020年1月22日

Codeforces Round #612 (Div. 2) (A-D)

摘要: 直 接看所有A后面连续P的个数最大值 #include<cstring> #include<cstdio> #include<set> #include<iostream> #define forn(i, n) for (int i = 0; i < int(n); i++) #define for 阅读全文

posted @ 2020-01-22 21:05 欣崽 阅读(220) 评论(0) 推荐(0) 编辑

2020年1月20日

Codeforces Round #578 (Div. 2) 二维差分 可做模板

摘要: 题意: 在n*n的矩阵中,你可以选择一个k*k的子矩阵,然后将这个子矩阵中的所有B全部变为W,问你怎么选择这个子矩阵使得最终的矩阵中某一行全是W或者某一列全是W的个数最多 题解:考虑每一行和每一列,对于特定的一行来说,要想让其全变为W,那么子矩阵的左上角端点是在一个范围中的,因此我们可以把范围中的每 阅读全文

posted @ 2020-01-20 00:59 欣崽 阅读(178) 评论(0) 推荐(0) 编辑

2020年1月19日

Codeforces Round #613 (Div. 2) (A-E)

摘要: A略 直接求和最大的子序列即可(注意不能全部选中整个子序列) or #include<bits/stdc++.h> using namespace std; void solve(){ int n; cin>>n; vector<int> a(n); vector<long long> sum(n+ 阅读全文

posted @ 2020-01-19 21:18 欣崽 阅读(201) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页

导航