1450A. Avoid Trygub

挺简单的题,题意是避免字符串中有子串“Trygub"

只要给字符串排序就可以了,这样一定不会出现

void solve() {
string s; int n;
cin >> n >> s;
sort(s.begin(), s.end());
cout << s << endl;
}

1450B. Balls of Steel

想太多了,因为数据范围比较小,可以直接暴力比较一下就ok

void solve() {
int n, k;
cin >> n >> k;
int x[n], y[n];
for (int i = 0; i < n; ++i)
cin >> x[i] >> y[i];
bool fl = true;
for (int i = 0; i < n && fl; i++) {
fl = 0;
for (int j = 0; j < n; j++)
if (abs(x[i] - x[j]) + abs(y[i] - y[j]) > k)
fl = 1;
}
cout << (fl ? -1 : 1) << endl;
}

1450C1&C2. Errich-Tac-Toe (Hard Version)

刚开始看的时候有点懵,看了一下洛凌璃dalao的解释明白了。

考虑(i + j) % 3, 记 ++cnt[(i + j) % 3][s[i][j] == 'X']

最后无非选择 i, j(-1<i,j<3, i!=j) 使得 s[i][1] + s[j][0] <= k/3, 即使得每3个相邻的标记中存在两个不同的标记

一定存在这样的 i, j使得 <= k/3, 自己画个表就明白了

int _, n, m, s[2][5];
char a[305][305];
void solve() {
int i, j, k, t;
scanf("%d", &n);
m = 0;
memset(s, 0, sizeof(s));
for (i = 0; i < n; i++) {
scanf("%s", a[i]);
for (j = 0; j < n; j++)
if (a[i][j] != '.')
m++, s[a[i][j] == 'X'][(i + j) % 3]++;
}
for (k = 0; k < 3; k++)
for (t = 0; t < 3; t++)
if (k ^ t && s[1][k] + s[0][t] <= m / 3) {
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
if (a[i][j] != '.')
if ((i + j) % 3 == k)
a[i][j] = 'O';
else if ((i + j) % 3 == t)
a[i][j] = 'X';
m = -3;
}
for (i = 0; i < n; i++)
printf("%s\n", a[i]);
}

1450D. Rating Compression

根据题意模拟一下,各个用户满意情况

const int N = 3e5 + 10;
char s[N];
vector<int> v[N];
void solve() {
int n, a, i, j;
i = 0;
// 把各位数字的出现次数标记
for (cin >> n; i != n; s[i++] = '0', cin >> a, v[a].push_back(i))
;
// 模拟条件
for (a = j = 1; v[a].size() == 1 && (j == v[a][0] || v[a][0] == i);
s[n - a] = '1', i == v[a++][0] ? --i : ++j)
;
for (v[a].empty() ? '0' : s[n - a] = '1'; a <= n && v[a].size() == 1; ++a)
;
// 设置'\0',并且重置v数组
for (s[n] = 0, a == ++n ? s[0] = '1' : '0'; --n; v[n].clear())
;
cout << s << endl;
}

1450E. Capitalism

建图跑个多源floyd最短路就好,

顺便记得判个负环

// Author : RioTian
// Time : 20/12/21
#include <bits/stdc++.h>
using namespace std;
#define all(s) (s.being(), s.end())
#define rep(i, s, n) for (int i = s; i <= n; ++i)
typedef long long ll;
int n, m, g[200][200];
int a[2000], b[2000], c; int main(void) {
memset(g, 0x3f, sizeof(g));
scanf("%d%d", &n, &m);
for (int i = 0; i < m; i++) {
scanf("%d%d%d", &a[i], &b[i], &c);
g[a[i] - 1][b[i] - 1] = 1;
if (c == 1)
g[b[i] - 1][a[i] - 1] = -1;
else
g[b[i] - 1][a[i] - 1] = 1;
}
for (int i = 0; i < n; i++)
g[i][i] = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
for (int k = 0; k < n; k++)
g[j][k] = min(g[j][k], g[j][i] + g[i][k]);
int pos = -1, ans = -1;
for (int i = 0; i < n; i++) {
if (g[i][i] < 0) {
printf("NO\n");
return 0;
}
int mx = -n, mn = n;
for (int j = 0; j < n; j++) {
mx = max(mx, g[i][j]);
mn = min(mn, g[i][j]);
}
for (int j = 0; j < m; j++)
if (g[i][a[j] - 1] == g[i][b[j] - 1])
mx = -n;
if (ans < mx - mn) {
ans = mx - mn;
pos = i;
}
}
if (ans == -1)
printf("NO\n");
else {
printf("YES\n%d\n", ans);
for (int i = 0; i < n; i++)
printf("%d%c", g[pos][i] + n, i == n - 1 ? '\n' : ' ');
}
return 0;
}

F、G、F1&F2没做出来了。等待以后重新补题

