Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round)(A-C)

比赛链接:https://codeforces.ml/contest/1321

A:Contest for Robots

题意:

共有n场比赛,A,B两人参赛,0表示本场比赛不得分,1表示得分。给出AB两人的比赛情况,请你制定每场比赛的得分(最低为1分),使得A的最终分数比B多且尽可能使两人分数相差不大,如果可以,输出得分最高的那场比赛,如果无论怎样指定得分A都不会比B多输出-1;

思路:如果某场比赛AB都得分了,那么两人分数一定相同,关键在于两人多得到的分数,所以

用num表示A赢得比赛但B没赢的场数,用sum表示B赢的比赛但A没赢的场数。

如果num = 0 说明 a 没有额外赢得比赛,无论分数怎么指定,B的分数一定大于等于A的分数 输出-1

如果num > sum 说明就算每场比赛都是1分,A的总分也比B高,输出1

但 num < sum 时,为了使得输出尽可能小,就只能让B多赢的比赛为1分,只要a某场比赛得分比 sum/num 大就行(注意不能整除的情况)

#include<iostream>
using namespace std;
int main()
{
	int n,a[1000],b[1000],sum=0,num=0;
	cin>>n;
	for(int i=1;i<=n;i++)
	cin>>a[i];
	for(int i=1;i<=n;i++)
	{
		cin>>b[i];
		if(b[i]>a[i])sum++;
		else if(b[i]<a[i])num++;
	}
	if(num==0)cout<<-1<<endl;
	else
	{
		int ans=sum/num+1;
		cout<<ans<<endl;
	}
	return 0;
}

B:Journey Planning

题意:给定一个下标为1到n 的数组b,请你在1到n中选一个递增数列c使得对应b数组的值的和最大,且满足①c[i+1] - c[i] = b[ c[i+1] ] - b[ c[i] ]

思路:直接把下标为i+1的两项移动到一起,就发现只要是数组中当前的下标和当前下标对应的值的差值相等就行。然后记录下相同差值的分别求和中最大是多少就行。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 2e5+5;
map<ll ,ll > s;
int main()
{

    int n;
    cin>>n;
    ll b[maxn];
    for(int i=1;i<=n;i++)
    {
        cin>>b[i];
    }
    ll ans = 0;
    for(int i=1;i<=n;i++)
    {
       s[b[i]-i]+=b[i];
       ans = max(ans,s[b[i]-i]);
    }
    cout<<ans<<endl;
    return 0;
}

C:Remove Adjacent

题意:给定一串字母,你可以删除某个元素i 规则是,i-1或者i+1的位置上的字母是i字母的上一个字母,删除后原来两段在合并成一段即i-1与i+1相邻了,请输出最多可以删除几个元素

思路:i周围有i上一个字母则可以删,如果从z开始删除则不会影响前面的字母,由于数据范围较小100,直接模拟就行,从字典序列大的开始删除 注意!正向遍历一遍后 在反向遍历一次。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
//typedef pair<ll,ll> PAIR;
const int maxn = 2e5+5;
int vis[30]={0};
int main()
{
    int n;
    cin>>n;
    string s;
    cin>>s;
    for(int i=0;i<s.length();i++)
    {
        vis[s[i]-'a']++;
    }
    int ans = 0;
    for(int j=25;j>=0;j--)
    {
        if(vis[j]==0) continue;
        for(int i=0;i<s.length();i++)
        {
            if(s[i]-'a'==j)
            {
                if((s[i-1]-'a'==j-1&&i-1>=0)||(s[i+1]-'a'==j-1&&i+1<=s.length()))
                {
                    s.erase(i,1);
                    i--;//删除后i+1变为了i,而此时表示的是i+1
                    ans++;
                }

            }
        }
        //反向
        for(int i=s.length()-1;i>=0;i--)
        {
            if(s[i]-'a'==j)
            {
                if((s[i-1]-'a'==j-1&&i-1>=0)||(s[i+1]-'a'==j-1&&i+1<=s.length()))
                {
                    s.erase(i,1);
                    i++;
                    ans++;
                }

            }
        }

    }
    cout<<ans<<endl;
    return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值