POJ 3617 Best Cow Line 贪心算法

【题解】POJ 3617 Best Cow Line(贪心) POJ 3617 Best Cow Line 原题 https://vjudge.net/problem/POJ-3617 FJ准备带他的N(1≤N≤2000)头奶牛参加一年一度的“年度农民”比赛。在这场比赛中,每个农民把他的奶牛排成一排,并把它们赶过裁判。 比赛的组织者今年采用了一种新的登记方案:只要按照每头奶牛出现的顺序登记它们的首字母即可。,如果FJ按此顺序接收贝西、西尔维娅和朵拉,他... 阅读详情

题目链接:Best Cow Line

贪心策略是:一直从S字串两侧寻找小的字符,特殊情况是:如果两侧字符一样,向内侧比较并获取答案。(不过感觉这步做了很多无用功,尤其是回文串的情况)

代码如下: View on Github

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <vector>
using namespace std;

vector<char> S;

bool operator < (vector<char>& a,vector<char>& b)
{
    int maxsize=a.size()>b.size()?a.size():b.size();
    for(int i=0;i<maxsize;i++)
    {
        if(a.at(i)>b.at(i))
        {
            return false;
        }
        else if(a.at(i)<b.at(i))
        {
            return true;
        }
    }
    return a.size()<b.size();
}

bool operator > (vector<char>& a,vector<char>& b)
{
    int maxsize=a.size()>b.size()?a.size():b.size();
    for(int i=0;i<maxsize;i++)
    {
        if(a.at(i)>b.at(i))
        {
            return true;
        }
        else if(a.at(i)<b.at(i))
        {
            return false;
        }
    }
    return a.size()>b.size();
}

bool operator == (vector<char>& a,vector<char>& b)
{
    if(a.size()!=b.size())
    {
        return false;
    }
    int maxsize=a.size();
    for(int i=0;i<maxsize;i++)
    {
        if(a.at(i)!=b.at(i))
        {
            return false;
        }
    }
    return true;
}

/*
int main()
{
    int n;
    scanf("%d%*c",&n);
    for(int i=0;i<n;i++)
    {
        char c;
        scanf("%c%*c",&c);
        S.push_back(c);
    }
    for(int i=0;i<n;i++)
    {
        if(S.at(0)<S.at(S.size()-1))
        {
            printf("%c",S.at(0));
            S.erase(S.begin());
        }
        else
        {
            printf("%c",S.at(S.size()-1));
            S.erase(S.end()-1);
        }
    }
    return 0;
}
*/

char XS[2048];
int L,R;

int main()
{
    int n;
    scanf("%d%*c",&n);
    L=0;
    R=n-1;
    for(int i=0;i<n;i++)
    {
        scanf("%c%*c",&XS[i]);
    }
    int cnt=0;
    for(int i=0;i<n;i++)
    {
        if(XS[L]<XS[R])
        {
            printf("%c",XS[L]);
            L++;
        }
        else if(XS[L]>XS[R])
        {
            printf("%c",XS[R]);
            R--;
        }
        else
        {
            /// XS[L] == XS[R]
            bool check=false;
            for(int i=1;i<R-L;i++)
            {
                if(XS[L+i]<XS[R-i])
                {
                    check=true;
                    printf("%c",XS[L]);
                    L++;
                    break;
                }
                else if(XS[L+i]>XS[R-i])
                {
                    check=true;
                    printf("%c",XS[R]);
                    R--;
                    break;
                }
            }
            if(!check)
            {
                printf("%c",XS[L]);
                L++;
            }
        }
        cnt++;
        if(cnt==80)
        {
            printf("\n");
            cnt=0;
        }
    }
    printf("\n");
    return 0;
}

我在GitHub上建立了一个仓库,用于存放已经AC的题目的源代码。如果各位有未收录的题目或者有更好的解法,欢迎fork仓库+PR~ 让我们共同创建一个AC代码集中仓库,造福ACM Beginner ~

仓库地址: OJ-Problems-Source On GitHub


芯片详解——AD7606 AD7606详解 阅读详情

相关推荐

S7-200SMART系列全套接线说明

SMART200接线方法,输入,输出,模拟量,面板,扩展糟等,并且详细说明接线原理。

文都龙哥 1万+

POJ3623:Best Cow Line, Gold(后缀数组)

Description FJ is about to take his N (1 ≤ N ≤ 30,000) cows to the annual"Farmer of the Year" competition. In this contest every farmer arranges his cows in a line and herds them past the judges.

ACM!荣耀之路! 1858

