首页 > 其他分享 >Codeforces Round #650 (Div. 3) D

Codeforces Round #650 (Div. 3) D

时间:2022-11-01 14:46:05浏览次数:79  
标签:字符 cnt 10 int Codeforces st 650 Div size

D. Task On The Board

观察样例 我们发现一定会有0的存在
然后呢?
我们发现给出的题意中只是小的字符一定会加上与比它大的字符的距离
数据范围是50 我们知道了最大的字符
我们考虑如何去找第二大的字符 显然第二大的字符只会加上与最大字符的距离
我们直接枚举一维 计算与大字符的贡献 要是相等就加入
这样我们就能维护出每一个字符有多少个 在哪些个位置
我们发现他说了一定有解
所以我们直接匹配就可以了 不用判断无解的情况
没什么细节 就是代码写的很屎

void solve() {
    string s;cin >> s;s = ")" + s;
    int n;cin >> n;
    int cnt = n, q = 1;
    vector<int> a(n + 10), v, st(26), vis(n + 10), z[26];
    for (int i = 1; i < s.size(); i++)st[i - 'a']++;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        if (!a[i]) { v.push_back(i), z[0].push_back(i), cnt--, vis[i] = 1; }
    }
    while (cnt) {
        vector<int> pre;
        for (int i = 1; i <= n; i++) {
            int res = 0;
            for (auto pos: v) {
                if (i == pos)continue;
                res += abs(pos - i);
            }
            if (a[i] == res && !vis[i])pre.push_back(i), z[q].push_back(i), cnt--, vis[i] = 1;
        }
        while (pre.size()) { v.push_back(pre.back()), pre.pop_back(); }
        q++;
    }
    vector<char> ans(n + 10);
    for (int i = 25, j = 0; i >= 0; i--) {
        if (z[j].size() == 0)break;
        if (st[i] && st[i] >= z[j].size()) {
            for (auto k: z[j])ans[k] = i + 'a';
            j++;
        }
    }
    for (int i = 1; i <= n; i++)cout << ans[i];cout << endl;
}

标签:字符,cnt,10,int,Codeforces,st,650,Div,size
From: https://www.cnblogs.com/ycllz/p/16847623.html

相关文章

  • Codeforces Round #667 (Div. 3) E
    E.TwoPlatforms读完题发现好像跟y坐标没关系考虑dpdp[i][0/1/2]表示以第i个点结尾的用了0/1/2个板子的max显然我们对于0我们都是初始化为0对于dp[i][1]我们直接dp[......
  • Divide Points
    传送门Sol1神奇的构造。。思路自然直接:枚举\(Dist\),对所有\(dist(i,j)=Dist\)的点对连接\(i,j\),然后剔除所有度数为\(0\)的点,这样就建立了一张图。然后跑dfs判......
  • Codeforces Round #617 (Div. 3) E1
    E1.StringColoring(easyversion)观察样例我们发现要是最长下降子序列要是>=3那我们显然不可能有解然后我们考虑构造要是最长最长下降子序列只是2的话那显然我们只......
  • HTML如何让IMG自动适应DIV容器大小
    HTML如何让IMG自动适应DIV容器大小为了让IMG自适应大小,如下我做了一个横向自适应的示例:IMG样式(横向拉伸,纵向自动匹配大小)DIV样式(元素居中显示)IMG样式(横向拉伸,纵向自动匹配大......
  • html-span与div
    Div自己独占一行一行上可以有多个span实现网络布局<div>我是一个div标签我一个人占一整行</div>  <span>新浪</span>  <span>百度</span>Div相当于一个独占......
  • Codeforces - 839C - Journey(图论 + 概率 + 搜索、*1500)
    839C-Journey(⇔源地址)目录839C-Journey(⇔源地址)tag题意思路错误思路正解AC代码错误次数:2tag⇔图论、⇔概率、⇔搜索、⇔*1500题意在七......
  • 固定高度的div在屏幕中居中方法
    如何将一个固定高度的div居中在屏幕中间呢?先来看个例子,定义一个div并设置其高度为600px;html代码:<divclass='a'></div>css样式代码:.a{height:600px;background......
  • Algorithm: Lecture 4. Divide-and-Conquer Homework
    author:Miyasakadate:2022-10-31title:"Algorithm:Lecture4.Divide-and-ConquerHomework"*Inthiswork,alltheindexofarraystartsby1.Question:Bin......
  • Codeforces Round #658 (Div. 1) B
    B.Unmerge看完样例发现31243后面跟着的12肯定是和3一组的因为他们不如3大所以他们一定是被直接排出来的就这样我们可以将这个序列分成好多组然后就是金典背包......
  • js/jq 点击按钮显示div,点击页面其他任何地方隐藏div
    1、HTML页面<!DOCTYPEhtml><html><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><title>无标题文档</title><stylet......