P1083龙舟比赛
题目如下:
现在正在举行龙舟比赛,我们现在获得了最后冲刺时的俯视图像,现在你要输出各条龙舟的名次。
这张图像由r行c列的字符组成,每行的最左边的字符表示起点,所以字符为’S’,最右边的字符为’F’。并且确定在9行里有数字字符1..9,来表示每条龙舟的编号,保证包含数字的行里,只包含连续的相同的3个数字。其余地方都是字符’.’。 具体看样例。越靠近右边的龙舟排名越靠前。如果有并列的,那么他们的名次相同。
输入:
10 15
S..........222F
S.....111.....F
S...333.......F
S...555.......F
S.......444...F
S.............F
S......777....F
S..888........F
S........999..F
S...666.......F
输出:
5
1
6
3
6
6
4
7
2
*****************************************************
此题略坑,正在码代码,但代码码到自己都不想看了;
思路如下:
首先读入,然后遇见字符为1-9的就读入他的号码,然后用最右边的号码减去它的号码就是它到终点的距离。然后排序,然后输出
******************************************************
思路简单到不能再简单哪,但是实现很复杂
首先不能用sort排序,因为sort 会改变数组下标,这就很尴尬了,最开始用了两个sort,后来发现不行,会改数组,没办法按序输出;
只能用最原始的排序方法,在数组0处设置一个缓冲区,这个区用来储存后面待排序的量。
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int r,c;
struct boat
{
int num,dis,rank;
}boats[11];
char b[55]={};
void init()
{
cin>>r>>c;
for(int i=1;i<=r;i++)
{
for(int j=1;j<=c;j++)
{
cin>>b[j];
if((b[j]>='1')&&(b[j]<='9'))
{
boats[int(b[j])-48].num=int(b[j])-48;
boats[int(b[j])-48].dis=c-j;
}
}
}
}
void work()
{
for(int i=1;i<9;i++)
for(int j=i+1;j<=9;j++)
if(boats[i].dis>boats[j].dis)
{
boats[0]=boats[i];
boats[i]=boats[j];
boats[j]=boats[0];
}
for(int i=1;i<=9;i++)
{
if (boats[i].dis==boats[i-1].dis)
boats[i].rank=boats[i-1].rank;
else boats[i].rank=boats[i-1].rank+1;
}//paixu.orz
for(int i=1;i<9;i++)
for(int j=i+1;j<=9;j++)
if(boats[i].num>boats[j].num)
{
boats[0]=boats[i];
boats[i]=boats[j];
boats[j]=boats[0];
}//num sort orz
for(int i=1;i<=9;i++)
cout<<boats[i].rank<<endl;
}
int main()
{ cin>>r>>c;
for(int i=1;i<=r;i++)
{
for(int j=1;j<=c;j++)
{
cin>>b[j];
if((b[j]>='1')&&(b[j]<='9'))
{
boats[int(b[j])-48].num=int(b[j])-48;
boats[int(b[j])-48].dis=c-j;
}
}
}
work(); return 0;
}
P1083龙舟比赛的更多相关文章
- BZOJ4891:[TJOI2017]龙舟(Pollard-Rho,exgcd)
Description 加里敦大学有一个龙舟队,龙舟队有n支队伍,每只队伍有m个划手,龙舟比赛是一个集体项目,和每个人的能力息息相关,但由于龙舟讲究配合,所以评价队伍的能力的是一个值c = (b1*b ...
- 图片效果集合(js、jquery或html5)
1.jQuery HTML5 幻灯片使用支持HTML5的浏览器会有特殊效果,即切换图片时颜色的改变文章:http://keleyi.com/a/bjac/b8i3xdui.htm效果:http://k ...
- SpingBoot项目搭建(详细)
SpingBoot (原创:黑小子-余) springboot官网:->点击<- spring官网:->点击<- 一.SpringBoot简介 Spring Boot是由Piv ...
- Livecoding.tv 现正举行iOS及Android App设计比赛
近日,Livecoding.tv, 一个为世界各地的程序员提供在线实时交流的平台,在其网站上发布了一篇通知, 宣布从4月15日至5月15日,会为iOS和Android的开发者举办一场本地移动app设计 ...
- 为什么我如此热爱这样一个比赛(转自vici)
为什么我如此的热爱这样一个比赛呢?因为它总能带给我一个目标,让我去努力实现它.因为可以看到胜利的希望,于是不断的去追逐.虽然其中的过程可能是比较艰辛的. 对于天才选手,作为天生的冠军,大概凭借天赋 ...
- HDU(1285)—确定比赛名次
/*最近都在复习期末了...好久没做题,都快没智商了*/ 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后 ...
- 白话贝叶斯理论及在足球比赛结果预测中的应用和C#实现
离去年“马尔可夫链进行彩票预测”已经一年了,同时我也计划了一个彩票数据框架的搭建,分析和预测的框架,会在今年逐步发表,拟定了一个目录,大家有什么样的意见和和问题,可以看看,留言我会在后面的文章中逐步改 ...
- [BZOJ3139][HNOI2013] 比赛
Description 沫沫非常喜欢看足球赛,但因为沉迷于射箭游戏,错过了最近的一次足球联赛.此次联 赛共N支球队参加,比赛规则如下: (1) 每两支球队之间踢一场比赛. (2) 若平局,两支球队各 ...
- hduoj 1285 确定比赛名次
http://acm.hdu.edu.cn/showproblem.php?pid=1285 确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory ...
随机推荐
- kafka 删除topic
两种方法: 一.修改配置文件server.properties 添加如下配置: delete.topic.enable=true 说明:官方给的文档说明“Enables delete topic. D ...
- 解压.bz2失败
报错: # tar -jxf geos-3.6.2.tar.bz2 tar (child): bzip2:无法 exec: 没有那个文件或目录tar (child): Error is not rec ...
- css 响应式布局
移动端最让人闹心的就是在不同的手机要做错响应式布局适应各种手机,开始自己做这方面走了很多的弯路,响应式布局如果是部件,就按实际的大小单位px等设置,像宽可以按照百分比计算,长的可以百分比.auto 或 ...
- ubuntu下没有ping命令
root@node2:/# apt-get install inetutils-ping
- centos6安装自带php
一.Centos 6安装自带PHP CentOS 默认仓库中包含了php套件,我们可以直接使用yum安装.下面是最小化安装,我们使用php-fpm来解析php. yum install -y php- ...
- JDBC事物的处理
JDBC事物的处理: 概念:事务是指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 数据库开启事务命令: start transaction 开启事务 Rollback ...
- web 浏览器窗口window 与框架 frameset 的关系
如果页面包含框架,则每个框架都拥有自己的window对象,并且保存在frames集合中,可以通过数字索引(从0开始,从左右到右,从上到下)或者框架名称来访问相对应的window对象. 每个window ...
- Oracle OLAP 与 OLTP 介绍
文章出处:http://blog.csdn.net/tianlesoftware/article/details/5794844 感谢原作者的分享. 数据处理大致可以分成两大类:联机事务处理OLTP( ...
- Java基础学习笔记(三)
18.2.1无参无返回值的方法 18.2.1.1定义方法的语法格式 public static void 方法名称(){ 方法体 } 方法调用 类名.方法名称(); 注意:在Java中,同一个类中的方 ...
- Android笔记:OptionsMenu
使用菜单选项OptionsMenu,需要进行以下操作:(1)重写onCreateOptionsMenu方法: public boolean onCreateOptionsMenu(Menu menu) ...