Tue, 19 Mar 2019 21:18:41 GMT
parent
64a29eb2b4
commit
b7f1aa97d6
@ -0,0 +1,14 @@
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
long long n, m, k, l, ans = -1;
|
||||
scanf("%lld%lld%lld%lld", &n, &m, &k, &l);
|
||||
if (m <= n && k + l <= n) {
|
||||
ans = (l + k + m - 1) / m;
|
||||
if (ans * m > n) ans = -1;
|
||||
}
|
||||
printf("%lld", ans);
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
const int N = 2e5 + 50;
|
||||
int pos[N], l, r;
|
||||
|
||||
int main() {
|
||||
int Q, id;
|
||||
char op[3];
|
||||
scanf("%d", &Q);
|
||||
for (int q = 0; q < Q; q++) {
|
||||
scanf("%s%d", op, &id);
|
||||
if (q == 0)
|
||||
pos[id] = 0;
|
||||
else
|
||||
switch (*op) {
|
||||
case 'L':
|
||||
pos[id] = --l;
|
||||
break;
|
||||
case 'R':
|
||||
pos[id] = ++r;
|
||||
break;
|
||||
case '?':
|
||||
printf("%d\n", min(abs(pos[id] - l), abs(pos[id] - r)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
int n, cur;
|
||||
scanf("%d", &n);
|
||||
for (cur = 1; n > 3; n >>= 1, cur <<= 1)
|
||||
for (int i = 0; i < (n + 1) >> 1; i++)
|
||||
printf("%d ", cur);
|
||||
if (n == 1)
|
||||
printf("%d\n", cur);
|
||||
if (n == 2)
|
||||
printf("%d %d\n", cur, cur * 2);
|
||||
if (n == 3)
|
||||
printf("%d %d %d\n", cur, cur, cur * 3);
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
int a[110];
|
||||
|
||||
int main() {
|
||||
int n;
|
||||
cin >> n;
|
||||
map<int, int> M;
|
||||
for (int i = 0; i < n; i++) scanf("%d", a + i);
|
||||
for (int i = 0; i < n; i++) M[a[i]]++;
|
||||
int cur = 1;
|
||||
set<int> s[2];
|
||||
for (auto const &x:M)
|
||||
if (x.second == 1)
|
||||
s[cur ^= 1].insert(x.first);
|
||||
string ans(n, 'A');
|
||||
if (s[0].size() == s[1].size()) {
|
||||
for (int i = 0; i < n; ++i)
|
||||
if (s[1].count(a[i]))
|
||||
ans[i] = 'B';
|
||||
cout << "YES" << endl << ans;
|
||||
} else {
|
||||
for (int i = 0; i < n; ++i)
|
||||
if (s[1].count(a[i]))
|
||||
ans[i] = 'B';
|
||||
if (auto idx = find_if(M.begin(), M.end(), [](const auto &x) { return x.second >= 3; });idx == M.end())
|
||||
cout << "NO";
|
||||
else {
|
||||
for (int i = 0; i < n; i++)
|
||||
if (a[i] == idx->first) {
|
||||
ans[i] = 'B';
|
||||
break;
|
||||
}
|
||||
cout << "YES" << endl << ans;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,5 @@
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
add_executable(1 1.cpp)
|
||||
add_executable(2 2.cpp)
|
||||
add_executable(3 3.cpp)
|
||||
add_executable(4 4.cpp)
|
||||
@ -0,0 +1,16 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
if(MSVC)
|
||||
add_compile_options("/Zc:__cplusplus")
|
||||
endif()
|
||||
add_executable(P1 P1.cpp)
|
||||
add_executable(P2 P2.cpp)
|
||||
add_executable(P3 P3.cpp)
|
||||
add_executable(P4 P4.cpp)
|
||||
add_executable(P5 P5.cpp)
|
||||
add_executable(P6 P6.cpp)
|
||||
add_executable(P7 P7.cpp)
|
||||
add_executable(P8 P8.cpp)
|
||||
add_executable(P9 P9.cpp)
|
||||
add_executable(P10 P10.cpp)
|
||||
add_executable(P11 P11.cpp)
|
||||
@ -0,0 +1,51 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
const int N = 200100;
|
||||
int adj[N], nxt[N], to[N], len[N], ecnt;
|
||||
int dis[N][2];
|
||||
|
||||
struct node {
|
||||
int p, w;
|
||||
|
||||
bool operator<(const node &rhs) const { return w > rhs.w; }
|
||||
};
|
||||
|
||||
inline void addEdge(int f, int t, int l) {
|
||||
ecnt++;
|
||||
nxt[ecnt] = adj[f];
|
||||
adj[f] = ecnt;
|
||||
to[ecnt] = t;
|
||||
len[ecnt] = l;
|
||||
}
|
||||
|
||||
int main() {
|
||||
int T, n, m;
|
||||
scanf("%d", &T);
|
||||
while (T--) {
|
||||
memset(dis, 0x3f, sizeof(dis));
|
||||
scanf("%d%d", &n, &m);
|
||||
for (int i = 0, u, v, w; i < m; i++)
|
||||
scanf("%d%d%d", &u, &v, &w), addEdge(u, v, w), addEdge(v, u, w);
|
||||
priority_queue<node> H;
|
||||
dis[1][0] = 0;
|
||||
H.push({1, 0});
|
||||
while (!H.empty()) {
|
||||
auto x = H.top();
|
||||
H.pop();
|
||||
for (int e = adj[x.p]; e; e = nxt[e]) {
|
||||
if (dis[to[e]][0] >= dis[x.p][0] + len[e]) {
|
||||
dis[to[e]][1] = dis[to[e]][0];
|
||||
dis[to[e]][0] = dis[x.p][0] + len[e];
|
||||
H.push({to[e], dis[to[e]][0]});
|
||||
} else if (dis[to[e]][1] >= dis[x.p][0] + len[e])
|
||||
dis[to[e]][1] = dis[x.p][0] + len[e];
|
||||
}
|
||||
}
|
||||
printf("%d\n", dis[n][1]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
int main()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
int main()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
multiset<int> S;
|
||||
int n, m;
|
||||
while (~scanf("%d", &m)) {
|
||||
n = sqrt(8 * m + 1) / 2;
|
||||
S.clear();
|
||||
for (int i = 0, x; i < m; i++) scanf("%d", &x), S.insert(x);
|
||||
vector<int> ans(n);
|
||||
for (int i = 0; i < n; i++) {
|
||||
ans[i] = *S.begin();
|
||||
for (int j = 0; j < i; j++)
|
||||
S.erase(S.find(ans[j] + ans[i]));
|
||||
S.erase(S.find(ans[i]));
|
||||
}
|
||||
printf("%d\n", n);
|
||||
for (int i = 0; i < ans.size(); i++)
|
||||
printf("%d%c", ans[i], " \n"[i == ans.size() - 1]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
int main()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
const int N = 1e5 + 10;
|
||||
int adj[N], nxt[N], to[N], ecnt, dis[1005][1005];
|
||||
|
||||
inline void addEdge(int f, int t) {
|
||||
ecnt++;
|
||||
nxt[ecnt] = adj[f];
|
||||
adj[f] = ecnt;
|
||||
to[ecnt] = t;
|
||||
}
|
||||
|
||||
void dfs(int s, int *vis) {
|
||||
vis[s] = 1;
|
||||
for (int e = adj[s]; e; e = nxt[e])
|
||||
if (!vis[to[e]])
|
||||
dfs(to[e], vis);
|
||||
}
|
||||
|
||||
int main() {
|
||||
int T, n, m;
|
||||
scanf("%d", &T);
|
||||
while (T--) {
|
||||
ecnt = 0;
|
||||
memset(adj, 0, sizeof(adj));
|
||||
memset(dis, 0, sizeof(dis));
|
||||
scanf("%d%d", &n, &m);
|
||||
for (int i = 0, u, v; i < m; i++)
|
||||
scanf("%d%d", &u, &v), addEdge(u, v);
|
||||
for (int i = 1; i <= n; i++)
|
||||
dfs(i, dis[i]);
|
||||
bool flag = true;
|
||||
for (int i = 1; i <= n && flag; i++)
|
||||
for (int j = 1; j < i && flag; j++)
|
||||
if ((dis[i][j] || dis[j][i]) == false)
|
||||
flag = false;
|
||||
puts(flag ? "I love you my love and our love save us!" : "Light my fire!");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,19 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
const int N = 5050;
|
||||
char str1[N], str2[N], str3[N << 1];
|
||||
|
||||
int main() {
|
||||
int T;
|
||||
scanf("%d", &T);
|
||||
while (T--) {
|
||||
scanf("%s%s", str1, str2);
|
||||
*regex_replace(str3, str2, str2 + strlen(str2), regex("\\.\\*"), "(.)\\1*") = 0;
|
||||
puts(regex_match(str1, regex(str3)) ? "yes" : "no");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
int main()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
int main()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
int main()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
const int N = 100100;
|
||||
int a[N];
|
||||
|
||||
int main() {
|
||||
int n, k, ans = 0;
|
||||
scanf("%d%d", &n, &k);
|
||||
for (int i = 0; i < n; i++) scanf("%d", a + i);
|
||||
for (int i = 0; i < n - k; i++)
|
||||
ans = max(ans, a[i] + a[2 * (n - k) - i - 1]);
|
||||
for (int i = 0; i < n; i++)
|
||||
ans = max(ans, a[i]);
|
||||
printf("%d", ans);
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
const int N = 100100;
|
||||
char s[N];
|
||||
|
||||
int main() {
|
||||
int n, cnt = 0;
|
||||
scanf("%d%s", &n, s);
|
||||
for (int i = 0, p = 0; i < n; i++)
|
||||
if (p != s[i])
|
||||
p = s[i], cnt++;
|
||||
printf("%d", min(n, cnt + 2));
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
add_executable(A A.cpp)
|
||||
add_executable(B B.cpp)
|
||||
@ -0,0 +1,23 @@
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
ios::sync_with_stdio(false);
|
||||
int n, pr = -1, cnt = 0;
|
||||
cin >> n;
|
||||
vector<int> v;
|
||||
for (int i = 0; i < n; i++) {
|
||||
int x;
|
||||
cin >> x;
|
||||
if (i == 0) pr = x;
|
||||
if (pr == x) cnt++;
|
||||
else v.push_back(cnt), cnt = 1, pr = x;
|
||||
}
|
||||
v.push_back(cnt);
|
||||
int ans = 0;
|
||||
for (int i = 1; i < v.size(); i++)
|
||||
ans = max(ans, min(v[i - 1], v[i]) * 2);
|
||||
cout << ans;
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
const int N = 1010;
|
||||
int a[N][N], a2[N];
|
||||
struct {
|
||||
int lr, gr, lc, gc;
|
||||
} b[N][N];
|
||||
|
||||
int main() {
|
||||
int n, m;
|
||||
scanf("%d%d", &n, &m);
|
||||
for (int i = 0; i < n; i++)
|
||||
for (int j = 0; j < m; j++)
|
||||
scanf("%d", &a[i][j]);
|
||||
for (int i = 0; i < n; i++) {
|
||||
for (int j = 0; j < m; j++) a2[j] = a[i][j];
|
||||
sort(a2, a2 + m);
|
||||
auto ed = unique(a2, a2 + m);
|
||||
for (int j = 0; j < m; j++) {
|
||||
b[i][j].lr = lower_bound(a2, ed, a[i][j]) - a2;
|
||||
b[i][j].gr = ed - upper_bound(a2, ed, a[i][j]);
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < m; i++) {
|
||||
for (int j = 0; j < n; j++) a2[j] = a[j][i];
|
||||
sort(a2, a2 + n);
|
||||
auto ed = unique(a2, a2 + n);
|
||||
for (int j = 0; j < n; j++) {
|
||||
b[j][i].lc = lower_bound(a2, ed, a[j][i]) - a2;
|
||||
b[j][i].gc = ed - upper_bound(a2, ed, a[j][i]);
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < n; i++, putchar('\n'))
|
||||
for (int j = 0; j < m; j++, putchar(' '))
|
||||
printf("%d", max(b[i][j].lr, b[i][j].lc) + max(b[i][j].gr, b[i][j].gc) + 1);
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
add_executable(A A.cpp)
|
||||
add_executable(C C.cpp)
|
||||
@ -1,8 +1,51 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
int main()
|
||||
{
|
||||
int num[105];
|
||||
vector<int> ac[105];
|
||||
|
||||
int dfs(int x) {
|
||||
for (int i = ac[x].size() - 1; i >= 0; i--)
|
||||
if (num[ac[x][i]]) {
|
||||
num[ac[x][i]]--;
|
||||
int res = dfs(ac[x][i]);
|
||||
num[ac[x][i]]++;
|
||||
if (res == -1) return 1;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int main() {
|
||||
for (;;) {
|
||||
int x;
|
||||
scanf("%d", &x);
|
||||
num[x]++;
|
||||
if (getchar() == '\n') break;
|
||||
}
|
||||
vector<int> can;
|
||||
for (;;) {
|
||||
int x;
|
||||
if (scanf("%d", &x) == -1)break;
|
||||
can.push_back(x);
|
||||
if (getchar() == '\n') break;
|
||||
}
|
||||
sort(can.begin(), can.end());
|
||||
for (int i = 1; i <= 100; i++)
|
||||
if (num[i]) {
|
||||
num[i]--;
|
||||
for (int j = 1; j <= 100; j++)
|
||||
if (num[j] && (i % j == 0 || j % i == 0))
|
||||
ac[i].push_back(j);
|
||||
num[i]++;
|
||||
}
|
||||
for (int i = 0; i < can.size(); i++) {
|
||||
num[can[i]]--;
|
||||
if (dfs(can[i]) == -1)return printf("%d", can[i]), 0;
|
||||
num[can[i]]++;
|
||||
}
|
||||
puts("-1");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1,8 +1,60 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
|
||||
#include <bits/stdc++.h>
|
||||
|
||||
using namespace std;
|
||||
int main()
|
||||
{
|
||||
const int N = 1000500;
|
||||
namespace Solution {
|
||||
const int N = 100005;
|
||||
|
||||
struct Node {
|
||||
int x, cnt;
|
||||
} a[N], b[N];
|
||||
|
||||
void merge(int st, int ed) {
|
||||
int md = (st + ed) >> 1;
|
||||
int i = st, j = md + 1, cnt = st;
|
||||
while (i <= md && j <= ed)
|
||||
if (a[i].x > a[j].x) {
|
||||
a[j].cnt += md + 1 - i;
|
||||
b[cnt++] = a[j++];
|
||||
} else {
|
||||
a[i].cnt += j - 1 - md;
|
||||
b[cnt++] = a[i++];
|
||||
}
|
||||
while (j <= ed)b[cnt++] = a[j++];
|
||||
while (i <= md) {
|
||||
a[i].cnt += ed - md;
|
||||
b[cnt++] = a[i++];
|
||||
}
|
||||
for (i = st; i <= ed; i++)a[i] = b[i];
|
||||
}
|
||||
|
||||
void merge_sort(int st, int ed) {
|
||||
if (st == ed) return;
|
||||
int md = (st + ed) >> 1;
|
||||
merge_sort(st, md);
|
||||
merge_sort(md + 1, ed);
|
||||
merge(st, ed);
|
||||
}
|
||||
|
||||
|
||||
void solve() {
|
||||
memset(a, 0, sizeof(a));
|
||||
int n;
|
||||
scanf("%d", &n);
|
||||
for (int i = 0; i < n; i++)
|
||||
scanf("%d", &a[i].x);
|
||||
long long ans = 0;
|
||||
merge_sort(0, n - 1);
|
||||
for (int i = 0; i < n; i++)
|
||||
ans += (a[i].cnt + 1) * a[i].cnt / 2;
|
||||
printf("%lld", ans);
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
Solution::solve();
|
||||
return 0;
|
||||
}
|
||||
|
||||
Loading…
Reference in new issue