原题链接:Best Cow Line

1. 问题描述

2. 输入

6
A
C
D
B
C
B

3. 输出

ABCBCD

4.思路分析

  不断地取原字符串 S 中开头和末尾比较小的字符串放到 T 的末尾

  特殊情况:S 的开头和末尾一样,先放开头的还是结尾的字母。解决办法:将 S 反序排列得到 $S^{'}$ ,与 S 比较,哪个小,就放哪个

5. 代码

#include <iostream>
#include<cstring> using namespace std; int n,i,j;
char s[2002],temp[2002],t[2002]; int main()
{
    cin>>n;
    for(i=0;i<n;i++)
    {
        cin>>s[i];
        temp[n-i-1]=s[i];
    }
    for(i=0;i<n;i++)
    {
        if(strcmp(s,temp)<0)
        {
            t[i]=s[0];
            for(j=0;j<n-i-1;j++)
                s[j]=s[j+1];
        }
        else
        {
            t[i]=temp[0];
            for(j=0;j<n-i-1;j++)
                temp[j]=temp[j+1];
        }
        cout<<t[i];
        if((i+1)%80==0)
            cout<<endl;
    }
  return 0;
}

转化成数字数组处理

#include <iostream>
#include <cstring> using namespace std; int n;
char word[2002],t[2002];
int num[2002],temp[2002],c[2002]; int main()
{
    ios::sync_with_stdio(false);
    int i = 0,j = 0;
    cin>>n;
    for(i = 0; i < n; i++)
    {
        cin>>word[i];
        num[i] = word[i] - '0' - 16;
        temp[n-i-1] = num[i];
    }
    for(i = 0; i < n; i++)
    {
        if(memcmp(num,temp,sizeof(num) <= sizeof(temp) ? sizeof(num)/sizeof(int):sizeof(temp)/sizeof(int)) < 0)
        {
            t[i] = num[0] + 16 + '0';
            for(j = 0;j < n-1-i;j++)
                num[j] = num[j+1];
        }
        else
        {
            t[i] = temp[0] + 16 + '0';
            for(j = 0;j < n-1-i;j++)
                temp[j] = temp[j+1];
        }
        cout<<t[i];
        if((i+1)%80 == 0)
            cout<<endl;
    }
    return 0;
}

贪心算法训练(九)——Best Cow Line(字典序最小问题)的更多相关文章

  1. POJ 3617 Best Cow Line 字典序最小

    #include<cstdio> #include<iostream> #include<algorithm> #include<queue> #inc ...

  2. 贪心算法训练(四)——(HDU1050)Moving Tables

    题目描述 在一个狭窄的走廊里将桌子从一个房间移动到另一个房间,走廊的宽度只能允许一个桌子通过.给出 t,表示有 t 组测试数据,再给出 n,表示要移动 n 个桌子.n 下面有 n 行,每行两个数字,表 ...

  3. POJ 3617:Best Cow Line(贪心,字典序)

    Best Cow Line Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 30684   Accepted: 8185 De ...

  4. POJ 3617 Best Cow Line (字典序最小问题 & 贪心)

    原题链接:http://poj.org/problem?id=3617 问题梗概:给定长度为 的字符串 , 要构造一个长度为 的字符串 .起初, 是一个空串,随后反复进行下列任意操作. 从 的头部删除 ...

  5. poj 3617 Best Cow Line (字符串反转贪心算法)

    Best Cow Line Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9284   Accepted: 2826 Des ...

  6. BZOJ 1640 [Usaco2007 Nov]Best Cow Line 队列变换:贪心【字典序最小】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1640 题意: 给你一个长度为n的字符串. 你可以将原串的首字母或尾字母移动到新串的末尾. ...

  7. POJ 3617 Best Cow Line 贪心算法

    Best Cow Line Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26670   Accepted: 7226 De ...

  8. 编程算法 - 最好牛线(Best Cow Line) 代码(C)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u012515223/article/details/37909933 最好牛线(Best Cow L ...

  9. poj3617 best cow line(贪心题)

    Best Cow Line Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 32687   Accepted: 8660 De ...

随机推荐

  1. Java隐式类型转换和强制类型转换

    一.强制类型转换 char 和 整型之间的类型转换 char a7 = 'a'; System.out.println(a7); System.out.println( (int)a7 ); Syst ...

  2. JavaScript 自己写一个 replaceAll() 函数

    JavaScript 的  replace()  方法可以在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 但是,只输入字符串的话,仅替换第一个字符,当然也可以用正则表达式来进行 ...

  3. 【错误集】类ExcelExport是公共的, 应在名为 ExcelExport.java 的文件中声明

    检查类名是否相同 区分大小写,复制代码的时候会连类名也复制了,哈哈哈,总结一下

  4. 各种GAN的学习和总结

    GAN: https://www.cnblogs.com/kk17/p/10046884.html WGAN: https://www.cnblogs.com/Allen-rg/p/10305125. ...

  5. FreeRTOS计数型信号量

    API函数 //创建 #if( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) #define xSemaphoreCreateCounting( uxMaxCount ...

  6. mysql如何让有数据的表的自增主键重新设置从1开始连续自增

    项目开发中,有些固定数据在数据表中,主键是从1自增的,有时候我们会删除一些数据, 这种情况下,主键就会不连续.如何恢复到像第一次插入数据一样主键从1开始连续增长, 这里我找到一种解决方法: 如上面一张 ...

  7. PHP/Python---百钱百鸡简单实现及优化

    公鸡5块钱一只,母鸡3块钱一只,小鸡一块钱3只,用100块钱买一百只鸡,问公鸡,母鸡,小鸡各要买多少只? 今天看到这题很简单 ,但是随手写出来后发现不是最优的

  8. Android笔记(四十) Android中的数据存储——SQLite(二) insert

    准备工作: 我们模拟一个注册的页面,先看UI 我们需要创建一个数据库:user,数据库包含表user,user表包含字段id.username.password.mobilephone MainAct ...

  9. Kubernetes高级调度- Taint和Toleration、Node Affinity分析

    此文分享了污点和Node Affinity实际使用过程中的细节.坑和思维误区.同时整理且回答了诸多细节问题,尤其那些在官方文档中不曾提及的细节. 阅读提示:文中的节点指Node (避免Pod和Node ...

  10. 个人第5次作业:Alpha2项目的测试

    这个作业属于哪个课程 <课程的链接> 这个作业要求在哪里 <作业要求的链接> 名字 易林 学号 201731062134 团队名称 <巧克力王子和六个小矮人> 第一 ...