![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
codeforces
drywwltu
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #775 (Div. 2, based on Moscow Open Olympiad in Informatics) E
在路上想了一下,没想到思路是对的。题解对于每个位置iii考虑小于t[i]t[i]t[i]的还剩多少个,其中前 i−1i - 1i−1个位置保证 t[i]=s[i]t[i] = s[i]t[i]=s[i]那么位置 iii 对答案的贡献便是小于t[i]t[i]t[i] 的数量和后面 n−in - in−i个数的排列的乘积,注意去重#include <bits/stdc++.h>using namespace std;typedef long long ll;const int mod =原创 2022-03-06 21:57:57 · 143 阅读 · 0 评论 -
Codeforces Round #759 Div2 F-Non-equal Neighbours
先提供一个n2n^2n2的做法定义f[i][0/1]f[i][0/1]f[i][0/1]为前i位并且满足x[i]=x[i+1]x[i] = x[i + 1]x[i]=x[i+1]的数量为奇数(1)偶数(0)所以可得转移方程为f[i][k+i−j−1]=∑j=0i−1f[j][k]∗min(a[j+1]...a[i])f[i][k + i-j-1] = \sum_{j = 0}^{i - 1}f[j][k] * min(a[j + 1]...a[i])f[i][k+i−j−1]=∑j=0i−1f[j..原创 2021-12-16 21:17:56 · 400 阅读 · 2 评论 -
Codeforces Global Round 15 F. Telepanting
设qiq_iqi为在xix_ixi位置处的传送门传送到yiy_iyi后再走到xix_ixi的距离,根据一个显而易见的结论:若能走到第i个传送门,则前i - 1个传送门都处于活动状态,所以,qi=xi−yi+qj+...+qi−1q_i = x_i - y_i + q_j + ... + q_{i - 1}qi=xi−yi+qj+...+qi−1.#include <bits/stdc++.h>#define N_MAX 200005#define ll long lo.原创 2021-07-27 09:27:03 · 297 阅读 · 3 评论 -
Editorial of Global Round 15 C. Maximize the Intersections
假设k = 0,我们可以发现当所有交线呈星形排列(*)时答案最大。所以对于我们需要添加的n−kn - kn−k条线我们是他们呈星形排列。#include <cstdio>#include <iostream>#include <cstring>#include <utility>#include <vector>using std::pair;using std::vector;int T,n,k;bool use[205]..原创 2021-07-26 10:09:43 · 102 阅读 · 1 评论 -
Editorial of Global Round 15 D Array Differentiation
因为n比较小,我们可以考虑时间复杂度较大的算法,我们可以构造一个环(假设环上有m个点),环上的点满足 s1a1+s2a2+s3a3+...+smam=0s_1a_1 + s_2a_2 + s_3a_3 + ... + s_ma_m = 0s1a1+s2a2+s3a3+...+smam=0 (s是选的符号),我们可以枚举环的长度并枚举s可能的情况,只要有一组环的和为0,即可构造。#include <cstdio>#include <iostream>#inclu.原创 2021-07-26 09:00:00 · 114 阅读 · 0 评论 -
Codeforces Round #725 (Div. 3)补题
1原创 2021-06-11 20:40:35 · 96 阅读 · 1 评论 -
Codeforces Round #723 (Div. 2)补题
水题,只需要将序列分成两部分即可,一部分是大的,一部分是小的。#include <cstdio>#include <iostream>#include <algorithm>int T,a[105];int main(int argc,char *argv[]){ scanf("%d",&T); while(T--){ int n; scanf("%d",&n); for(int .原创 2021-05-29 13:50:10 · 102 阅读 · 0 评论