B Binary Vector

题意:

随机生成 2020牛客暑期多校训练营(第六场)_ios2020牛客暑期多校训练营(第六场)_ios_02 向量,使这 2020牛客暑期多校训练营(第六场)_ios 个为一组,求这 2020牛客暑期多校训练营(第六场)_ios

2020牛客暑期多校训练营(第六场)_#include_05

可以选择 2020牛客暑期多校训练营(第六场)_#include_06两种,只有 2020牛客暑期多校训练营(第六场)_ios_07 符合,2020牛客暑期多校训练营(第六场)_#include_08 和任何向量都不线性无关。所以 2020牛客暑期多校训练营(第六场)_#include_09

2020牛客暑期多校训练营(第六场)_#define_10


2020牛客暑期多校训练营(第六场)_#include_11
2020牛客暑期多校训练营(第六场)_#include_12
2020牛客暑期多校训练营(第六场)_#include_13
2020牛客暑期多校训练营(第六场)_#define_14

2020牛客暑期多校训练营(第六场)_#define_15三个组合,他们都是独立的,就是 2020牛客暑期多校训练营(第六场)_#include_16,然后加上顺序就是 2020牛客暑期多校训练营(第六场)_#define_17 一共有 2020牛客暑期多校训练营(第六场)_#define_18 中情况,总情况就是 2020牛客暑期多校训练营(第六场)_ios_19 ,所以 2020牛客暑期多校训练营(第六场)_#define_20

具体公式的推导:

2020牛客暑期多校训练营(第六场)_#include_21

2020牛客暑期多校训练营(第六场)_ios_22

