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条线段,输出线段长度与权值乘积之和的最小值。
思路: