摘要: UVALive3905流星https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=283&page=show_problem&problem=1906【题目描述】:在夜空下,放置一个摄像头,已知,摄像头左下角在(0,0),右上角由输入给定(w,h)。再给出n颗流星的初始位置(夜空范围内,不一定在摄像头范围内),矢量速度(VX,VY),求从开始,整个过程中,镜头内最多看到几颗流星。注意,在流星在边框上时看不到。【思路分析】:【一】遇到物理问题一般退化 阅读全文
posted @ 2014-01-18 17:46 little_w 阅读(167) 评论(0) 推荐(0)
摘要: LA3644易爆物【题目描述】:有一些简单化合物,每种化合物由两种元素组成。但是,当车上存在k中化合物,而且存在k种元素,就会爆炸。现在依次向车上装载,装载序列由输入给出,当会某物品装载后爆炸时,就不会装载这个,最终统计有多少个物品没有被装载上。【算法分析】:首先这个问题不是线性描述的,而是解决多个变量之间的冲突问题。这时候,我们是不是就要想到用图论来解决了?首先看题目中给出的例子,如果AB、BC、CD、AD,放进去就会爆炸,而AB,BC,AD,放进去就不会爆炸,而这道题使容易引起歧义的。但后面的例子解决了这个问题。必须k种元素都参与到爆炸行为中来。那么,就像第一个例子,k种元素,没中元素出现 阅读全文
posted @ 2014-01-18 17:17 little_w 阅读(374) 评论(0) 推荐(0)
摘要: UVA11997【题目描述】:给定k组数,每组k个数,从每组数中各取出一个数,然后把他们加和,在不的加和组合中,求其中的最小的k的数。K 6 7 #include 8 9 #include 10 11 #include 12 13 #include 14 15 #include 16 17 #include 18 19 #include 20 21 #include 22 23 #define MAXN 755+10 24 25 #define MAXM 20000+5 26 27 #define oo 9556531 28 29 #define eps 0.0... 阅读全文
posted @ 2014-01-18 17:15 little_w 阅读(1041) 评论(0) 推荐(0)
摘要: UVALive3135§【题目描述】:阿格斯有一种指令QRgister(编号,周期),指令每个周期震荡一次。【算法分析】:关键之处:周期不同。这道题用优先队列模拟,而且注意优先队列定义operator 2 3 #include 4 5 #include 6 7 #include 8 9 #include 10 11 #include 12 13 #include 14 15 #include 16 17 #include 18 19 #define MAXN 1100+10 20 21 #define MAXM 20000+5 22 23 #define ... 阅读全文
posted @ 2014-01-18 17:13 little_w 阅读(465) 评论(0) 推荐(0)
摘要: UVA10635【题目描述】:王子和公主一个王子和公主在n*n的格子中行走,这些格子是有1....n^2的编号的。现在给定p+1个数,再给定q+1个数,公主和王子可以选择其中某些格子行走,求他们最多能走几个相同的格子。【算法分析】:这道题读题是关键,然后我们发现需要的是公共的格子,又需要是这个步数最大化,可以想到最长公共子序列的模型。序列长度小于等于62500,最长公共子序列复杂度是n^2,超时,书上提供了把公共子序列退化到最长上升子序列的方法。以第一个系列为参照,编号1.....p+1,因为格子的数字是不重复的,且最大编号是62500,空间上满足。给第二个序列重新标号,求最长上升子序列就可以 阅读全文
posted @ 2014-01-18 17:12 little_w 阅读(395) 评论(0) 推荐(0)
摘要: UVA11991线性查询【题目描述】:给出一个包含n个整数的数组,你要回答若干次询问。每次询问两个整数k和v,输出从左到右第k个v的小标(从左到右是1....n)【算法分析】:Map和vector的使用详细方法见代码,注意map的使用,这道题在UVA10635王子和公主中可以有新的应用。【完整代码】: 1 #include 2 3 #include 4 5 #include 6 7 #include 8 9 #include10 11 #include12 13 #include14 15 #include16 17 #include18 19 #define MAXN 100000+... 阅读全文
posted @ 2014-01-18 17:10 little_w 阅读(296) 评论(0) 推荐(0)
摘要: UVA1339【题目描述】:密码古典密码学有两种密码,仿射和换位,给定一段明文,一段密文,看密文能否由这段明文,是否可能通过仿射和换位得到。【算法分析】:这道题目的关键是读题。因为接触过密码学,所以容易理解。仿射密码:M=(m+a)%26,注意:对于相同的字母,仿射到同一个字母换位密码:就是把所有的字母重排。所以这道提的关键是,无论怎么仿射和置换,不用的字母总数不会增加,相同的字母的个数不会增加。即使通过很多次这样的操作也是这样。所以统计两段密文,不同的字母出现的个数,排序后比较即可。题外话:可能变换成功。 1 //密码学:仿射密码和置换密码 2 3 //难点:读题和归纳 4 5 #inc.. 阅读全文
posted @ 2014-01-18 17:08 little_w 阅读(518) 评论(0) 推荐(0)
摘要: UVA10382【题目描述】:喷水设置有一块草坪,长为l,宽为w,在草坪的中心线上,放置规格不一的喷水装置,给定每个装置的安置中心,辐射半径(pos,rad)。求最少几个喷水装置可以辐射整块草坪?【算法分析】:把二维退化到一维问题,我们要考虑的辐射边界,pos+(-)sqrt(rad^2-w^2/4),想象一下,如果边界辐射到了,中间一定辐射到了,若rad 2 3 #include 4 5 #include 6 7 #include 8 9 #include 10 11 #include 12 13 #include 14 15 #include 16 17 #... 阅读全文
posted @ 2014-01-18 17:07 little_w 阅读(237) 评论(0) 推荐(0)
摘要: LA2965http://122.207.68.93:9090/csuacmtrain/problem/viewProblem.action?id=3148§【题目描述】:给定n个大写字母组成的连续字符串,(n 2 3 #include 4 5 #include 6 7 #include 8 9 #include 10 11 #include 12 13 #include 14 15 #include 16 17 #include 18 19 #include 20 21 #define MAXN 100+5 22 23 #define MAXM 100+... 阅读全文
posted @ 2014-01-18 17:04 little_w 阅读(226) 评论(0) 推荐(0)
摘要: UVALive2678http://122.207.68.93:9090/csuacmtrain/problem/viewProblem.action?id=453§【题目描述】:n个正整数组成的序列。给定整数S,求长度最短的连续序列,使他们的和大于等于S。【算法分析】:【二分】:全是正整数,保证取的连续序列长度越长,和越可能大于等于S,所以满足二分的单调递增的条件,而这里,我们要找的最优解是最小的长度,就是和刚刚好大于等于S的区间长度。【区间和优化到O(N)】:使用C[i]数组,做差求和。方法不细说。要求自己,以后遇到区间求和问题,自然就要想到这个。【运筹分析】:决策方案:所有区间 阅读全文
posted @ 2014-01-18 17:03 little_w 阅读(137) 评论(0) 推荐(0)