AC代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include <cstdio>
#include <vector>
#include <queue>
#include <cstring>
#include <cmath>
#include <map>
#include <set>
#include <string>
#include <iostream>
#include <algorithm>
#include <iomanip>
#include <stack>
#include <queue>
using namespace std;
#define sd(n) scanf("%d", &n)
#define sdd(n, m) scanf("%d%d", &n, &m)
#define sddd(n, m, k) scanf("%d%d%d", &n, &m, &k)
#define pd(n) printf("%d\n", n)
#define pc(n) printf("%c", n)
#define pdd(n, m) printf("%d %d\n", n, m)
#define pddd(n, m, z) printf("%d %d %d\n", n, m, z)
#define pld(n) printf("%lld\n", n)
#define pldd(n, m) printf("%lld %lld\n", n, m)
#define plddd(n, m, z) printf("%lld %lld %lld\n", n, m, z)
#define sld(n) scanf("%lld", &n)
#define sldd(n, m) scanf("%lld%lld", &n, &m)
#define slddd(n, m, k) scanf("%lld%lld%lld", &n, &m, &k)
#define sf(n) scanf("%lf", &n)
#define sc(n) scanf("%c", &n)
#define sff(n, m) scanf("%lf%lf", &n, &m)
#define sfff(n, m, k) scanf("%lf%lf%lf", &n, &m, &k)
#define ss(str) scanf("%s", str)
#define rep(i, a, n) for (int i = a; i <= n; i++)
#define per(i, a, n) for (int i = a; i >= n; i--)
#define mem(a, n) memset(a, n, sizeof(a))
#define debug(x) cout << #x << ": " << x << endl
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define fi first
#define se second
#define ce i == n ? '\n' : ' '
#define mod(x) ((x) % MOD)
#define gcd(a, b) __gcd(a, b)
#define lowbit(x) (x & -x)
typedef pair<int, int> PII;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
const int MOD = 1e9 + 7;
const double eps = 1e-9;
const ll INF = 0x3f3f3f3f3f3f3f3fll;
const int inf = 0x3f3f3f3f;
inline int read()
{
int ret = 0, sgn = 1;
char ch = getchar();
while (ch < '0' || ch > '9')
{
if (ch == '-')
sgn = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9')
{
ret = ret * 10 + ch - '0';
ch = getchar();
}
return ret * sgn;
}
inline void Out(int a) //ê?3?ía1ò
{
if (a > 9)
Out(a / 10);
putchar(a % 10 + '0');
}

ll gcd(ll a, ll b)
{
return b == 0 ? a : gcd(b, a % b);
}

ll lcm(ll a, ll b)
{
return a * b / gcd(a, b);
}

///快速幂m^k%mod
ll qpow(ll x, ll n, ll mod)
{
ll res = 1;
while (n)
{
if (n & 1)
res = (res * x) % mod;
x = x * x % mod, n >>= 1;
}
return res;
}

C Combination of Physics and Maths

题意:

一个矩阵的底面积定义为最后一行的数的和,重量定义为所有数的和,给一个正整数矩阵,找一个“压强”最大的可非连续子矩阵。

最大压强肯定就是单独的一列最大,枚举每个底面就好了。

AC代码:

const int N = 1e5 + 50;
int n, m;
int a[500][500];

int main()
{
int t;
sd(t);
while (t--)
{
sdd(n, m);
rep(i, 1, n)
{
rep(j, 1, m)
{
sd(a[i][j]);
}
}
double ans = 0;
rep(j, 1, m)
{
ll res = 0;
rep(i, 1, n)
{
res += a[i][j];
ans = max(ans, res * 1.0 / (1.0 * a[i][j]));
}
}
printf("%.8lf\n", ans);
}
return 0;
}

E Easy Construction

题意:

构造一个长度为 2020牛客暑期多校训练营(第六场)_ios 且元素为 2020牛客暑期多校训练营(第六场)_#define_24 序列的序列 2020牛客暑期多校训练营(第六场)_#include_25,并且满足其中有长度为 2020牛客暑期多校训练营(第六场)_#define_26 的连续子区间的和 2020牛客暑期多校训练营(第六场)_#define_27。若无法构造就输出 2020牛客暑期多校训练营(第六场)_ios_28,输出任意一种方案。

2020牛客暑期多校训练营(第六场)_ios 为偶数时,显然所有子区间的和 2020牛客暑期多校训练营(第六场)_#define_27 必须满足的话,意味着 2020牛客暑期多校训练营(第六场)_ios 个元素的和 2020牛客暑期多校训练营(第六场)_#define_27 (即 2020牛客暑期多校训练营(第六场)_#define_33,转换可知 2020牛客暑期多校训练营(第六场)_#define_34 必定为 2020牛客暑期多校训练营(第六场)_#include_35。若满足此条件便可构造 2020牛客暑期多校训练营(第六场)_ios_36,反之连 2020牛客暑期多校训练营(第六场)_#include_37

n为奇数时,知道 2020牛客暑期多校训练营(第六场)_ios 个元素的和 2020牛客暑期多校训练营(第六场)_ios_39,那么 2020牛客暑期多校训练营(第六场)_#define_34 必须为 2020牛客暑期多校训练营(第六场)_#include_08 ,可构造 2020牛客暑期多校训练营(第六场)_#include_42,若 2020牛客暑期多校训练营(第六场)_#define_34 不为 2020牛客暑期多校训练营(第六场)_#include_08

AC代码:

const int N = 5e5 + 50;
int n, k;
vector<int> ans;
int main()
{
sdd(n, k);
if (n & 1)
{
if (k)
{
puts("-1");
}
else
{
ans.pb(n);
rep(i, 1, n)
{
if (i >= n - i)
break;
ans.pb(i);
ans.pb(n - i);
}
}
}
else
{

if (k * 2 != n)
puts("-1");
else
{
ans.pb(n);
ans.pb(k);
rep(i, 1, n)
{
if (i >= n - i)
break;
ans.pb(i);
ans.pb(n - i);
}
}
}
for (auto i : ans)
printf("%d ", i);
printf("\n");
return 0;
}

G Grid Coloring

题意:

AC代码:

J Josephus Transform

题意:

AC代码:

K K-Bag

题意:

AC代码: