NBUT 1576 炒鸡想减肥的字符串

借鉴了  nenu_xlp 
的思想;

先把‘a’到‘a’+m-1的字符找到,在将其中的序号最大的减去最小的,在不断更新每个字母对应的序号,重复之前的步骤比较的出最小的结果。。

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
using namespace std;
int t[27];
char s[1005];
int q[27];
int b,c;
int show(int w)
{
    int s=0;
    for(int i=1;i<=w;i++)
    {
        if(q[i]==0)
            return 1;
    }
    return 0;
}

int main()
{
    int a,e,f,w,y;
    scanf("%d",&a);
    while(a--)
    {
        int len1=1005;
        memset(t,0,sizeof(t));
        memset(q,-1,sizeof(q));
        scanf("%d %d",&b,&c);
        int w=1,ans;
        scanf("%s",s);
        if(c>26||c<=0||b<c)
            {printf("I am so fat!\n");continue;}
        for(int i=0;i<b;i++)
        {
            int min1=1005,max1=-1;
            int p=0;
            e=s[i]-'a'+1;
            q[e]=i;
            for(int j=1;j<=c;j++)
            {
                if(q[j]!=-1)
                   p++;
            }
            if(p!=c)
                continue;
            else
            {
                for(int j=1;j<=c;j++)
                {
                    if(min1>q[j])
                        min1=q[j];
                    if(max1<q[j])
                        max1=q[j];
                }
            }
            ans=max1-min1+1;
            if(len1>ans)
               len1=ans;
        }
        if(len1==1005)
            printf("I am so fat!\n");
        else
            printf("%d\n",len1);
    }
    return 0;
}

NBUT 1576 炒鸡想减肥的字符串

时间: 2024-10-10 11:40:15

NBUT 1576 炒鸡想减肥的字符串的相关文章

java去除重复的字符串和移除不想要的字符串

在java开发中碰到了有些字符串是重复的,如果在进行业务处理要全部遍历太对的数据就会重复,所以在进行业务处理前进行一个去重操作. 这里由于业务需要所以先将字符串转化为string数组,使用split分割,然后将string数组一个个放到list里(list的remove可以将你不要的字符串删除掉,代参数的哦) 可以看到我使用的是list,在list里包含了一个contains函数,表示当前字符串是否与list里的元素有相同没有就add进list里 在最后还将list里的元素转化为string数组

java去除反复的字符串和移除不想要的字符串

在java开发中碰到了有些字符串是反复的,假设在进行业务处理要所有遍历太对的数据就会反复,所以在进行业务处理前进行一个去重操作. 这里因为业务须要所以先将字符串转化为string数组,使用split切割.然后将string数组一个个放到list里(list的remove能够将你不要的字符串删除掉.代參数的哦) 能够看到我使用的是list,在list里包括了一个contains函数,表示当前字符串是否与list里的元素有同样没有就add进list里 在最后还将list里的元素转化为string数组

不可错过的炒鸡棒的js迷你库

小而美被实践是最好用的,这里收藏了一些很好用的js库,他们都功能单一且非常小. COOKIE.JS  https://github.com/js-coder/cookie.js 如果你操作过cookie的接口,那么你一定会感觉这东西的规范真的是太复杂了,根本记不住啊,其实你是对的,因为cookie的接口设计的是有问题的,也就是说设计的太底层了,根本不友好,那么来试试这个js库吧. STORE.JS  https://github.com/marcuswestin/store.js 再来说说浏览器

java正则表达式匹配文本中想要的字符串

需求:获取一个本地文件中所有符合 $[MAKE_PACKAGE] 格式的字符串,并输出到另一个文件中. public static void main(String[] args) throws Exception { loadVar("src/cn/don9/templates/Action.txt","src/cn/don9/templateVar/SysActionVar.txt"); } public static void loadVar(String i

妈了个蛋,写了个炒鸡垃圾的脚本,也是醉了

功能:实现工程名/src/main/resources/online和  工程名/src/main/resources/performance下的配置文件的比较(后者比前者缺失哪些配置文件,后者比前者缺失哪些配置项) 代码: #!/bin/bash # by wuboxiao rm -rf checkConfig.diff checkConfig.error checkConfig.result linenum.txt checkConfig.res files=`find $1/src/mai

让我想输出的字符串 从两端向中间汇聚

#include<stdio.h> #include<windows.h> int main() { char ch[] = "          "; char a[] = "1234567890"; int i = 0, j = 9; while (i <= j) { ch[i] = a[i]; ch[j] = a[j]; printf("%s\n", ch); Sleep(2000); i++; j--; }

啊啊啊啊啊啊啊今天就写,炒鸡简单 数据库Sqlite的创建,库的增删改查

啦啦啦啦啦啦啦 写这个不用多长时间,我直接写代码注释都是些语句,Sql语句和Api来操作数据库 ,语句的参数我会注释 SQLite数据库创建数据库需要使用的api:SQLiteOpenHelper必须定义一个构造方法: //arg1:数据库文件的名字 //arg2:游标工厂 //arg3:数据库版本 public MyOpenHelper(Context context, String name, CursorFactory factory, int version){ }//数据库被创建时会调

PAT:1075. PAT Judge (25) 炒鸡复杂

#include<stdio.h>#include<string.h>#include<algorithm>using namespace std; struct Student{ int ID; int score[6]; int perfect; int sum; int rank;}S[10066]; int p[6]; //1-5存题号1-5小题的分值 bool cmp(Student a,Student b){ if(a.sum!=b.sum) return

乌班图 之 Ubuntu 16.04 LTS连接无线上网炒鸡慢问题!!!

用VMware装了Ubuntu 16.04 LTS后连接无线上网,发现出奇的慢. 果断感觉有问题,立马找度娘,果然有问题!!! 网上查找亲测有效的方法为: 在终端运行:sudo gedit /etc/modprobe.d/iwlwifi.conf 在打开的这个配置文件中空白处添加:options iwlwifi 11n_disable=1 保存文件并重启.(本人已成功) 后来搜了下 "无线网卡11n",找到如下说明: 802.11是无线网络连接的标准,就是我们通常所说的WIFI.使用比