AtCoder Beginner Contest 158【A B C D】

传送门

A - Station and Bus

三个字符,A,B两个都出现输出Yes,否则输出No

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <vector>
#include <math.h>
#include <map>
#include <queue>
#include <set>
#include <stack>
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define per(i,a,b) for(int i=a;i>=b;i--)
typedef long long ll;
using namespace std;
const int MAXN=1e6+50;
const int inf=0x3f3f3f3f;
const int M=5000*4;
char ch[MAXN];
int main()
{
    cin>>(ch+1);
    int f1=0,f2=0;
    for(int i=1;i<=3;i++){
        if(ch[i]=='A')f1++;
        if(ch[i]=='B')f2++;
    }
    if(f1==0||f2==0)cout<<"No"<<endl;
    else cout<<"Yes"<<endl;
    return 0;
}
/*

*/

B - Count Balls

前面的长度应该是a+b的循环,最后看剩余多少,和a相比取最小值即可,看一下代码应该就明白了

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <vector>
#include <math.h>
#include <map>
#include <queue>
#include <set>
#include <stack>
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define per(i,a,b) for(int i=a;i>=b;i--)
typedef long long ll;
using namespace std;
const int MAXN=1e6+50;
const int inf=0x3f3f3f3f;
const int M=5000*4;
char ch[MAXN];
int main()
{
    ll n,a,b;
    cin>>n>>a>>b;
    if(a==0){
        cout<<0<<endl;
        return 0;
    }
    ll p=n/(a+b);
    ll ans=p*a+min((n-p*(a+b)),a);
    cout<<ans<<endl;
    return 0;
}
/*

*/

C - Tax Increase:

a,b的值只有100,所以要求的值最大才10000左右,枚举一下即可,没有一个满足输出-1

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <vector>
#include <math.h>
#include <map>
#include <queue>
#include <set>
#include <stack>
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define per(i,a,b) for(int i=a;i>=b;i--)
typedef long long ll;
using namespace std;
const int MAXN=1e6+50;
const int inf=0x3f3f3f3f;
const int M=5000*4;
char ch[MAXN];
int main()
{
    int a,b;
    cin>>a>>b;
    for(int i=1;i<=20050;i++){
        double aa=i*0.08;
        double bb=i*0.1;
        if((int)aa==a&&(int)bb==b){
            cout<<i<<endl;
            return 0;
        }
    }
    cout<<-1<<endl;
    return 0;
}
/*

*/

D - String Formation

另一篇博客D - String Formation

E - Divisible Substring

明天再补,以前还做过一个类似的

发布了158 篇原创文章 · 获赞 15 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44091178/article/details/104724982