A - Domino on Windowsill

图片说明

思路:贪心
只要还有位置,多米诺骨牌就能摆上去。

MyCode:

#include <bits/stdc++.h>
using namespace std;
const int maxn=2e5+7,maxm=1e6+7,mod=1e9+7;
typedef long long int ll;
typedef unsigned long long ull;
inline void solve() {
    int n,k1,k2,w,b;
    cin>>n>>k1>>k2>>w>>b;
    if((k1+k2)/2>=w && (2*n-k1-k2)/2>=b) cout<<"YES\n";
    else cout<<"NO\n";
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t;
    cin>>t;
    while(t--) {
        solve();
    }
    return 0;
}

B - Binary Removals

图片说明
题意:删除任意几个不相邻的数,问是否可以保证字符串是升序的

思路:思维
只有当"11"出现在“00”前面的时候做不到

MyCode:

#include <bits/stdc++.h>
using namespace std;
const int maxn=2e5+7,maxm=1e6+7,mod=1e9+7;
typedef long long int ll;
typedef unsigned long long ull;
inline void solve() {
    string s;
    cin>>s;
    int x=s.find("11"),y=s.rfind("00");
    if(x==-1||y==-1||x>y) cout<<"YES\n";
    else cout<<"NO\n";
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t;
    cin>>t;
    while(t--) {
        solve();
    }
    return 0;
}

C - Minimum Grid Path

图片说明
题意:从(0,0)走到(n,n),给定一个n,表示最多转n次方向,形成n-1条线段,输出线段长度与权值乘积之和的最小值。

思路: