Codeforces Global Round 12(个人题解)
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(个人题解)的更多相关文章
- Codeforces Global Round 1 (A-E题解)
Codeforces Global Round 1 题目链接:https://codeforces.com/contest/1110 A. Parity 题意: 给出{ak},b,k,判断a1*b^( ...
- Codeforces Global Round 11 个人题解(B题)
Codeforces Global Round 11 1427A. Avoiding Zero 题目链接:click here 待补 1427B. Chess Cheater 题目链接:click h ...
- Codeforces Global Round 12 D. Rating Compression (思维,双指针)
题意:给你一长度为\(n\)的数组,有一长度为\(k\ (1\le k \le n)\)的区间不断从左往右扫过这个数组,总共扫\(n\)次,每次扫的区间长度\(k=i\),在扫的过程中,每次取当前区间 ...
- Codeforces Global Round 2部分题解
传送门 好难受啊掉\(rating\)了-- \(A\ Ilya\ and\ a\ Colorful\ Walk\) 找到最后一个与第一个颜色不同的,比一下距离,然后再找到最左边和最右边与第一个颜色不 ...
- Codeforces Global Round 2 部分题解
F.Niyaz and Small Degrees 挺sb的一题,为什么比赛时只过了4个呢 考虑当\(x\)固定的时候怎么做.显然可以树形DP:设\(f_{u,i=0/1}\)表示只考虑\(u\)子树 ...
- Codeforces Global Round 2 题解
Codeforces Global Round 2 题目链接:https://codeforces.com/contest/1119 A. Ilya and a Colorful Walk 题意: 给 ...
- CodeForces Global Round 1
CodeForces Global Round 1 CF新的比赛呢(虽然没啥区别)!这种报名的人多的比赛涨分是真的快.... 所以就写下题解吧. A. Parity 太简单了,随便模拟一下就完了. B ...
- Codeforces Global Round 1 - D. Jongmah(动态规划)
Problem Codeforces Global Round 1 - D. Jongmah Time Limit: 3000 mSec Problem Description Input Out ...
- Codeforces Global Round 1 (CF1110) (未完结,只有 A-F)
Codeforces Global Round 1 (CF1110) 继续补题.因为看见同学打了这场,而且涨分还不错,所以觉得这套题目可能会比较有意思. 因为下午要开学了,所以恐怕暂时不能把这套题目补 ...
- Codeforces Beta Round #12 (Div 2 Only)
Codeforces Beta Round #12 (Div 2 Only) http://codeforces.com/contest/12 A 水题 #include<bits/stdc++ ...
随机推荐
- v-for和指令
. v-for 起遍历作用. 注意点: 1.遍历的里面第一个值是定义的元素的值,第二个值是值的名称,第三个值为下标 2.:key是v-blind:key的简写,是代码中的唯一标识,一般用id来定义 v ...
- spring报错
C:\Users\dell\.jdks\openjdk-19.0.2\bin\java.exe "-javaagent:E:\idea图片\IntelliJ IDEA 2022.2.3\li ...
- AI浪潮下,大模型如何在音视频领域运用与实践?
视频云大模型算法「方法论」. 刘国栋|演讲者 在AI技术发展如火如荼的当下,大模型的运用与实践在各行各业以千姿百态的形式展开.音视频技术在多场景.多行业的应用中,对于智能化和效果性能的体验优化有较为极 ...
- SpringBoot CORS 跨域请求解决方案之配置过滤器
方式一:@CrossOrigin 方式二: @Configuration public class CorsConfig implements WebMvcConfigurer { @Override ...
- c语言指针数组和数组指针
1 #include<stdio.h> 2 #include<iostream> 3 using namespace std; 4 int main(){ 5 int a[2] ...
- 如何实现CesiumJS的视效升级?
CesiumJS作为一款强大的地理可视化引擎,为我们提供了丰富的地球数据可视化和交互展示的能力.然而,随着用户需求的不断增加和技术的不断进步,如何进一步提升CesiumJS的视觉效果成为了一个重要的问 ...
- C#与数据库访问技术之ExecuteNonQuery方法
ExecuteNonQuery方法主要用来更新数据. 通常使用它来执行Update.Insert和Delete语句. 该方法返回值意义如下: 对于Update.Insert和Delete语句,返回值为 ...
- StringBuilder、StringBuffer
StringBuilder 1.concat() 拼接字符串 2.indexOf() 查找 3.replace() 替换 4.subString(1,2) 截取 0,1,2 1开始 2结束 Strin ...
- 『Flutter』开发环境搭建
1.前言 大家好,我是 BNTang,今天给大家介绍一下 Flutter 的开发环境搭建.在之前我已经将 Dart 的基本语法给大家介绍了,所以今天就不再介绍 Dart 的基本语法了,直接进入 Flu ...
- Keepass调用Xshell、SecureCRT、RDP、Putty的方法(一劳永逸版)
依次点击"工具"--"选项"--"集成"--"网址替代"--"添加"--添加"方案&quo ...