蓝桥杯15届省C

打印 上一主题 下一主题

主题 990|帖子 990|积分 2970

洛谷P10904挖矿
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int n, m;
  4. const int N = 2000010;
  5. int l[N], r[N];
  6. int cnt;
  7. int main(){
  8.         cin >> n >> m;
  9.         for(int i = 1; i <= n; i++){
  10.                 int x; cin >> x;
  11.                 if(x > 0){
  12.                         r[x]++;
  13.                 }
  14.                 else if(x < 0){
  15.                         l[-x]++;
  16.                 }
  17.                 else cnt = 1;
  18.         }
  19.         for(int i = 1; i < N; i++){
  20.                 l[i] += l[i - 1];
  21.                 r[i] += r[i - 1];
  22.         }
  23.         int ans = 0;
  24.         for(int i = 0; i <= m; i++){
  25.                 int ll = l[i];
  26.                 if(m - 2 * i > 0){
  27.                         ll += r[m - 2 * i];
  28.                 }
  29.                 ans = max(ans, ll);
  30.                 int rr = r[i];
  31.                 if(m - 2 * i > 0){
  32.                         rr += l[m - 2 * i];
  33.                 }
  34.                 ans = max(ans, rr);
  35.         }
  36.         cout << ans + cnt << endl;
  37.        
  38.        
  39.         return 0;
  40. }
复制代码
洛谷P
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int n;
  4. bool check(string a, int cnt1, int cnt2){
  5.         int l = cnt1, r = a.length() - 1 - cnt2;
  6.         while(l < r){
  7.                 if(a[l] != a[r])return false;
  8.                 l++, r--;
  9.         }
  10.         return true;
  11. }
  12. bool check2(string b, string c){
  13.         if(b.size() < c.size())return false;
  14.         for(int i = c.size() - 1, j = b.size() - 1; i >= 0; i--, j--){
  15.                 if(c[i] != b[j])return false;
  16.         }
  17.         return true;
  18. }
  19. int main(){
  20.         ios::sync_with_stdio(false);
  21.         cin.tie(nullptr);
  22.         cin >> n;
  23.         while(n--){
  24.                 string a;
  25.                 cin >> a;
  26.                 int cnt2 = 0, cnt1 = 0;
  27.                 string b = "";
  28.                 while(a[a.length() - 1 - cnt2] == 'l' || a[a.length() - 1 - cnt2] == 'q' || a[a.length() - 1 - cnt2] == 'b'){
  29.                         b += a[a.length() - 1 - cnt2];
  30.                         cnt2++;
  31.                 }
  32.                 string c = "";
  33.                 while(a[cnt1] == 'l' || a[cnt1] == 'q' || a[cnt1] == 'b'){
  34.                         c += a[cnt1];
  35.                         cnt1++;
  36.                 }
  37.                 if(check(a, cnt1, cnt2) && check2(b, c))cout << "Yes" << endl;
  38.                 else cout << "No" << endl;
  39.         }
  40.        
  41.         return 0;
  42. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

民工心事

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表