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. uni-app学习笔记——路由与页面跳转

    小颖最近在学习小程序,怕自己前看后忘,毕竟还没开始进入项目实践中,就自己瞎倒腾嘻嘻,今天来看下  uni-app  的路由与页面跳转,小颖就简单列举下它们的用法,具体的大家可以看官网哦!啦啦啦啦啦  ...

  2. Vite4+Typescript+Vue3+Pinia 从零搭建(5) - 路由router

    项目代码同步至码云 weiz-vue3-template Vue Router 是 Vue.js 的官方路由.它与 Vue.js 核心深度集成,让用 Vue.js 构建单页应用变得轻而易举. 1. 安 ...

  3. 月薪3w的报表工程师要会哪些技能?报表工程师的招聘要求解读

    对于月薪3w的报表工程师,通常需要具备以下技能: 1. 数据分析与处理 - 数据仓库:了解数据仓库的设计原则和架构,能够构建和优化数据仓库结构. - SQL语言:熟练掌握SQL查询语言,能够编写复杂的 ...

  4. 分享一个LCD驱动框架

    首先需要说明的是本篇文章不是关于如何点亮一块LCD屏的教程,而是介绍一个LCD开发框架,更准确的说是介绍一个LCD的中间件(Middlwware),用来连接UI和不同类型的LCD屏.笔者本人的工作内容 ...

  5. 文心一言 VS 讯飞星火 VS chatgpt (166)-- 算法导论13.1 6题

    六.用go语言,在一棵黑高为 k 的红黑树中,内部结点最多可能有多少个?最少可能有多少个? 文心一言: 红黑树是一种自平衡的二叉查找树,其中每个节点都有一个颜色属性,可以是红色或黑色.红黑树满足以下性 ...

  6. 从零玩转ShardingSphere分库分表 (概括)-shardingsphere1

    title: 从零玩转ShardingSphere分库分表 (概括) date: 2022-05-25 17:58:25.61 updated: 2022-08-22 22:59:02.624 url ...

  7. Windows和Linux下通过go实现自删除

    自删除在攻防中都挺常见的,自写远控通常也有需要.可是在度娘里搜不到什么办法,于是就查查Windows api学习记录一回. linux 先获得当前程序的文件名,再使用syscall这个包中的Unlin ...

  8. Ubuntu图形界面root登录“sorry, that didn't work please

    https://blog.51cto.com/u_14757092/2484490 ssh登录主机执行下vim /etc/pam.d/gdm-autologin 注释行 "auth requ ...

  9. aspnetcore使用websocket实时更新商品信息

    先演示一下效果,再展示代码逻辑. 中间几次调用过程省略... 暂时只用到了下面四个项目 1.产品展示页面中第一次通过接口去获取数据库的列表数据 /// <summary> /// 获取指定 ...

  10. docker: 'buildx' is not a docker command

    解决方法 sudo apt install docker-buildx-plugin