01 2014 档案
摘要: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),求从开始,整个过程中,镜头内最多看到几颗流星。注意,在流星在边框上时看不到。【思路分析】:【一】遇到物理问题一般退化
阅读全文
摘要:LA3644易爆物【题目描述】:有一些简单化合物,每种化合物由两种元素组成。但是,当车上存在k中化合物,而且存在k种元素,就会爆炸。现在依次向车上装载,装载序列由输入给出,当会某物品装载后爆炸时,就不会装载这个,最终统计有多少个物品没有被装载上。【算法分析】:首先这个问题不是线性描述的,而是解决多个变量之间的冲突问题。这时候,我们是不是就要想到用图论来解决了?首先看题目中给出的例子,如果AB、BC、CD、AD,放进去就会爆炸,而AB,BC,AD,放进去就不会爆炸,而这道题使容易引起歧义的。但后面的例子解决了这个问题。必须k种元素都参与到爆炸行为中来。那么,就像第一个例子,k种元素,没中元素出现
阅读全文
摘要: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...
阅读全文
摘要: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 ...
阅读全文
摘要:UVA10635【题目描述】:王子和公主一个王子和公主在n*n的格子中行走,这些格子是有1....n^2的编号的。现在给定p+1个数,再给定q+1个数,公主和王子可以选择其中某些格子行走,求他们最多能走几个相同的格子。【算法分析】:这道题读题是关键,然后我们发现需要的是公共的格子,又需要是这个步数最大化,可以想到最长公共子序列的模型。序列长度小于等于62500,最长公共子序列复杂度是n^2,超时,书上提供了把公共子序列退化到最长上升子序列的方法。以第一个系列为参照,编号1.....p+1,因为格子的数字是不重复的,且最大编号是62500,空间上满足。给第二个序列重新标号,求最长上升子序列就可以
阅读全文
摘要: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+...
阅读全文
摘要:UVA1339【题目描述】:密码古典密码学有两种密码,仿射和换位,给定一段明文,一段密文,看密文能否由这段明文,是否可能通过仿射和换位得到。【算法分析】:这道题目的关键是读题。因为接触过密码学,所以容易理解。仿射密码:M=(m+a)%26,注意:对于相同的字母,仿射到同一个字母换位密码:就是把所有的字母重排。所以这道提的关键是,无论怎么仿射和置换,不用的字母总数不会增加,相同的字母的个数不会增加。即使通过很多次这样的操作也是这样。所以统计两段密文,不同的字母出现的个数,排序后比较即可。题外话:可能变换成功。 1 //密码学:仿射密码和置换密码 2 3 //难点:读题和归纳 4 5 #inc..
阅读全文
摘要: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 #...
阅读全文
摘要: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+...
阅读全文
摘要:UVALive2678http://122.207.68.93:9090/csuacmtrain/problem/viewProblem.action?id=453§【题目描述】:n个正整数组成的序列。给定整数S,求长度最短的连续序列,使他们的和大于等于S。【算法分析】:【二分】:全是正整数,保证取的连续序列长度越长,和越可能大于等于S,所以满足二分的单调递增的条件,而这里,我们要找的最优解是最小的长度,就是和刚刚好大于等于S的区间长度。【区间和优化到O(N)】:使用C[i]数组,做差求和。方法不细说。要求自己,以后遇到区间求和问题,自然就要想到这个。【运筹分析】:决策方案:所有区间
阅读全文
摘要:LA2965侏罗纪http://122.207.68.93:9090/csuacmtrain/problem/viewProblem.action?id=3148【题目描述】:给定n个大写字母组成的连续字符串,(n#include#include#include#include#include#include#include#include#include#defineMAXN100+5#defineMAXM100+5#defineoo1e9#defineeps0.001#definePIacos(-1.0)//这个精确度高一些#defineREP1(i,n)for(inti=0;i=1;i-
阅读全文
摘要:LA3029最大子矩阵https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1030【题目描述】:给定m*n的矩阵,其中一些格子是空格F,其他是墙R。找出一个全部由空地组成的面积最大的子矩阵,输出面积。【算法分析】:【决策方案】:所有的子矩阵,C(n,2)*C(m,2)种,加上确认空地,大约N^6的复杂度【限制条件】:所有的方块都是空地【最优评判准则】:面积最大【思路分析】:朴素算法的复杂度是N^6,肯定不能接受,所以我
阅读全文
摘要:UVALive2678http://122.207.68.93:9090/csuacmtrain/problem/viewProblem.action?id=453【题目描述】:n个正整数组成的序列。给定整数S,求长度最短的连续序列,使他们的和大于等于S。【算法分析】:【二分】:全是正整数,保证取的连续序列长度越长,和越可能大于等于S,所以满足二分的单调递增的条件,而这里,我们要找的最优解是最小的长度,就是和刚刚好大于等于S的区间长度。【区间和优化到O(N)】:使用C[i]数组,做差求和。方法不细说。要求自己,以后遇到区间求和问题,自然就要想到这个。【运筹分析】:决策方案:所有区间段,sigm
阅读全文
摘要:UVA11549计算机谜题http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2544【题目描述】:有一个计算器,只能显示n位数字,给定初始数字k和位数n,做无数次的k^2运算,记录每次的k^2的前n位数字,并将这个新的数字做为下次平方的对象。记录在这无数次运算中,出现的最大的n位数字。【思路分析】:这道题目在经验之下,应该看出是存在循环节的,反而观之,在大学生数学水平下,不可能直接找到结果的分布。所以问题就转化成了一道模拟题,因为以
阅读全文
摘要:UVA11520http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2515【题目描述】:填充正方形N*N的网格,某些地方填充了一些大写字母,让你在空下的地方填上’A’.....’Z’,使得从上到下,从左到右字典序最小。(N 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 //#include10 #define MAXN 1
阅读全文
摘要:【LA3635】http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=456&page=show_problem&problem=3249【题目描述】:你和你的F个小伙伴,排排左,分n个半径不同的圆...
阅读全文
摘要:UVALive3971http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3276题目描述:组装电脑总共有b元钱,给定n电脑配件信息{种类;名称;价格;品质因子}。目标是用给定的b元钱,在每个种类中选择一个配件购买,统计所购买的配件中最低的品质因子MIN,我们的目标是使这个MIN最大。约束条件是分属每种类配件至少买一个。解题思路:运筹三要素分析:决策方案:假设每种类配件的数目是{a1,a2........an},方案数是a1*a2..
阅读全文