HDOJ/HDU 2550 百步穿杨(注意排序)

Problem Description
时维九月,序属三秋,辽军大举进攻MCA山,战场上两军正交锋.辽军统帅是名噪一时的耶律-James,而MCA方则是派出了传统武将中草药123.双方经过协商,约定在十一月八日正午十分进行射箭对攻战.中草药123早早就开始准备,但是他是武将而不是铁匠,造弓箭的活就交给聪明能干的你了,现在告诉你每种弓箭规格,即箭身的长度,以及每种规格弓箭所需要的数目,要求你把需要的弓箭都输出.
弓箭的基本样子为 “>+—+>”,其中”+—+”为箭身,数据保证箭身长度 > 2

Input
首先输入一个t,表示有t组数据,跟着t行:
每行一个N (N < 50 ),接下去有N行,第i行两个整数Ai , Bi,分别代表需要箭身长度为Ai的弓箭Bi枝. (Ai < 30 , Bi < 10 )
输入数据保证每一个Ai都是不同的.

Output
按照箭身的长度从小到大的顺序依次输出所有需要的弓箭,”每一种”弓箭后输出一个空行.

Sample Input
1
4
3 4
4 5
5 6
6 7

Sample Output

>+-+>
>+-+>
>+-+>
>+-+>

>+--+>
>+--+>
>+--+>
>+--+>
>+--+>

>+---+>
>+---+>
>+---+>
>+---+>
>+---+>
>+---+>

>+----+>
>+----+>
>+----+>
>+----+>
>+----+>
>+----+>
>+----+>

水题一个,注意排序和每种弓箭输出空格就好了~~

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

/**
 * @author 陈浩翔
 *
 * 2016-5-17
 */
public class Main{

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int t =sc.nextInt();
        while(t-->0){
            int n =sc.nextInt();
            P2550_2 p[] = new P2550_2[n];
            for(int i=0;i<n;i++){
                p[i] = new P2550_2();
                p[i].a=sc.nextInt();
                p[i].b=sc.nextInt();
            }
            Arrays.sort(p, new Comparator<P2550_2>() {

                @Override
                public int compare(P2550_2 o1, P2550_2 o2) {
                    return o1.a-o2.a;//按照a的大小,从小到大排序
                }
            });
//          for(int i=0;i<n;i++){
//              System.out.println(p[i].a+","+p[i].b);
//          }

            for(int i=0;i<n;i++){//n组
                for(int j=0;j<p[i].b;j++){//每个弓箭有b枝
                    System.out.print(">+");
                    for(int k=0;k<p[i].a-2;k++){
                        System.out.print("-");
                    }
                    System.out.println("+>");
                }
                System.out.println();
            }
        }
    }
}

class P2550_2{
    public int a;
    public int b;
}
时间: 2024-10-25 11:13:03

HDOJ/HDU 2550 百步穿杨(注意排序)的相关文章

HDOJ(HDU) 2109 Fighting for HDU(简单排序比较)

Problem Description 在上一回,我们让你猜测海东集团用地的形状,你猜对了吗?不管结果如何,都没关系,下面我继续向大家讲解海东集团的发展情况: 在最初的两年里,HDU发展非常迅速,综合各种ACM算法生成的老鼠药效果奇好,据说该药专对老鼠有效,如果被人误食了,没有任何副作用,甚至有传闻说还有健胃的效果,不过这倒没有得到临床验证.所以,公司的销量逐年递增,利润也是节节攀升,作为股东之一的公主负责财务,最近半年,她实在辛苦,多次因为点钞票造成双手抽筋而住院,现在在她面前你根本不要提到"

HDOJ/HDU 2555 人人都能参加第30届校田径运动会了(判断加排序~)

Problem Description 杭州师范大学第29届田径运动会圆满的闭幕了,本届运动会是我校规模最大,参赛人数最多的一次运动会.在两天半时间里,由学生.教工组成的61支代表队共2664名运动员参加了比赛.比赛期间,运动健儿赛出了风格.赛出了水平,共有9人次打破6项校纪录. 我们寝室的4名同学是我班最卖力的啦啦队员,每天都在看台上为班级里的运动员们加油助威,为我班获得精神文明奖立下了汗马功劳.可是遗憾的是,与我校的其他近2万名同学一样,我们自己不能上场表演 :( 于是,我们4名同学为下一届

HDOJ/HDU 1029 Ignatius and the Princess IV(简单DP,排序)

此题无法用JavaAC,不相信的可以去HD1029题试下! Problem Description "OK, you are not too bad, em- But you can never pass the next test." feng5166 says. "I will tell you an odd number N, and then N integers. There will be a special integer among them, you hav

HDOJ(HDU) 2523 SORT AGAIN(推导排序、、)

Problem Description 给你N个整数,x1,x2-xn,任取两个整数组合得到|xi-xj|,(0 < i,j<=N,i!=j). 现在请你计算第K大的组合数是哪个(一个组合数为第K大是指有K-1个不同的组合数小于它). Input 输入数据首先包含一个正整数C,表示包含C组测试用例. 每组测试数据的第一行包含两个整数N,K.(1< N<=1000,0< K<=2000) 接下去一行包含N个整数,代表x1,x2..xn.(0<=xi<=2000

HDOJ(HDU) 2115 I Love This Game(排序排序、、、)

Problem Description Do you like playing basketball ? If you are , you may know the NBA Skills Challenge . It is the content of the basketball skills . It include several parts , such as passing , shooting , and so on. After completion of the content

HDOJ(HDU) 1862 EXCEL排序(类对象的快排)

Problem Description Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能. Input 测试输入包含若干测试用例.每个测试用例的第1行包含两个整数 N (<=100000) 和 C,其中 N 是纪录的条数,C 是指定排序的列号.以下有 N 行,每行包含一条学生纪录.每条学生纪录由学号(6位数字,同组测试中没有重复的学号).姓名(不超过8位且不包含空格的字符串).成绩(闭区间[0, 100]内的整数)组成,每个项目间用1个空格隔开.当读到 N=0 时,全部输入结

HDOJ/HDU 2535 Vote(排序、)

Problem Description 美国大选是按各州的投票结果来确定最终的结果的,如果得到超过一半的州的支持就可以当选,而每个州的投票结果又是由该州选民投票产生的,如果某个州超过一半的选民支持希拉里,则她将赢得该州的支持.现在给出每个州的选民人数,请问希拉里至少需要赢得多少选民的支持才能当选? Input 多组输入数据 每组数据的第一行包括一个整数N(1<=N<=101),表示美国的州数,N=0表示输入结束 接下来一行包括N个正整数,分别表示每个州的选民数,每个州的选民数不超过100 Ou

HDOJ(HDU) 2093 考试排名(Arrays.sort排序、类的应用)

Problem Description C++编程考试使用的实时提交系统,具有即时获得成绩排名的特点.它的功能是怎么实现的呢? 我们做好了题目的解答,提交之后,要么"AC",要么错误,不管怎样错法,总是给你记上一笔,表明你曾经有过一次错误提交,因而当你一旦提交该题"AC"后,就要与你算一算帐了,总共该题错误提交了几回.虽然你在题数上,大步地跃上了一个台阶,但是在耗时上要摊上你共花去的时间.特别是,曾经有过的错误提交,每次都要摊上一定的单位时间分.这样一来,你在做出的

HDOJ/HDU 1161 Eddy&amp;#39;s mistakes(大写字母转换成小写字母)

Problem Description Eddy usually writes articles ,but he likes mixing the English letter uses, for example "computer science" is written frequently "coMpUtEr scIeNce" by him, this mistakes lets Eddy's English teacher be extremely disco