STM32F103xx / STM32F429VET6最小系统原理图

心血来潮想试一下STM32F4系列和F1系列在编程上有什么差别,手头没有开发板,本着能勤俭节约的原则自己先做一块看看能不能成,看了一下STM32F429VET6的芯片在F429xx中最便宜,对照着数据手册绘制了原理图画了PCB,目前打板中,焊接完如果跑不通回来修改文章。这里我们可以看到,VDD是标准工作电压,VDDA是模拟工作电压,且VDDA必须与VDD等电位,VBAT是备份工作电压,一般接纽扣电池电源,如果存在VREF+引脚,则要求VDDA-VREF+ < 1.2V。截图下来比较糊,不知道为什么。

m0_51294753的博客 1万+

POJ 3617 Best Cow Line

http://poj.org/problem?id=3617 思路:不断取S开头和结尾中较小的字符放到T末尾 但当S开头和结尾字符相等时,我们希望尽早的使用后面更小的字符,所以就要比较下一个字符的大小 按照字典序比较S和将S反转后的字符串S’ 如果S较小,就从S开头取出字符 如果S’较小,就从S结尾取出字符 另外注意输出的字符串按80字符换行 #include&lt;iostrea...

ZD.99 187

ANSYS APDL生死单元实战:焊接模拟从入门到精通(附完整命令流)

本文详细介绍了使用ANSYS APDL进行焊接模拟的核心技术——生死单元法。通过一个完整的平板对接焊案例,从原理剖析、模型搭建、命令流编写到移动热源施加和后处理,手把手指导工程师掌握这一动态仿真方法,有效预测焊接过程中的温度场、残余应力与变形。

k6l7m8n9的博客 153

华为服务器BMC方式安装系统-官方文档解读

华为服务器BMC方式安装系统 安装完成之后我们有两种方式去安装系统, > 一、服务器连接显示屏、键盘、鼠标和启动盘去启动服务器安装系统(弊端:需要制作单独启动盘并且需要硬件资源) > 二、使用BMC方式安装系统,也就是说使用网线连接我们的笔记本和服务器的BMC口或者mgt口去进行安装。

王明的博客 4579

POJ3617 Best Cow Line 贪心

这题虽然简单但是挺不错的,因为过程很好,比较开发思维 和鼓励人,不像有些贪心太偏不好推反而让人厌烦 给出长度为N的字符串S,然后还有一个空串STR,每次有两个选择 1:删除S的头元素假加入STR中      2:删除S的尾元素加入STR中 是的STR字典序最小 并输出 开始可能没有什么顾虑的去想 每次比较S的头和尾元素 取小的那个删除并假如STR中,但是若S的头和尾元素一样的话这个方

shaonianguai 854

微信小程序 - 最新详细实现跳转打开第三方网站方法流程及示例代码,在小程序内直接打开H5页面或微信公众号文章后台业务域名配置及下载校验文件上传服务器,嵌入外部网站跳转第三方h5网页(详细配置及代码)

微信小程序,打开第三方网站,放校验文件,怎么配置业务域名,后台配置,怎么打开外部没有关联的网站,小程序直接打开公众号文章,指定页面,跳转第三方url,跳转到外部网站,小程序跳转到任意外部网页,网站链接,跳转到其他网页(外部链接),小程序嵌入外部h5链接,校验文件怎么放到对方服务器上,要跳转到网站没权限放过去,校验文件验证域名,把校验文件放到对面网站,别人的服务器也打不开没权限怎么放呢,勾选不校验合法域名,txt,打不开别人的网页怎么办,真机调试打不开,无法跳转,有什么其他办法不放校验文件吗,别人不可能同意,

🏆 前端领域优质创作者 1万+

贪心算法 poj3617 Best Cow Line

题目链接:http://poj.org/problem?id=3617 大概的中文意思: 比较好的一种思路,令输入的序列为s1,s1的反转的序列为s2; 按照字符串的比较来比较s1和s2的大小,若s1!=s2 则取小的那一个的首字母加入到T序列 若s1 == s2 则默认取s1的首字母加入到T序列。取谁的首字母,谁就往后移动一步。 ...

tobe_numberone的博客 355

YOLOv11改进 | Conv/卷积篇 | 利用Hype-YOLO提出MANet增强YOLOv11特征提取能力

