Codeforces Round #499 (Div. 2) ABC

比赛链接:http://codeforces.com/contest/1011

A. Stages

输入n,k,之后输入长度为n的字符串,要求找到一个字典序最短的长度为k的子串,且若字母为c,则之后不可以添入abcd,a=1,b=2,求最小的ans

#include <bits/stdc++.h>

using namespace std;

int n,k,a[300]={0};
char x;

int main()
{
    cin>>n>>k;
    for(int i=1;i<=n;i++){
        cin>>x;
        a[x-'a'+1]=1;
    }
    int p=0,ans=0;
    for(int i=1;i<=26;i++){
        if(p==k) break;
        if(a[i])
        {
            p++;ans+=i;i++;
        }
    }
    if(p!=k)cout<<-1;
    else cout<<ans;
    return 0;
}

B. Planning The Expedition

有n个人,m袋食物,每个人只能吃相同的食物(不同的人可以吃不同的),问坚持最长的时间是多少

#include <bits/stdc++.h>

using namespace std;

int m,n,x,cnt[105]={0};

int main()
{
    ios::sync_with_stdio(false);
    cin>>m>>n;
    for(int i=1;i<=n;i++){
        cin>>x;
        cnt[x]++;
    }
    int ans;
    for(int i=n;i>0;i--){
            int s=0;
        for(int j=1;j<=100;j++)
            s+=cnt[j]/i;
        if(s>=m){
            ans=i;
            break;
        }
    }
    cout<<ans<<endl;
    return 0;
}

 C. Fly

题意:总共有n个星球,飞船从地球起飞经过n-2个星球(在每个星球上做降落、起飞的动作)到达火星,在火星上同样降落起飞,然后直接返回地球做降落。每个星球起飞所需的燃料质量为ai,降落所需要的燃料质量为bi。飞船本身载重为m,附加燃料质量为所求值。问至少需要多少质量的燃料使得地球能做完整的往返运动,精度为1e-6

拿第一组样例来说

11 8
7 5

欲最小,回到起点时候肯定就耗光了汽油,而最后一个待过的机场是 7 机场,因为2*7=12+2,2吨汽油能让他飞14,恰好是飞机重量+耗油重量,依次回推2*8=14+2,16+4=5*4,20+2=11*2

得 x*(a[i]或者b[i])=s+x  ,s为下一站油和机身的和,x和具体某个机场的耗油量。

说是数学,其实就是证明下就能发现,无论a[i] b[i]用哪个顺序,最后耗油最小量都一样

注意a[i],b[i]<=1时方程无解的细节!!!

#include <bits/stdc++.h>

using namespace std;

int n;
double m;
int a[1050],b[1050];


int main()
{
    ios::sync_with_stdio(false);cin.tie(0);
    cin>>n>>m;
    int flag=1;
    for(int i=1;i<=n;i++) {
            cin>>a[i];
            if(a[i]<=1) flag=0;
    }
    for(int i=1;i<=n;i++) {
            cin>>b[i];
            if(b[i]<=1) flag=0;
    }
    if(flag==0) { puts("-1");return 0;}
    double sum=0,x;
    for(int i=1;i<=n;i++){
        x=m/(a[i]-1),m+=x,sum+=x;
        x=m/(b[i]-1),m+=x,sum+=x;
    }
    printf("%.10f
",sum);
    return 0;
}
原文地址:https://www.cnblogs.com/Fy1999/p/9377490.html