• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

Educational Codeforces Round 113 (Rated for Div. 2)

开发技术 开发技术 1天前 10次浏览

A. Balanced Substring

思路:

任何非空平衡字符串都包含至少一个字母“a”和至少一个字母“b”。这意味着在那个字符串的某个地方有一个”旁边”b。两个字符串“ab”和“ba”是平衡的。因此,任何平衡字符串都包含长度的平衡子串22.因此,解决方案是检查所有n-1对相邻字母对。如果存在一对不同的,打印它。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>

using namespace std;

const int N = 50010;

typedef pair<int, int>PII;
typedef long long LL;

int main()
{
    int T;
    cin >> T;
    while (T--)
    {
        int n;
        cin >> n;
        string s;
        cin >> s;
        bool flag = false;
        for (int i = 0; i < n - 1; i++)
            if (s[i] != s[i + 1])
            {
                cout << i + 1 << ' ' << i + 2 << endl;
                flag = true;
                break;
            }

        if (!flag) cout << -1 << ' ' << -1 << endl;
            
    }
    return 0;
}

B. Chess Tournament

思路:

首先对于要求1的人
我们让他全部平局,因为这样不会造成一个人赢一个人输的情况
如果赢了一个要求为1的人,那样就不满足了
所以,我们让要求1的人全部平局

对于要求2的人
我们让他赢一个人,显然他不能赢要求为1的人,只能赢要求为2的人了
那么我们找出所有要求为2的人
让他们互相赢

所以当要求为2人数小于等于2时,NO
大于2时,互相赢就好(一个环)

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>

using namespace std;

typedef pair<int, int>PII;
typedef long long LL;

int main()
{
    int T;
    cin >> T;
    while (T--)
    {
        int n;
        cin >> n;
        string s;
        cin >> s;
        vector<int>id;
        for (int i = 0; i < n; i++)
            if (s[i] == '2')
                id.push_back(i);
        
        int k = id.size();
        if (k == 1 || k == 2)
        {
            cout << "NO" << endl;
            continue;
        }

        vector<string> res(n, string(n, '='));//把res容量设为n,其中所有的元素都是'='
        for (int i = 0; i < n; i++) res[i][i] = 'X';//对角线都是X
        for (int i = 0; i < k; i++)
        {
            int x = id[i], y = id[(i + 1) % k];
            res[x][y] = '+';
            res[y][x] = '-';
        }

        cout << "YES" << endl;
        for (int i = 0; i < n; i++) cout << res[i] << endl;
    }
    return 0;
}

先这样吧。。。最近脑子真是不好使了。。。。


程序员灯塔
转载请注明原文链接:Educational Codeforces Round 113 (Rated for Div. 2)
喜欢 (0)