随笔分类 -  其他OJ

摘要:题目1502:最大值最小化(二分答案)九度OJJavaimport java.util.Scanner; public class Main { public static int max(int x ,int y){ return x > y ? x : y; } public static int solve(int tot , int m , int n ,int a[]){ int low = 1 , high = tot; while(low <= high){ int mid = (... 阅读全文
posted @ 2013-06-17 20:05 Titanium 阅读(638) 评论(0) 推荐(0)
摘要:隐式图搜索训练的题目,题意:输入n表示串(串为基因,只会出现ACGT)的长度,下面两行长度为n的串,第一个为起始串,第二个为目标串。对串能做两种操作。1.将头元素移动到尾部。2.最前面两个元素交换位置。从起始串到目标串的最少操作次数是多少,输出这题一看,觉得是DP,后来发了两三分钟的样子想到了是搜索。对于当前的串,它是一个状态,通过两个操作,能产生两个新的状态,所以这个过程就可以建图,搜索,找出两点间的最短路。注意这里不是树,因为很容易想到,这个图是可以有环的。另外,可以大致计算到状态数是很多的(串长最大为12),所以不能显式建图,当然也没必要显式建图,因为很多点(状态)是不会去到的很快打出代 阅读全文
posted @ 2013-04-26 23:00 Titanium 阅读(290) 评论(0) 推荐(0)
摘要:暴力训练的题目,给出一个数字(最长1000位即10^1000),给出m表示交换次数(每次可以交换任意两位的数字),问交换后得到的最小数字。注意,数字不能有前导0,另外有m次交换机会,但不必全部用完,只要交换到最小数字了就可以退出为了得到最小数字,就是从高位开始,不断找最小的数字放到高位(但第一位要特殊处理不能为0)。如果现在使第i位最小,从第i到最后一位扫描找到最小值然后交换然后交换次数减1,如果刚好第i位就是最小值,则不交换,直接跳过,所以交换次数不能减1。如果m>len,即大于数字的位数,那么显然后面的交换机会都是多余的,最多交换len次就可以退出了所以结束枚举的条件是,以为枚举了全 阅读全文
posted @ 2013-04-19 13:19 Titanium 阅读(398) 评论(0) 推荐(0)
摘要:计算几何训练的题目,给出n个点的坐标(整数),选3个点组成三角形问能形成多少个锐角三角形直接暴力解决,用三个for循环枚举3个点(升序枚举避免重复),然后用余弦判断三角形中三个角是否为锐角判断一个角为锐角:已知j,i,k三个点形成一个角,以i为交点向j,k做两个向量a,b,用余弦定理cos = a*b/( |a| * |b| ) ,因为|a|*|b|必为正整数而且我们不是要算确切的角度只是判断锐,直,钝角所以直接用 a*ba*b=0 , 直角a*b>0 , 锐角或0度a*b<0,钝角或180度所以不用单纯靠 a*b 的正负来判断是什么叫,对于a*b>0的情况还要判断是否为0度 阅读全文
posted @ 2013-04-19 12:51 Titanium 阅读(267) 评论(0) 推荐(0)
摘要:http://www.cqoi.net:2012/JudgeOnline/problem.php?id=1380题意什么的都在里面,中文题目不用解释个人感觉是数据的问题,因为网上找遍了代码都不能通过,算了还是不纠结了代码写得也不好,无心机改了/*dp思想:dp[rt][p],当前节点rt,有p点,能获得的最大价值1.可以用一部分来升级当前的这个技能,升的级数不确定,但升级需要花费点数,花费的点数 c<=p2.不升级当前,全部用于升级子树和兄弟。但注意,若不升级当前节点而且当前节点等级是0,那么 其子树不能升级,只能升级其兄弟*/#include <cstdio>#includ 阅读全文
posted @ 2013-04-10 23:24 Titanium 阅读(346) 评论(0) 推荐(0)
摘要:提交地址:http://www.cqoi.net:2012/JudgeOnline/problem.php?id=1709问题描述如果一个数x的约数和(不包括它本身,下同)比它本身小,那么x可以变成它的约数和;如果对于某个y>x且y的约数和为x,那么x也可以变成y。例如,4可以变为3,1可以变为7。限定所有的数字变换在不超过n的正整数范围内进行,求不断进行数字变换且没有重复数字出现的最多变换步数。输入数据 输入一个正整数n。输出数据 输出最少需要花费的时间。 (这里原题应该打错了,应该是输出最大转换步数)样例说明 一种方案为:4→3→1→7。时间限制 各测试点1秒内存限制 你的程序将.. 阅读全文
posted @ 2013-04-07 18:56 Titanium 阅读(742) 评论(1) 推荐(0)
摘要:提交地址:http://www.cqoi.net:2012/JudgeOnline/problem.php?id=1286这题是OI的经典题,不难,注意一点,原题是用文件输入输出的,但是这里的提交直接标准输入输出即可这题的题意很清晰,明说了是二叉树(而且只能在两个孩子的节点和叶子节点)。注意输入给出的信息,对于一对数据,a,b,a指通过走廊的时间,那是不是树中边的信息呢?不是的,应该是点的信息。树中每一个点都应该包含两个信息,就是时间花费和它有多少张画,对于非叶子节点而言,它的画数都是0,而时间是有的,对于叶子节点,除了有画数外,它也是有时间花费的另外,本题读题要仔细,它是说在警察来之前就要离 阅读全文
posted @ 2013-04-07 10:27 Titanium 阅读(441) 评论(0) 推荐(0)
摘要:在朱全民的PPT介绍的一个树型DP经典题,《选课》,中文题目,不结束找了很久找到了可以提交的OJ,重庆八中http://www.cqoi.net:2012/JudgeOnline/problem.php?id=1376简单分析一下:1.建树,不要用一般的孩子表示法,这里要讲森林转为二叉树处理才能强劲有力,所以用(左)孩子(右)兄弟法建树2.建树之后就可以DP,DP的策略写在代码中了,不多说对于树型DP的初步感觉1.建树很重要(跟图论里面构图很重要,构图失败基本上整个算法失败了)2.树这种结构比较特殊,要找到特殊型入手,一是从属关系,即孩子是属于某个双亲的,二是平行关系,兄弟之间是平行的。因而一 阅读全文
posted @ 2013-03-24 18:07 Titanium 阅读(672) 评论(0) 推荐(0)