`
qingtangpaomian
  • 浏览: 37524 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

USACO - 1.1.4 - Broken Necklace

阅读更多

转载请注明出处

 

摘要:模拟, 环的处理

 


一. 题目翻译

1. 描述:
          你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的。 这里是 n=29 的二个例子:
         第一和第二个珠子在图片中已经被作记号。图片 A 中的项链可以用下面的字符串表示:brbrrrbbbrrrrrbrrbbrbbbbrrrrb 
         假如你要在一些点打破项链,展开成一条直线,然后从一端开始收集同颜色的珠子直到你遇到一个不同的颜色珠子,在另一端做同样的事(颜色可能与在这之前收集的不同)。 确定应该在哪里打破项链来收集到最大数目的珠子。
  例如,在图片 A 中的项链中,在珠子 9 和珠子 10 或珠子 24 和珠子 25 之间打断项链可以收集到8个珠子。
       在一些项链中还包括白色的珠子(如图片B) 所示。当收集珠子的时候,一个被遇到的白色珠子可以被当做红色也可以被当做蓝色。
       表现含有白珠项链的字符串将会包括三个符号 r , b 和 w 。写一个程序来确定从一条被给出的项链可以收集到的珠子最大数目。 
2. 格式:

          PROGRAM NAME:beads

          INPUT FORMAT:

          第 1 行: N, 珠子的数目

          第 2 行: 一串长度为N的字符串, 每个字符是 r , b 或 w。

          OUTPUT FORMAT:

          单独的一行包含从被供应的项

3. SAMPLE:
          SAMPLE INPUT:
29 
wwwbbrwrbrbrrbrbrwrwwrbwrwrrb
          SAMPLE OUTPUT:
          11


二.  题解

1. 题意理解(将问题分析清楚,大致用什么思路):
          这道题目的整体还是比较简单的,思路是从分割点分别向左、向右按题意搜索颜色相同的珠子,然后相加求最大即可。
          唯一的难点在于如何处理这个项链这个环?下面给出两种解法:
          1. 将项链用一个链表表示,每一个珠子是一个结点。每次遍历到新的剪开位置时,只需将当前链表的头结点移动到尾结点即可。这样每一次还是分别从链表的头以及尾开始遍历。
          2. 用三条项链组成一个串,这样只需遍历中间那条项链,然后分别从剪开点向左与向右遍历即可。

2. 具体实现(具体实现过程中出现的问题):
        这道题目我是用第一种方法实现的,代码有些混乱,就不贴了。

三.  代码
/*
ID: fightin1
LANG: JAVA
TASK: beads
*/


import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.LinkedList;

public class beads {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			BufferedReader br = new BufferedReader(new FileReader("beads.in"));
			PrintWriter pw = new PrintWriter (new FileWriter("beads.out"));
			
			int length = Integer.parseInt(br.readLine());
			String temp = br.readLine();
			LinkedList<Character> necklace = new LinkedList<Character>();
			for (int i=0;i<length;i++) {
				necklace.add(temp.charAt(i));
			}
			
			int max = 0;
			for (int i=0;i<length;i++) {
				char remove = necklace.removeFirst();
				char first = necklace.getFirst();
				int position = 0;
				necklace.addLast(remove);
				
				int result = 0;
				boolean allW = false;
				if (necklace.getFirst()=='w'){
					int end1 = find(necklace,0,length,0); 
					result = end1 + 1;
					if (end1<necklace.size()-1){
						int end2 = find (necklace,end1+1,length,0);
						first = necklace.get(end2);
						position = end2;
						result = result + end2 - end1;
					}else {
						allW = true;
					}
				} else {
					int end = find(necklace,0,length,0);
					position = end ;
					result = result + end + 1;
				}
				if (!allW){
					if (necklace.getLast()=='w') {
						int end1 = find(necklace, length-1,position,1);
						int end2 = find(necklace,end1-1,position,1);
						
						if (necklace.get(end2)==first){
							result = result ;
						}else {
							result = result + length - end1;
							result = result + end1 - end2 ;
						}
					}else {
						if (necklace.getLast()==first){
							result = result; 
						}else {
							int end = find(necklace,length-1,position,1);
							result = result + length - end ;	
						}
					}
				}
				if (result >=max){
					max = result;
				}
			}
			pw.println(max);
			pw.close();
			br.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static int find(LinkedList<Character> necklace,int startPoint ,int endPoint,int direction){
		if (direction ==0 ){
			int i=startPoint+1;
			for (;i<=endPoint-1;i++){
				if (necklace.get(i)!=necklace.get(startPoint)&&necklace.get(i)!='w'){
					break;
				}
			}
			return i-1;
		} else {
			int i=startPoint-1;
			for (;i>=endPoint+1;i--){
				if (necklace.get(i)!=necklace.get(startPoint)&&necklace.get(i)!='w'){
					break;
				}
			}
			return i+1;
		}
	}

}
 

        

0
0
分享到:
评论

相关推荐

    ASP.NET教务信息管理系统的设计与实现(源代码+论文).rar

    计算机毕业设计,含源码

    清新大气时尚简约论文答辩,通用模版(静态)691012.pptx.zip

    清新大气时尚简约论文答辩,通用模版(静态)691012.pptx

    清爽简约论文答辩模板.ppt.zip

    清爽简约论文答辩模板.ppt

    内蒙古自治区各地级市市辖区数据1999-2022人均GDP建成区居住用地道路面积供用水燃气财政收支就业参保人数医院床位等.xls

    数据来源:中经数据库 主要指标110多个(全部都是纯粹的 市辖区 指标),大致是: GDP GDP增速 第一产业增加值占GDP比重 第二产业增加值占GDP比重 第三产业增加值占GDP比重 人均GDP 社会消费品零售总额 固定资产投资(不含农户) 新设外商投资企业数_外商直接投资 实际利用外资金额(美元) 一般公共预算收入 一般公共预算支出 一般公共预算支出_教育 一般公共预算支出_科学技术 金融机构人民币各项存款余额_个人储蓄存款 金融机构人民币各项存款余额 金融机构人民币各项贷款余额 规模以上工业企业单位数 规模以上工业企业单位数_内资企业 规模以上工业企业单位数_港澳台商投资企业 规模以上工业企业单位数_外商投资企业 规模以上工业总产值 规模以上工业总产值_内资企业 规模以上工业总产值_港澳台商投资企业 规模以上工业总产值_外商投资企业 规模以上工业企业流动资产合计 规模以上工业企业固定资产合计 规模以上工业企业利润总额 规模以上工业企业应交增值税 规模以上工业企业主营业务税金及附加 户籍人口数 年均户籍人口数 户籍人口自然增长率 第一产业就业人员占全部城镇单位就业人员比重 第二产业就业人员占全部城镇单位就业人员比重 第三产业就业人员占全部城镇单位就业人员比重 城镇非私营单位就业人员数 城镇非私营单位就业人员数_第一产业 城镇非私营单位就业人员数_第二产业 城镇非私营单位就业人员数_第三产业 城镇非私营单位就业人员数_农、林、牧、渔业 城镇非私营单位就业人员数_采矿业 城镇非私营单位就业人员数_制造业 城镇非私营单位就业人员数_电力、热力、燃气及水生产和供应业 城镇非私营单位就业人员数_建筑业 城镇非私营单位就业人员数_批发和零售业 城镇非私营单位就业人员数_交通运输、仓储和邮政业 城镇非私营单位就业人员数_住宿和餐饮业 城镇非私营单位就业人员数_信息传输、软件和信息技术服务业 城镇非私营单位就业人员数_金融业 城镇非私营单位就业人员数_房地产业 城镇非私营单位就业人员数_租赁和商务服务业 城镇非私营单位就业人员数_科学研究和技术服务业 城镇非私营单位就业人员数_水利、环境和公共设施管理业 城镇非私营单位就业人员数_居民服务、修理和其他服务业 城镇非私营单位就业人员数_教育 城镇非私营单位就业人员数_卫生和社会工作 城镇非私营单位就业人员数_文化、体育和娱乐业 城镇非私营单位就业人员数_公共管理、社会保障和社会组织 城镇非私营单位在岗职工平均人数 城镇就业人员数_私营企业和个体 城镇非私营单位在岗职工工资总额 城镇非私营单位在岗职工平均工资 城镇登记失业人员数 建成区面积 建设用地面积 建设用地面积_居住用地 液化石油气供气总量 液化石油气供气总量_居民家庭 人工煤气、天然气供气总量 人工煤气、天然气供气总量_居民家庭 液化石油气用气人口 人工煤气、天然气用气人口 城市公共汽电车运营车辆数 城市出租汽车运营车辆数 城市公共汽电车客运总量 道路面积 排水管道长度 建成区绿化覆盖面积 建成区绿化覆盖率 绿地面积 公园绿地面积 维护建设资金支出 土地面积 生活用水供水量 供水总量 全社会用电量 城乡居民生活用电量 工业生产用电量 房地产开发投资 房地产开发投资_住宅 限额以上批发和零售业法人单位数 限额以上批发和零售业商品销售总额 普通中学学校数 中等职业教育学校数 普通小学学校数 普通高等学校专任教师数 普通中学专任教师数 中等职业教育专任教师数 普通小学专任教师数 普通高等学校在校生数 普通中学在校生数 中等职业教育在校生数 普通小学在校生数 电视节目综合人口覆盖率 公共图书馆总藏量_图书 医疗卫生机构数_医院和卫生院 卫生人员数_执业(助理)医师 医疗卫生机构床位数_医院和卫生院 城镇职工基本养老保险参保人数 职工基本医疗保险参保人数 失业保险参保人数

    Android studio 2021.3.1

    Android studio 2021.3.1

    一个关于机器学习的仓库.zip

    机器学习是一种人工智能(AI)的子领域,致力于研究如何利用数据和算法让计算机系统具备学习能力,从而能够自动地完成特定任务或者改进自身性能。机器学习的核心思想是让计算机系统通过学习数据中的模式和规律来实现目标,而不需要显式地编程。 机器学习应用非常广泛,包括但不限于以下领域: 图像识别和计算机视觉: 机器学习在图像识别、目标检测、人脸识别、图像分割等方面有着广泛的应用。例如,通过深度学习技术,可以训练神经网络来识别图像中的对象、人脸或者场景,用于智能监控、自动驾驶、医学影像分析等领域。 自然语言处理: 机器学习在自然语言处理领域有着重要的应用,包括文本分类、情感分析、机器翻译、语音识别等。例如,通过深度学习模型,可以训练神经网络来理解和生成自然语言,用于智能客服、智能助手、机器翻译等场景。 推荐系统: 推荐系统利用机器学习算法分析用户的行为和偏好,为用户推荐个性化的产品或服务。例如,电商网站可以利用机器学习算法分析用户的购买历史和浏览行为,向用户推荐感兴趣的商品。 预测和预测分析: 机器学习可以用于预测未来事件的发生概率或者趋势。例如,金融领域可以利用机器学习算法进行股票价格预测、信用评分、欺诈检测等。 医疗诊断和生物信息学: 机器学习在医疗诊断、药物研发、基因组学等领域有着重要的应用。例如,可以利用机器学习算法分析医学影像数据进行疾病诊断,或者利用机器学习算法分析基因数据进行疾病风险预测。 智能交通和物联网: 机器学习可以应用于智能交通系统、智能城市管理和物联网等领域。例如,可以利用机器学习算法分析交通数据优化交通流量,或者利用机器学习算法分析传感器数据监测设备状态。 以上仅是机器学习应用的一部分,随着机器学习技术的不断发展和应用场景的不断拓展,机器学习在各个领域都有着重要的应用价值,并且正在改变我们的生活和工作方式。

    51单片机毕业设计-基于单片机智能鱼缸源码.zip

    51单片机毕业设计-基于单片机智能鱼缸源码.zip 51单片机毕业设计-基于单片机智能鱼缸鱼缸源码.zip51单片机毕业设计-基于单片机智能鱼缸鱼缸源码.zip51单片机毕业设计-基于单片机智能鱼缸鱼缸源码.zip51单片机毕业设计-基于 51单片机毕业设计-基于单片机智能鱼缸鱼缸源码.zip51单片机毕业设计-基于单片机智能鱼缸鱼缸源码.zip51单片机毕业设计-基于单片机智能鱼缸鱼缸源码.zip51单片机毕业设计-基于单片机智能鱼缸鱼缸源码.zip51单片机毕业设计-基于单片机智能鱼缸鱼缸源码.zip51单片机毕业设计-基于单片机智能鱼缸鱼缸源码.zip51单片机毕业设计-基于单片机智能鱼缸鱼缸源码.zip51单片机毕业设计-基于单片机智能鱼缸鱼缸源码.zip51单片机毕业设计-基于单片机智能鱼缸鱼缸源码.zip51单片机毕业设计-基于单片机智能鱼缸鱼缸源码.zip51单片机毕业设计-基于单片机智能鱼缸鱼缸源码.zip51单片机毕业设计-基于单片机智能鱼缸鱼缸源码.zip51单片机毕业设计-基于单片机智能鱼缸鱼缸源码.zip51单片机毕业设计-基于单片机智能鱼缸鱼缸源码.zip

    基于ssm的航空票务推荐系统的设计与实现论文(源码+论文+SQL语句+开发文档)

    航空票务推荐系统 技术栈 SpringBoot、Mybatis-Plus、MySQL、Vue、LayUI 运行软件 elipse和idea都能打开运行 推荐运行环境 idea,jdk8,mysql5.7,maven 前后端技术 前端技术:Vue 后端技术:SpringBoot,MyBatis Plus、MySQL 本系统两种角色 管理员、用户(前台和后台) 主要功能 管理员模块:个人中心、基础数据管理、公告信息管理、航班管理、用户管理、轮播图管理 用户:个人中心、公告信息、航班、轮播图信息 提供远程部署、代码讲解等服务 更多精品项目,请查看主页

    青海省43个区县财政收入一般公共预算收入税收收入2000-2023.xls

    数据来源:中经数据库 数据范围:各个省份的区县财政收入即一般公共预算收入、税收收入 (一般财政收入即一般公共预算收入的完整度较高。税收收入一般50%的区县会有数据) 数据年度区间:2000-2023(具体看文件名上的年度区间) 珍贵数据,包含了各省所有的区、县、县级市哦,很难找到的哦

    学习spark大数据分析平台,主要是利用其mllib实现各种机器学习算法应用.zip

    机器学习是一种人工智能(AI)的子领域,致力于研究如何利用数据和算法让计算机系统具备学习能力,从而能够自动地完成特定任务或者改进自身性能。机器学习的核心思想是让计算机系统通过学习数据中的模式和规律来实现目标,而不需要显式地编程。 机器学习应用非常广泛,包括但不限于以下领域: 图像识别和计算机视觉: 机器学习在图像识别、目标检测、人脸识别、图像分割等方面有着广泛的应用。例如,通过深度学习技术,可以训练神经网络来识别图像中的对象、人脸或者场景,用于智能监控、自动驾驶、医学影像分析等领域。 自然语言处理: 机器学习在自然语言处理领域有着重要的应用,包括文本分类、情感分析、机器翻译、语音识别等。例如,通过深度学习模型,可以训练神经网络来理解和生成自然语言,用于智能客服、智能助手、机器翻译等场景。 推荐系统: 推荐系统利用机器学习算法分析用户的行为和偏好,为用户推荐个性化的产品或服务。例如,电商网站可以利用机器学习算法分析用户的购买历史和浏览行为,向用户推荐感兴趣的商品。 预测和预测分析: 机器学习可以用于预测未来事件的发生概率或者趋势。例如,金融领域可以利用机器学习算法进行股票价格预测、信用评分、欺诈检测等。 医疗诊断和生物信息学: 机器学习在医疗诊断、药物研发、基因组学等领域有着重要的应用。例如,可以利用机器学习算法分析医学影像数据进行疾病诊断,或者利用机器学习算法分析基因数据进行疾病风险预测。 智能交通和物联网: 机器学习可以应用于智能交通系统、智能城市管理和物联网等领域。例如,可以利用机器学习算法分析交通数据优化交通流量,或者利用机器学习算法分析传感器数据监测设备状态。 以上仅是机器学习应用的一部分,随着机器学习技术的不断发展和应用场景的不断拓展,机器学习在各个领域都有着重要的应用价值,并且正在改变我们的生活和工作方式。

    Modbus1ModbusModbus

    Modbus

    严谨简约毕业论文答辩模板.ppt.zip

    严谨简约毕业论文答辩模板.ppt

    Python 12306抢票脚本.docx

    12306抢票脚本

    用python实现经典的机器学习算法,提高对机器学习认识和动手实践能力。.zip

    机器学习是一种人工智能(AI)的子领域,致力于研究如何利用数据和算法让计算机系统具备学习能力,从而能够自动地完成特定任务或者改进自身性能。机器学习的核心思想是让计算机系统通过学习数据中的模式和规律来实现目标,而不需要显式地编程。 机器学习应用非常广泛,包括但不限于以下领域: 图像识别和计算机视觉: 机器学习在图像识别、目标检测、人脸识别、图像分割等方面有着广泛的应用。例如,通过深度学习技术,可以训练神经网络来识别图像中的对象、人脸或者场景,用于智能监控、自动驾驶、医学影像分析等领域。 自然语言处理: 机器学习在自然语言处理领域有着重要的应用,包括文本分类、情感分析、机器翻译、语音识别等。例如,通过深度学习模型,可以训练神经网络来理解和生成自然语言,用于智能客服、智能助手、机器翻译等场景。 推荐系统: 推荐系统利用机器学习算法分析用户的行为和偏好,为用户推荐个性化的产品或服务。例如,电商网站可以利用机器学习算法分析用户的购买历史和浏览行为,向用户推荐感兴趣的商品。 预测和预测分析: 机器学习可以用于预测未来事件的发生概率或者趋势。例如,金融领域可以利用机器学习算法进行股票价格预测、信用评分、欺诈检测等。 医疗诊断和生物信息学: 机器学习在医疗诊断、药物研发、基因组学等领域有着重要的应用。例如,可以利用机器学习算法分析医学影像数据进行疾病诊断,或者利用机器学习算法分析基因数据进行疾病风险预测。 智能交通和物联网: 机器学习可以应用于智能交通系统、智能城市管理和物联网等领域。例如,可以利用机器学习算法分析交通数据优化交通流量,或者利用机器学习算法分析传感器数据监测设备状态。 以上仅是机器学习应用的一部分,随着机器学习技术的不断发展和应用场景的不断拓展,机器学习在各个领域都有着重要的应用价值,并且正在改变我们的生活和工作方式。

    计算机思维训练+C语言

    计算机思维训练+C语言

    毕业设计校竞赛管理系统--毕业设计--后端接口(PHP).zip

    【资源说明】【毕业设计】 1、该资源内项目代码都是经过测试运行成功,功能正常的情况下才上传的,请放心下载使用。 2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也可作为大作业、课程设计、毕设项目、初期项目立项演示等,欢迎下载,互相学习,共同进步!

    2024-2030全球及中国1,2-环氧丁烷行业研究及十五五规划分析报告.docx

    2024-2030全球及中国1,2-环氧丁烷行业研究及十五五规划分析报告

    无更改的股票海事局分析及

    无更改的股票海事局分析及

    宁夏自治区各地级市市辖区数据1999-2022人均GDP建成区居住用地道路面积供用水燃气财政收支就业参保人数医院床位等.xls

    数据来源:中经数据库 主要指标110多个(全部都是纯粹的 市辖区 指标),大致是: GDP GDP增速 第一产业增加值占GDP比重 第二产业增加值占GDP比重 第三产业增加值占GDP比重 人均GDP 社会消费品零售总额 固定资产投资(不含农户) 新设外商投资企业数_外商直接投资 实际利用外资金额(美元) 一般公共预算收入 一般公共预算支出 一般公共预算支出_教育 一般公共预算支出_科学技术 金融机构人民币各项存款余额_个人储蓄存款 金融机构人民币各项存款余额 金融机构人民币各项贷款余额 规模以上工业企业单位数 规模以上工业企业单位数_内资企业 规模以上工业企业单位数_港澳台商投资企业 规模以上工业企业单位数_外商投资企业 规模以上工业总产值 规模以上工业总产值_内资企业 规模以上工业总产值_港澳台商投资企业 规模以上工业总产值_外商投资企业 规模以上工业企业流动资产合计 规模以上工业企业固定资产合计 规模以上工业企业利润总额 规模以上工业企业应交增值税 规模以上工业企业主营业务税金及附加 户籍人口数 年均户籍人口数 户籍人口自然增长率 第一产业就业人员占全部城镇单位就业人员比重 第二产业就业人员占全部城镇单位就业人员比重 第三产业就业人员占全部城镇单位就业人员比重 城镇非私营单位就业人员数 城镇非私营单位就业人员数_第一产业 城镇非私营单位就业人员数_第二产业 城镇非私营单位就业人员数_第三产业 城镇非私营单位就业人员数_农、林、牧、渔业 城镇非私营单位就业人员数_采矿业 城镇非私营单位就业人员数_制造业 城镇非私营单位就业人员数_电力、热力、燃气及水生产和供应业 城镇非私营单位就业人员数_建筑业 城镇非私营单位就业人员数_批发和零售业 城镇非私营单位就业人员数_交通运输、仓储和邮政业 城镇非私营单位就业人员数_住宿和餐饮业 城镇非私营单位就业人员数_信息传输、软件和信息技术服务业 城镇非私营单位就业人员数_金融业 城镇非私营单位就业人员数_房地产业 城镇非私营单位就业人员数_租赁和商务服务业 城镇非私营单位就业人员数_科学研究和技术服务业 城镇非私营单位就业人员数_水利、环境和公共设施管理业 城镇非私营单位就业人员数_居民服务、修理和其他服务业 城镇非私营单位就业人员数_教育 城镇非私营单位就业人员数_卫生和社会工作 城镇非私营单位就业人员数_文化、体育和娱乐业 城镇非私营单位就业人员数_公共管理、社会保障和社会组织 城镇非私营单位在岗职工平均人数 城镇就业人员数_私营企业和个体 城镇非私营单位在岗职工工资总额 城镇非私营单位在岗职工平均工资 城镇登记失业人员数 建成区面积 建设用地面积 建设用地面积_居住用地 液化石油气供气总量 液化石油气供气总量_居民家庭 人工煤气、天然气供气总量 人工煤气、天然气供气总量_居民家庭 液化石油气用气人口 人工煤气、天然气用气人口 城市公共汽电车运营车辆数 城市出租汽车运营车辆数 城市公共汽电车客运总量 道路面积 排水管道长度 建成区绿化覆盖面积 建成区绿化覆盖率 绿地面积 公园绿地面积 维护建设资金支出 土地面积 生活用水供水量 供水总量 全社会用电量 城乡居民生活用电量 工业生产用电量 房地产开发投资 房地产开发投资_住宅 限额以上批发和零售业法人单位数 限额以上批发和零售业商品销售总额 普通中学学校数 中等职业教育学校数 普通小学学校数 普通高等学校专任教师数 普通中学专任教师数 中等职业教育专任教师数 普通小学专任教师数 普通高等学校在校生数 普通中学在校生数 中等职业教育在校生数 普通小学在校生数 电视节目综合人口覆盖率 公共图书馆总藏量_图书 医疗卫生机构数_医院和卫生院 卫生人员数_执业(助理)医师 医疗卫生机构床位数_医院和卫生院 城镇职工基本养老保险参保人数 职工基本医疗保险参保人数 失业保险参保人数

    Modbus2ModbusModbus

    Modbus

Global site tag (gtag.js) - Google Analytics