zoukankan      html  css  js  c++  java
  • Java实现第七届蓝桥杯国赛 赢球票

    标题:赢球票

    某机构举办球票大奖赛。获奖选手有机会赢得若干张球票。

    主持人拿出 N 张卡片(上面写着 1~N 的数字),打乱顺序,排成一个圆圈。
    你可以从任意一张卡片开始顺时针数数: 1,2,3…
    如果数到的数字刚好和卡片上的数字相同,则把该卡片收入囊中,从下一个卡片重新数数。
    直到再无法收获任何卡片,游戏结束。囊中卡片数字的和就是赢得球票的张数。

    比如:
    卡片排列是:1 2 3
    我们从1号卡开始数,就把1号卡拿走。再从2号卡开始,但数的数字无法与卡片对上,
    很快数字越来越大,不可能再拿走卡片了。因此这次我们只赢得了1张球票。

    还不算太坏!如果我们开始就傻傻地从2或3号卡片数起,那就一张卡片都拿不到了。

    如果运气好,卡片排列是 2 1 3
    那我们可以顺利拿到所有的卡片!

    本题的目标就是:已知顺时针卡片序列。
    随便你从哪里开始数,求最多能赢多少张球票(就是收入囊中的卡片数字之和)

    输入数据:
    第一行一个整数N(N<100),表示卡片数目
    第二行 N 个整数,表示顺时针排列的卡片

    输出数据:
    一行,一个整数,表示最好情况下能赢得多少张球票

    比如:
    用户输入:
    3
    1 2 3

    程序应该输出:
    1

    比如:
    用户输入:
    3
    2 1 3

    程序应该输出:
    6

    思路:枚举出所有情况。

    import java.util.Scanner;
    
    
    public class yingqiupiao {
    	public static int n;
    	public static int max = 0;
    	public static int[] num;
    	public static void f() {
    		for (int i = 0; i < n; i++) {//从第i个卡片开始  
    			int[] temp = new int[n];//临时数组
    			for (int k = 0; k < n; k++)
    				temp[k] = num[k];
    			int sum = 0;//每次数到卡片的和
    			int count = 1;//从第一张开始数
    			int start = i;//第i张卡片
    			while (true) {
    				boolean judge = false;
    				for (int k = 0; k < n; k++)
    					if (temp[k] >= count) {//判断大于count的,否者就直接跳出
    						judge = true;
    						break;
    					}
    				if (!judge)//如果不为真就直接跳出
    					break;
    				int j = start % n;
    				if (temp[j] == count) {
    					sum = sum + count;//每次数到卡片的和加起来
    					temp[j] = -1;//读到过了  
    					count = 1;//重新从1开始读  
    				} else if (temp[j] != -1)
    					count++;
    				start++;
    			}
    			max = Math.max(max, sum);//每次比出最大的值
    		}
    		System.out.println(max);
    	}
     
    	public static void main(String[] args) {
    		Scanner in = new Scanner(System.in);
    		n = in.nextInt();
    		num = new int[n];
    		for (int i = 0; i < n; i++)
    			num[i] = in.nextInt();
    		f();
    	}
    
    	
    
    }
    
    
  • 相关阅读:
    Angular Universal 学习笔记
    SAP Spartacus 如何获得当前渲染页面的 CMS 元数据
    Angular 服务器端渲染的学习笔记(二)
    Angular 服务器端渲染的学习笔记(一)
    第三方外部 Saas提供商如何跟使用 SAP 系统的客户进行对接接口集成
    如何从 SAP Spartacus Product Detail 页面,找到其 Angular 实现 Component 的位置
    具备自动刷新功能的 SAP ABAP ALV 报表
    C++学习目录
    c--条件编译
    c--文件读写--二进制
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13079481.html
Copyright © 2011-2022 走看看