关于521_ny_975(贪心算法).java

关于521

时间限制:1000 ms  |  内存限制:65535 KB
难度:2
描述

Acm队的流年对数学的研究不是很透彻,但是固执的他还是想一头扎进去。

浏览网页的流年忽然看到了网上有人用玫瑰花瓣拼成了521三个数字,顿时觉得好浪漫,因为每个男生都会不经意的成为浪漫的制造者。此后,流年走到哪里都能看到521三个数字,他怒了,现在他想知道在连续的数中有多少数全部包含了这三个数字。例如12356就算一个,而5111就不算。特别的,如果他看到了521三个数连续出现,会特别的愤怒。例如35210

输入
多组测试数据:
一行给定两个数a,b(0<a,b<1000000),表示数字的开始和结束。
输出
一行显示他想要知道的数有几个及显示有多少个数字令他特别的愤怒。用空格隔开。
样例输入
200 500
300 900
1 600
样例输出
Case 1:2 0
Case 2:2 1
Case 3:6 1
来源
流年
上传者
ACM_安鹏程

 

763191 张燚 关于521 Accepted 473 10540 java 03-15 11:10:51

 

import java.util.Scanner;
public class Main{
	public static void main(String[] args){
		Scanner input=new Scanner(System.in);
		int num[]=new int[1000005];
		int num1[]=new int[1000005];
		for(int i=125;i<1000005;i++){
			int c=panduan(i+"");
			if(c==1){
				num[i]=num[i-1]+1;
				num1[i]=num1[i-1];
			}
			else if(c==2){
				num[i]=num[i-1]+1;
				num1[i]=num1[i-1]+1;
			}else{
				num[i]=num[i-1];
				num1[i]=num1[i-1];
			}
		}
		int e=1;
		while(input.hasNext()){
			int a=input.nextInt();
			int b=input.nextInt();
			if(a<2)
				a=2;
			if(b<125)
				b=3;
			System.out.println("Case "+(e++)+":"+(num[b]-num[a-1])+" "+(num1[b]-num1[a-1]));
		}
	}

	private static int panduan(String s) {
		if(s.indexOf("521")!=-1)
			return 2;
		if(s.indexOf("1")!=-1&&s.indexOf("2")!=-1&&s.indexOf("5")!=-1){
			return 1;
		}
		return 0;
	}
}


 

关于521_ny_975(贪心算法).java,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。