zoukankan      html  css  js  c++  java
  • [HIHO1052]基因工程(找规律)

    题目链接:http://hihocoder.com/problemset/problem/1052

    题意:中文题面,就是修改其中几个字符,使得[0,k-1]和[n-k,n-1]的字符相同。

    会发现一个问题就是,每n-k个字符都是相同的。

    所以每次找n-k个字符,统计不同字符个数,把它们统一替换成出现次数最多的那个。

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 
     4 const int maxn = 1010;
     5 int n, k;
     6 char s[maxn];
     7 int asc[257];
     8 
     9 int main() {
    10     // freopen("in", "r", stdin);
    11     int T;
    12     scanf("%d", &T);
    13     while(T--) {
    14         scanf("%s", s);
    15         scanf("%d", &k);
    16         n = strlen(s);
    17         int ret = 0;
    18         int p = n - k;
    19         for(int i = 0; i < p; i++) {
    20             memset(asc, 0, sizeof(asc));
    21             for(int j = i; j < n; j+=p) asc[s[j]]++;
    22             int tmp = 0;
    23             for(int j = 0; j < 256; j++) {
    24                 tmp = max(tmp, asc[j]);
    25                 ret += asc[j];
    26             }
    27             ret -= tmp;
    28         }
    29         printf("%d
    ", ret);
    30     }
    31     return 0;
    32 }
  • 相关阅读:
    Prim+堆优化
    Tarjan缩点+建新图
    CF482A
    CF545C
    CF570B
    Python 入门2 list介绍
    Python 入门1 上传代码
    黑客与画家 第十三章
    黑客与画家 第十一章
    黑客与画家 第五章
  • 原文地址:https://www.cnblogs.com/kirai/p/6197667.html
Copyright © 2011-2022 走看看