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 ...
随机推荐
- 2017面向对象程序设计(Java)第2周学习指导及要求(2017.8.28-2017.9.3)
学习目标 继续适应老师教学方式的变化,能按照翻转课堂教学要求完成课前知识学习: 掌握Java Application程序结构: 掌握Java的数据类型与变量: 学会使用运算符构造各类表达式: 掌握输入 ...
- webstocket 聊天
/** * 初始化socket **/ function initSocket(index_host){//端口号 if( !window.WebSocket ){ console.log(" ...
- editplus设置自动换行方法 editplus自动换行设置步骤
原文链接:https://www.jb51.net/softjc/165897.html 发布时间:2014-05-14 17:03:54 作者:佚名 我要评论 editplus自动换行设置 ...
- create-react-app之Invalid Host Header
[create-react-app之Invalid Host Header] 1.When you enable the `proxy` option, you opt into a more str ...
- metasploit framework(九):SMB服务扫描
SMB版本扫描 扫描命名管道,判断SMB服务类型 SMB共享枚举 SMB用户枚举 SID枚举
- zabbix监测公网IP的客户端主机
未经测试 如果server端是内网的主机,需要注意:防火墙.端口映射 再用zabbix服务器去Telnet客户机的10050端口,然后在客户机中查看10050被什么ip访问了,拿到这个ip之后,加到之 ...
- c++中的类(class)-----笔记(类模板)
1,一个模板类至少具有一个类参数,类参数是个符号以表示将要被某个确定数据类型代替的类型. #include<iostream> #include<string> using n ...
- poj1984(带权并查集)
题目链接:http://poj.org/problem?id=1984 题意:给定n个farm,m条边连接farm,k组询问,询问根据前t3条边求t1到t2的曼哈顿距离,若不可求则输出-1. 思路:类 ...
- WAS 忘记密码
一.重置密码 1.首先关闭was,ps –ef|grep java 查看java进程号,然后kill -9 XXXX杀掉进程即可.或者使用命令./stopServer.sh server1 2.取消控 ...
- c# 记录内容到txt文件
string a= content;//采样结果 if (!File.Exists("e:\\newfile\\newtxt.txt")) { new FileStream(&qu ...