Codeforces Global Round 12(个人题解)的更多相关文章

  1. Codeforces Global Round 1 (A-E题解)

    Codeforces Global Round 1 题目链接:https://codeforces.com/contest/1110 A. Parity 题意: 给出{ak},b,k,判断a1*b^( ...

  2. Codeforces Global Round 11 个人题解(B题)

    Codeforces Global Round 11 1427A. Avoiding Zero 题目链接:click here 待补 1427B. Chess Cheater 题目链接:click h ...

  3. Codeforces Global Round 12 D. Rating Compression (思维,双指针)

    题意:给你一长度为\(n\)的数组,有一长度为\(k\ (1\le k \le n)\)的区间不断从左往右扫过这个数组,总共扫\(n\)次,每次扫的区间长度\(k=i\),在扫的过程中,每次取当前区间 ...

  4. Codeforces Global Round 2部分题解

    传送门 好难受啊掉\(rating\)了-- \(A\ Ilya\ and\ a\ Colorful\ Walk\) 找到最后一个与第一个颜色不同的,比一下距离,然后再找到最左边和最右边与第一个颜色不 ...

  5. Codeforces Global Round 2 部分题解

    F.Niyaz and Small Degrees 挺sb的一题,为什么比赛时只过了4个呢 考虑当\(x\)固定的时候怎么做.显然可以树形DP:设\(f_{u,i=0/1}\)表示只考虑\(u\)子树 ...

  6. Codeforces Global Round 2 题解

    Codeforces Global Round 2 题目链接:https://codeforces.com/contest/1119 A. Ilya and a Colorful Walk 题意: 给 ...

  7. CodeForces Global Round 1

    CodeForces Global Round 1 CF新的比赛呢(虽然没啥区别)!这种报名的人多的比赛涨分是真的快.... 所以就写下题解吧. A. Parity 太简单了,随便模拟一下就完了. B ...

  8. Codeforces Global Round 1 - D. Jongmah(动态规划)

    Problem   Codeforces Global Round 1 - D. Jongmah Time Limit: 3000 mSec Problem Description Input Out ...

  9. Codeforces Global Round 1 (CF1110) (未完结,只有 A-F)

    Codeforces Global Round 1 (CF1110) 继续补题.因为看见同学打了这场,而且涨分还不错,所以觉得这套题目可能会比较有意思. 因为下午要开学了,所以恐怕暂时不能把这套题目补 ...

  10. Codeforces Beta Round #12 (Div 2 Only)

    Codeforces Beta Round #12 (Div 2 Only) http://codeforces.com/contest/12 A 水题 #include<bits/stdc++ ...

随机推荐

  1. v-for和指令

    . v-for 起遍历作用. 注意点: 1.遍历的里面第一个值是定义的元素的值,第二个值是值的名称,第三个值为下标 2.:key是v-blind:key的简写,是代码中的唯一标识,一般用id来定义 v ...

  2. spring报错

    C:\Users\dell\.jdks\openjdk-19.0.2\bin\java.exe "-javaagent:E:\idea图片\IntelliJ IDEA 2022.2.3\li ...

  3. AI浪潮下,大模型如何在音视频领域运用与实践?

    视频云大模型算法「方法论」. 刘国栋|演讲者 在AI技术发展如火如荼的当下,大模型的运用与实践在各行各业以千姿百态的形式展开.音视频技术在多场景.多行业的应用中,对于智能化和效果性能的体验优化有较为极 ...

  4. SpringBoot CORS 跨域请求解决方案之配置过滤器

    方式一:@CrossOrigin 方式二: @Configuration public class CorsConfig implements WebMvcConfigurer { @Override ...

  5. c语言指针数组和数组指针

    1 #include<stdio.h> 2 #include<iostream> 3 using namespace std; 4 int main(){ 5 int a[2] ...

  6. 如何实现CesiumJS的视效升级?

    CesiumJS作为一款强大的地理可视化引擎,为我们提供了丰富的地球数据可视化和交互展示的能力.然而,随着用户需求的不断增加和技术的不断进步,如何进一步提升CesiumJS的视觉效果成为了一个重要的问 ...

  7. C#与数据库访问技术之ExecuteNonQuery方法

    ExecuteNonQuery方法主要用来更新数据. 通常使用它来执行Update.Insert和Delete语句. 该方法返回值意义如下: 对于Update.Insert和Delete语句,返回值为 ...

  8. StringBuilder、StringBuffer

    StringBuilder 1.concat() 拼接字符串 2.indexOf() 查找 3.replace() 替换 4.subString(1,2) 截取 0,1,2 1开始 2结束 Strin ...

  9. 『Flutter』开发环境搭建

    1.前言 大家好,我是 BNTang,今天给大家介绍一下 Flutter 的开发环境搭建.在之前我已经将 Dart 的基本语法给大家介绍了,所以今天就不再介绍 Dart 的基本语法了,直接进入 Flu ...

  10. Keepass调用Xshell、SecureCRT、RDP、Putty的方法(一劳永逸版)

    依次点击"工具"--"选项"--"集成"--"网址替代"--"添加"--添加"方案&quo ...