码迷,mamicode.com
首页 > 其他好文 > 详细

CF #624 div2

时间:2020-03-02 01:18:29      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:const   i+1   最大值   情况   序列   div   pac   bit   sam   

# A

题意:

两个序列a,b表示一个比赛,分别输入a,b,输入是1 代表这个回合得分,每个位置上的a,b是对应的回合,

二者在某一个回合可能都得分,求能够使a的总和大于b的总和中a的分最大值的可能的最小值

题解:

分别统计a的个数和b的个数以及二者共同的个数分情况求解

 

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int N=1e5+10;
 4 int n;
 5 bool a[N],b[N];
 6 int main(){
 7     cin>>n;
 8     int ans=1;
 9     int suma=0,sumb=0,same=0;
10     for(int i=1;i<=n;i++){
11         int x;
12         cin>>x;
13         a[i]=x;
14         if(x)
15             suma++;
16     }
17     for(int i=1;i<=n;i++){
18         int x;
19         cin>>x;
20         b[i]=x;
21         if(x && a[i]) same++;
22         if(x) sumb++;
23     }
24 
25     if(suma == same && sumb >= same) {
26         ans=-1;
27     }
28     else if(suma>sumb) {
29         ans=1;
30     }
31     else if(suma <= sumb) {
32         int now=suma-same;
33         int need=sumb-same-now;
34 
35         ans+=need/now;
36         ans+=1;
37 
38     }
39     cout<<ans<<endl;
40 }

 

# B

题意:

题解:

# C

题意:

长度小于100的字符串,对于i位置可以删去的条件是 i-1或者 i+1 位置是它的上一个字母(比如a对于b,d对于e)

删去元素后前后两段合并,意味着i-1跟i+1相邻了问最多能删去多少个元素

题解:

从字母z到b开始模拟,保证了每个字母后面没有大的可以删,满足最优

每个字母如果进行了删除操作,需要再遍历一次这个字母,因为删除以后相邻的可能会满足条件。

#include<bits/stdc++.h>
#define N 110
using namespace std;

bool vis[N];

int main(){
    int n;
    string s;
    cin >> n >> s;
    int ans = 0;
    for(int i = 25; i > 0; --i){
        char now = a + i;
        int lastans = ans;
        for(int j = 0; j < n; ++j){
            int pre = j - 1, nex = j + 1;
            while(pre >= 0 && vis[pre]){
                pre--;
            }
            while(nex < n && vis[nex]){
                nex++;
            }
            if(!vis[j] && s[j] == now && ((pre < 0 ? 0 : s[j] - s[pre] == 1) || (nex == n ? 0 : s[j] - s[nex] == 1))){
                ans++;
                vis[j] = true;
            }
        }
        if(ans > lastans){
            i++;
        }
    }
    cout << ans << endl;
    return 0;
}

# D

题意:

题解:

CF #624 div2

标签:const   i+1   最大值   情况   序列   div   pac   bit   sam   

原文地址:https://www.cnblogs.com/hhyx/p/12393069.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!