2019 Multi-University Training Contest 9

1005 Rikka with Game

签到题

#include
#define rep(i,a,b) for(int i=a;i<=(b);++i)
#define mem(a,x) memset(a,x,sizeof(a))
#define pb push_back
using namespace std;
typedef long long ll;
ll gcd(ll a,ll b) { return b?gcd(b,a%b):a;}
const int N=1e3+10;
char s[N];
int main()
{
    int _;
    cin>>_;
    while(_--)
    {
        cin>>s+1;
        int len=strlen(s+1);
        for(int i=1;i<=len;++i)
        {
            if(s[i]=='y') continue;
            else{
                if(s[i]=='z') s[i]='b';
                break;
            }
        }
        printf("%s\n",s+1);
    }
}

1002 Rikka with Cake

题解单独写了:

https://blog.csdn.net/qq_41286356/article/details/99768491

1006 Rikka with Coin

贪心。枚举10的个数20的个数,50的个数。10和20的个数不超过5,50的个数不超过2.用最大的w[i]值/100就是100 的个数。

因为可能会存在两个50相加等于100,那么对于100的个数就枚举mx/100和mx/00-1就可以了,将枚举的这些数去check一下是否合法就可以了。

 

#include 

using namespace std;

int w[105];
int n;
int vis[205];
int pre;

int f(int x,int y,int z,int num){
    if(num%10)  return 0;

    for(int j=0;j<=x;j++){
        for(int k=0;k<=y;k++){
            for(int v=0;v<=z;v++){
                int now = j*10 + k*20 + v*50;
                if(num==now){
                    return 1;
                }
            }
        }
    }
    return 0;
}

int check(int x,int y,int z,int tt){

    for(int i=0;i>t;
    while(t--){
        cin>>n;
        int maxv = 0;
        int num4=0;
        for(int i=0;i

 

你可能感兴趣的:(2019杭电多校题解)