本文给大家带来的最新改进机制是由Hype-YOLO提出的MANet结构,其是一种C3、C2f、C3k2的升级版,用于增强特征提取能力。MANet可以理解为C2f的升级版,其整合了DSConv和C2f结构,这些模块的组合使得信息流动更加丰富,有助于在训练过程中提高梯度流动,从而增加基础特征的语义深度。官方发布的数据中HypeYOLO的精度是高于YOLOv11的,本文内容包含MAnet替换C3k2的教程以及原理介绍。欢迎大家订阅我的专栏一起学习YOLO,购买专栏读者联系读者入群获取进阶项目文件!

Snu77的博客 2163

SAP ABAP 接口管理服务(ZIF)开源项目介绍

接口管理服务(ZIF)开源项目基于 SAP ABAP系统,是一款对标SAP PI/PO 的轻量接口管理产品。他通过独立开发包部署在ABAP系统中,包含接口注册、接口管理、日志服务及其他配套功能,拥有丰富的技术沉淀并通过市场检验,目前已被多家企业应用在SAP ERP系统中。

SAP李斌,本人承诺所有原创文章均不使用任何AI生成技术,请大家放心阅读。 1742

简单贪心算法——字典序最小问题(Best Cow Line POJ3617)

题目连接 http://poj.org/problem?id=3617 Best Cow Line POJ3617 题目描述 FJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual"Farmer of the Year" competition. In this contest every farmer arranges h...

Uitachi1的博客 666

第28节:cesium 加载高程数据(含源码+视频)

cesium 加载高程(地形)数据

qq_29384639的博客 1741

贪心算法--POJ-3617-(Best Cow Line)字典序最小问题

贪心算法–POJ-3617-(Best Cow Line)字典序最小问题. 题目描述: // 题目描述+题解分析: 我踏马提交第五遍,终于AC了 import java.util.Scanner; import java.util.Scanner; public class Main430 { public static void main(String[] args) { ...

Xiong-er 的博客 718

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

《贪心算法》字典序尽可能小的字符串 Best Cow Line POJ(3617)

贪心算法 Q:给定长度为N字符串,反复进行下列任意操作 从S字符串头部删除一个字符添加到T的尾部 从S字符串尾部删除一个字符添加到T的尾部 A: 比较头和尾的字符,注意利用begin和end+i,通过改变i来实现 #include<iostream> using namespace std; #define max 2000 int main() { char s[max + 1]; int n; cin >> n; cin >> s; i...

m0_51952128的博客 165

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

POJ-3617-Best Cow Line(贪心算法+Java)

Best Cow Line Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11700   Accepted: 3430 Description FJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual

保持对编程的热情! 888

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

best first 算法 java_POJ-3617-Best Cow Line(贪心算法+Java)

Best Cow LineTime Limit:1000MSMemory Limit:65536KTotal Submissions:11700Accepted:3430DescriptionFJ is about to take hisN(1 ≤N≤ 2,000) cows to the annual"Farmer of the Year" competition. In thi...

weixin_34474759的博客 247

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

Best Cow Line Time Limit:1000MS Memory Limit:65536K Total Submissions:9284 Accepted:2826 Description FJ is about to take hisN(1 ≤N≤ 2,000) cows to the annual"...

weixin_34356555的博客 72

POJ3617 Best Cow Line

题目链接:POJ3617 Best Cow Line Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 46695 Accepted: 11881 Description FJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual"Farmer of the Yea...

cutlery1137的博客 264

poj 3617 Best Cow Line 贪心

poj 3617 Best Cow Line 题目链接: http://poj.org/problem?id=3617 思路: 贪心 第一个字母和最后一个字母比较字典序,果如大小相同,左边指针++,右边指针--,继续比较 最后注意输出格式:每80个字母换一次行 代码: #include <iostream> #include <stdio.h> using n...

ddqb3235的博客 263

POJ 3617——Best Cow Line(贪心)

链接:http://poj.org/problem?id=3617 题解 #include<iostream> using namespace std; const int MAX_N=2e3+50; int N; //输入字符串的字符个数 int count; //记录字符个数,满足换行要求 char S[MAX_N]; //存放字符串的数组 void solve(...

享受孤独 329

POJ 3617——Best Cow Line

链接:http://poj.org/problem?id=3617 题解 #include<iostream> using namespace std; const int MAX_N=2e3+50; int N; //输入字符串的字符个数 int count; //记录字符个数,满足换行要求 char S[MAX_N]; //存放字符串的数组...

SmallProgramer3121的博客 262
上一篇: POJ 3069 Saruman's Army 贪心算法
下一篇: [20160414] LOL 20级 / 多人在线MC / WarTime-Project项目进行中
Kiritow
博客等级 码龄11年 84粉丝 180原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值