• 2019.7.10


    2019.7.10

    cf #571 div2 C

    字符串a中与b相等长度的子串中,有多少个与b有偶数个不同的字符。(字符串只含01)

    思路:cnta, cntb表示字符串的和,因为a对b只有(00)(11)(01)(10)四种情况,所以如果要存在偶数个不同,(cnta+cntb)% 2 == 0满足;

    #include <cstdio>
    #include <cstring>
    
    char a[1000010], b[1000010];
    int cnta[1000010];
    int main() {
        while(~scanf("%s %s", a, b)) {
            int n = strlen(a), m = strlen(b);
            cnta[0] = a[0] - '0';
            int cntb = 0;
            for(int i = 0; i < m; i++) {
                if(b[i] == '1') cntb++;
            }
            for(int i = 1; i < n; i++) {
                if(a[i] == '1') cnta[i] = cnta[i-1] + 1;
                else cnta[i] = cnta[i-1];
            }
            int cnt = 0;
            if((cnta[m-1] + cntb) % 2 == 0) cnt++;
            for(int i = m; i < n; i++) {
                if((cntb + cnta[i] - cnta[i-m]) % 2 == 0) cnt++;
            }
            printf("%d
    ", cnt);
        }
        return 0;
    }
    
    

    cf 1152A

    有n个箱子和m把钥匙,箱子的数字和钥匙的数字相加是奇数就可以打开箱子,问最多有多少个箱子可以打开,钥匙只能用一次。

    #include <cstdio>
    #include <algorithm>
    using namespace std;
    int main() {
        int n, m;
        while(~scanf("%d %d", &n, &m)) {
            int ll = 0, rr = 0, l = 0, r = 0, a;
            for(int i = 0; i < n; i++) {
                scanf("%d", &a);
                if(a % 2) l++;
                else r++;
            }
            for(int i = 0; i < m; i++) {
                scanf("%d", &a);
                if(a % 2) ll++;
                else rr++;
            }
            int ans = min(l, rr) + min(r, ll);
            printf("%d
    ", ans);
        }
        return 0;
    }
    
    

    今天没写多少题是因为今天集训打了一场cf,晚上和队友看了一个多校的比赛,太自闭了。

    还有些题目忘记记录了,就算啦

  • 相关阅读:
    sql执行的顺序
    $(obj).index(this) 与 $(this).index()的区别
    java取得百分比
    取得input的特殊值
    清除select的边框和三角形
    在jsp页面中获取列表长度
    mysql mybatis 批量更新和新增
    oracle mybatis 批量更新和新增
    jstl if else 判断
    判断radio,select,checkbox是否选中的方法
  • 原文地址:https://www.cnblogs.com/fanshhh/p/11172227.html
Copyright © 2020-2023  润新知