Tue, 19 Mar 2019 21:18:41 GMT

master
大蒟蒻 7 years ago
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…
Cancel
Save