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++ ...
随机推荐
- 【uniapp】【外包杯】学习笔记day08 | 初具雏形+后期任务
总的来说就是BBQ了,基本上前后端都有了阶段性成果,但是问题在于是否符合我们题目的要求,所以也需要进行很详细的改动,其次就是小程序的支付功能以及登录功能1还有具体配置还是不太行. 然后下载的sprin ...
- CSS+HTML初学跟踪项目记录笔记【防丢失】(文章发布系统)二【鸽了】
贴上源代码 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEnc ...
- Educational Codeforces Round 56 (Rated for Div. 2) G题(线段树,曼哈顿距离)
题目传送门 以二维为例,二维下两点间的曼哈顿距离最大值为\(max(|x_i-x_j| + |y_i-y_j|)\),可以通过枚举坐标符号正负来去掉绝对值.即\(max(x_i-x_j+y_i-y_j ...
- keil 5 安装教程
一.下载 keil 官网 二.安装教程 1.开始安装 双击安装包,开始安装,直接下一步 2.勾选同意,下一步 3.选择软件安装路径,下一步 4.填写信息 可以随意填写,下一步. 5.等待安装 6.安装 ...
- QT最小化程序到托盘运行
MinTray 说明 实现程序关闭时最小化托盘的功能 托盘实现显示主页面和退出的功能 支持扩展,直接引用TrayIcon类即可,对外暴露接口 单例实现,可复用 警告 注:博主所有资源永久免费,若有帮助 ...
- Android Studio 学习-第三章 Activity 第二组
事先申明:所有android 类型的学习记录全部基于<第一行代码 Android>第三版,在此感谢郭霖老师的书籍帮助. 1.注册activity 在第一组中,我创建了一个activity, ...
- Git提交修正
应用场景 日常开发中我们可能会遇到这样的问题 1.提交了代码有错误 2.提交的信息写错了 3.漏了一些文件没有提交 ...... 再或者我们写一个功能时,中间有很多小的提交,这中间就会产生特别多的co ...
- MD5在文件安全中的应用与重要性
一.MD5简介 MD5(Message-Digest Algorithm 5)是一种广泛应用的密码散列函数,由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)于1992年提出.它主 ...
- 华企盾DSC登录控制台提示查询数据库错误
解决方法:服务器防火墙已经关了,查看控制台日志,如出现下图2问题升级到最新版即可解决,否则需要找研发处理
- 笔记本安装linux
下载 桌面版 Ubuntu 镜像 服务器版 Ubuntu 镜像 使用 Balena Etcher 制作系统安装盘 (1)官方网站下载: 点我下载 (2)下载完毕软件之后,打开软件,选择我们下载好的系统 ...